【正文】
g_Callback(hObject, eventdata, handles) % hObject handle to caiyang (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x1,fs,bits]=wavread(39。D:\39。)。 %讀取信號 x1=x1(:,1)。 %只取單聲道 sound(x1,fs)。 %對聲音的回放 axes()。 plot(x1)。 %做原始語音信號的時域圖形 title(39。原始語音信號的時域圖 39。,39。fontname39。,39。宋體 39。)。 y1=fft(x1)。 %做 length(x1)點的 FFT y1=fftshift(y1)。 %平移,是頻率中心為 0 derta_fs = fs/length(x1)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2derta_fs],abs(y1))。%畫出原始語音信號的頻譜圖 title(39。原始語音信號的頻譜 39。,39。fontname39。,39。宋 體 39。)。 % Executes on button press in yanshi. function yanshi_Callback(hObject, eventdata, handles) % hObject handle to yanshi (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x1,fs,bits]=wavread(39。D:\39。)。 x1=x1(:,1)。 %只取單聲道 z=[zeros(2020,1)。x1]。 %對聲音延時 2020 sound(z,fs)。 武漢理工大學《 信息群處理課程設計 》課程設計說明書 20 axes()。 plot(z)。 title(39。延時后的信號時域圖 39。,39。fontname39。,39。宋體 39。)。 %畫出延時后的信號時域圖 z=fft(x1)。 %做 length(x1)點的 FFT z=fftshift(z)。 %平移,是頻率中心為 0 derta_fs = fs/length(z)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2derta_fs],abs(z))。%畫出延時后的信號頻譜圖 title(39。延時后的信號頻譜圖 39。,39。fontname39。,39。宋體 39。)。 % Executes on button press in hunxiang. function hunxiang_Callback(hObject, eventdata, handles) % hObject handle to hunxiang (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x,fs,bits]=wavread(39。D:\39。)。 %讀取語音信號 x=x(:,1)。 %只取單聲道 z=[zeros(2020,1)。x]。 %對語音信號進行延時 x=[x。zeros(2020,1)]。 %使語音信號與延時后信號同等長度 y1=x+z。 %信號的混響 sound(y1,fs)。 %回放混響后的信號 axes()。 plot(y1)。 title(39?;祉懙臅r域圖 39。,39。fontname39。,39。宋體 39。)。 %混響時域圖 Y1=fft(y1)。 %做 length(y1)點的 FFT Y1=fftshift(Y1)。 %平移,是頻率中心為 0 derta_fs = fs/length(y1)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2derta_fs],abs(Y1))。%畫出混響頻譜圖 title(39。混響的頻譜圖 39。,39。fontname39。,39。宋體 39。)。 武漢理工大學《 信息群處理課程設計 》課程設計說明書 20 % Executes on button press in dan. function dan_Callback(hObject, eventdata, handles) % hObject handle to dan (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x,fs,bits]=wavread(39。D:\39。)。 %讀取語音信號 x=x(:,1)。 %只取單聲道 a=。 %a取小于等于 1 z=[zeros(2020,1)。x]。 %對 語音信號進行延時 x=[x。zeros(2020,1)]。 %使語音信號與延時后信號同等長度 y2=x+z*a。 %信號經單回聲濾波 sound(y2,fs)。 %回放經單回聲濾波器后的語音信號 axes()。 plot(y2)。title(39。單回聲濾波的信號時域圖 39。,39。fontname39。,39。宋體 39。)。 Y2=fft(y2)。 %做 length(y2)點的 FFT Y2=fftshift(Y2)。 %平移,是頻率中心為 0 derta_fs = fs/length(y2)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2derta_fs],abs(Y2))。%畫出 單回聲信號頻譜圖 title(39。單回聲濾波的信號頻譜圖 39。,39。fontname39。,39。宋體 39。)。 % Executes on button press in duo. function duo_Callback(hObject, eventdata, handles) % hObject handle to duo (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x,fs,bits]=wavread(39。D:\39。)。 x1=x(:,1)。 %變換為單聲道語音信號 delay_t=。 %回聲延遲時間 武漢理工大學《 信息群處理課程設計 》課程設計說明書 20 a=。 %衰減系數 N=3。 %N階延時 Bz=[1。zeros(fs*delay_t,1)*N。a^N]。 Az=[1。zeros(fs*delay_t,1)。a]。 y=filter(Bz, Az ,x1 )。 sound(y,fs,bits)。 %回放經多回聲濾波器后的語音信號 axes()。 plot(y)。title(39。多回聲濾波 的信號時域圖 39。,39。fontname39。,39。宋體 39。)。 Y2=fft(y)。 %做 length(y)點的 FFT Y2=fftshift(Y2)。 %平移,是頻率中心為 0 derta_fs = fs/length(y)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2derta_fs],abs(Y2))。%畫出多回聲信號頻譜圖 title(39。多回聲濾波的信號頻譜圖 39。,39。fontname39。,39。宋體 39。)。 % Executes on button press in wu. function wu_Callback(hObject, eventdata, handles) % hObject handle to wu (see GCBO) % eventdata reserved to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [x,fs,bits]=wavread(39。D:\39。)。 %讀取語音信號 x=x(:,1)。 %只取單聲道 a=。 %a取小于等于 1 Bz=[0,0,0,0,0,0,0,0,0,0,1]。 %分子的系數 Az=[1,0,0,0,0,0,0,0,0,0,a]。 %分母的系數 yy1=filter(Bz,Az,x)。 %FIR濾波器進行濾波 sound(yy1,fs,bits)。 %回放經無限回聲濾波器后的語音信號 axes()。 plot(yy1)。 %無限回聲信號時域波形 武漢理工大學《 信息群處理課程設計 》課程設計說明書 20 title(39。無限個回聲濾波的信號時域圖 39。,39。fontname39。,39。宋體 39。)。 YY1=fft(yy1)。 %經無限回聲濾波器后的信號做 length(yy1)點的 FFT YY1=fftshift(YY1)。 %平移,是頻率中心為 0 derta_fs = fs/length(yy1)。 %設置頻譜的間隔,分辨率 axes()。 plot([fs/2:derta_fs:fs/2der