
ضبط صدا و تولید تبدیل فوریه سریع (FFT) در MATLAB
در این تمرین پردازش صدا با MATLAB قصد داریم با اجرای کد متلب، صدای فرد را ضبط و تبدیل فوریه سریع (Fast Fourier Transform – FFT) آن را محاسبه کرده و آنها را نمایش دهیم. برای این کار ما با استفاده از متلب 5 ثانیه از صدا را با فرکانس نمونه برداری 8000 هرتز و با دقت 16 بیت و در قالب یک کانال صوتی ضبط می کنیم. سپس سیگنال صدا را ذخیره کرده و تبدیل فوریه آن را محاسبه می کنیم و نمایش می دهیم. پس از اجرای کد، با نمایش پنجره “Start peaking…” باید به مدت 5 ثانیه صحبت کنیم. در نهایت پس از اتمام صحبت کردن نمودار سیگنال صدا و تبدیل فوریه (FFT) آن نمایش داده می شود. در شکل بالا این نمودارها برای یک بار تست نشان داده می شود. کد متلب تمرین پردازش صدا در ادامه قرار داده شده و در قالب m فایل نیز به صورت رایگان قابل دانلود است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | clc; clear all; %% Recording Fs=8000; nBits=16; nChannels=1; recObj = audiorecorder(Fs,nBits,nChannels); msgbox('Start speaking...') times=5; recordblocking(recObj, times); msgbox('End of Recording...'); %% vooce and it's fourie myRecording = getaudiodata(recObj); F=fft(myRecording); A=abs(F); %% plot Voice and fourie t=[0:1/Fs:times-1/Fs]; subplot(2,1,1);plot(t,myRecording); xlabel('Time (s) '); ylabel('Samples'); title('Voice Signal (Fs= 44100 Hz)'); freq=[0:Fs/length(F):Fs-Fs/length(F)]; subplot(2,1,2);plot(freq,A); xlabel('Frequency (Hz) '); ylabel('fft'); title('Fourie '); |

































سلام در دستور متلب بالا صدا اول با فرکانس نمونه برداری 8000 هرتز تولید شده برای مشاهده طیف فرکانسی در قسمت پائین و دستور title فرکانس 44100 هرتز درج شده چرا ؟