【正文】
因此同時能熟練運用Matlab語言也是本次課程設(shè)計的關(guān)鍵所在,也為這次順利完成課設(shè)提供了保證。在本次課程設(shè)計中,認(rèn)識到一個團(tuán)隊的力量是無窮的,每個人貢獻(xiàn)一點點微薄之力,合在一起就是一股強大的力量。% hObject handle to figure% eventdata reserved to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default mand line output from handles structurevarargout{1} = 。% UIWAIT makes DSP wait for user response (see UIRESUME)% uiwait()。end% End initialization code DO NOT EDIT% Executes just before DSP is made visible.function DSP_OpeningF(hObject, eventdata, handles, varargin)% This function has no output args, see OutputF.% hObject handle to figure% eventdata reserved to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin mand line arguments to DSP (see VARARGIN)% Choose default mand line output for DSP = hObject。endif nargout [varargout{1:nargout}] = gui_mainf(gui_State, varargin{:})。if nargin amp。gui_Callback39。gui_LayoutF39。gui_OutputF39。gui_OpeningF39。gui_Singleton39。gui_Name39。s Tools menu. Choose GUI allows only one% instance to run (singleton).%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help DSP% Last Modified by GUIDE 10Jan2008 15:24:46% Begin initialization code DO NOT EDITgui_Singleton = 1。Value39。Property39。CALLBACK39。 %播放語音信號sound(d,8000) %播放噪聲信號sound(x2,8000)。)。實現(xiàn)程序2:[y,fs,n]=wavread(39。濾波后信號的頻譜39。plot(abs(X))。)。title(39。%subplot(223)。%聲音回放sound(y,fs,bits)%x=filter(b,a,y)。figure(2)。[n,wn]=ellipord(wp,wc,ap,as)。wc=2*fc/fs。ap=1。fc=1200。)。title(39。%生成時域波形subplot(212)。波形39。plot(y)。)。%讀取wav文件y=wavread(39。d:\MATLAB6p5\work\1239。其調(diào)用格式:sound(x,fs,bits);可以感覺濾波前后的聲音有變化。)。ylabel(39。Hz39。濾波后的頻譜39。subplot(2,1,2)F2=plot(f,abs(F0(1:512)))。幅值39。)。)xlabel(39。title(39。subplot(2,1,1)。f=fs*(0:511)/2048。)。title(39。)。 %選擇海明窗函數(shù),并歸一化截止頻率figure(1)freqz(b,1,512)f2=filter(bz,az,x2)figure(2)subplot(2,1,1)plot(t,x2)title(39。%濾波器長度wn=(+)*pi/2。wdelta=wswp。 %將噪聲加入到語音信號中wp=*pi。 %噪聲幅值d=[Au*cos(2*pi*1800*t)]39。t=0:1/8000:(size(y)1)/8000。)。 圖5巴特沃斯低通濾波器 圖6濾波前后時域波形圖 圖7濾波前后頻譜圖窗函數(shù)法設(shè)計濾波器:[y,fs,n]=wavread(39。幅值39。)。)xlabel(39。 %畫出濾波后的頻譜圖title(39。)。ylabel(39。Hz39。濾波前的頻譜39。 plot(f,abs(y2(1:512)))。figure(3)y2=fft(x2,2048)。F0=fft(f1,2048)。濾波后的時域波形39。 subplot(2,1,2)plot(t,f1)。濾波前的時域波形39。 )f1=filter(bz,az,x2)。)title(39。)ylabel(39。%繪制頻率響應(yīng)曲線figure(1)plot(W*Fs/(2*pi),abs(H))gridxlabel(39。 [bz,az]=bilinear(b,a,Fs)。%創(chuàng)建butterworth模擬濾波器[Bap,Aap]=zp2tf(Z,P,K)。)。 [N,Wn]=buttord(wp1,ws1,Rp,Rs,39。 wp1=2/Ts*tan(wp/2)。Fs=8000。Rp=1。 %將噪聲加入到語音信號中wp=*pi。 %噪聲幅值d=[Au*cos(2*pi*1800*t)]39。t=0:1/8000:(size(y)1)/8000。)。(4).濾波器的類型設(shè)計程序雙線性變換法設(shè)計巴特沃思低通濾波器[y,fs,n]=wavread(39。幅值n39。)。xlabel(39。加噪后的信號頻譜39。plot(f,abs(y2(1:512)))。)。ylabel(39。Hz39。)。title(39。figure(2)subplot(2,1,1)。幅值n39。)。xlabel(39。加噪后的信號39。 %對信號做2048點FFT變換y2=fft(x2,2048)。 %x2=y+d。 %將所加噪聲信號的點數(shù)調(diào)整到與原始信號相同Au=。 %將采樣后的語音信號賦給變量yf=fs*(0:511)/2048。D:\My Documents\MATLAB\39。)。ylabel(39。Hz39。)。title(39。subplot(2,1,2)。幅值n39。)。xlabel(39。噪聲信號時域圖39。 %對噪聲信號做2048點FFT變換 figure(2)subplot(2,1,1)。 %噪聲幅值d=[Au*cos(2*pi*1800*t)]39。t=0:1/8000:(size(y)1)/8000。)。(2).給原始的語音信號加上一個高頻余弦噪聲,頻率為1800Hz[y,fs,n]=wavread(39。幅值n39。)。xlabel(39。原始信號頻譜39。plot(abs(Y))。)。ylabel(39。時間n39