【正文】
bs(y2))。加入工頻干擾后的頻譜圖39。xlabel(39。)。Hz39。 加入工頻干擾后的時域圖和頻譜圖,發(fā)現(xiàn)加噪聲后的幅值有比較微小的變化,而在頻譜圖在38Hz和63Hz附近增值很大,這是由于50Hz的工頻噪聲造成的,而在其他頻率范圍內(nèi)也有比較明顯的變化。k=x1+p。abshc=abs(hc)。subplot(2,1,1)。title(39。)。時間(s)39。ylabel(39。)。plot(wc/pi,abshc)。加入帶限噪聲后的頻譜圖39。xlabel(39。)。Hz39。 加入帶限噪聲后的時域圖和頻譜圖加入帶限chirp噪聲干擾后,發(fā)現(xiàn)加噪之前時域圖是均勻分布的,而加噪后,則變?yōu)榍懊嫦∈韬竺婷芗那闆r了,對于頻譜圖而言,加噪前是中間凹兩邊凸,加噪后是前凸后平,在個別點上幅值增加很多,這是由于加入chirp噪聲的結(jié)果。具體操作如下:figure(5)。f1=5。wp=(f1/fs)*2*pi。Omegap=2*fs*tan(wp/2)。[n1,Wn]=buttord(Omegap,Omegas,1,50,39。)。s39。[bz,az]=bilinear(b,a,fs)。y=filter(bz,az,x2)。subplot(2,1,1)plot(y)。濾除工頻干擾后的時域圖39。xlabel(39。)。幅值(A)39。y3=fft(y,1000)。subplot(2,1,2)。title(39。)。頻率(Hz)39。ylabel(39。)。(7)切比雪夫I型數(shù)字低通濾波器用Wp1,Wp2,Ws1,Ws2表示分別將通帶,阻帶截止頻率的角頻率表示,算出頻帶寬帶,計算階數(shù)n1和截止頻率WN,再設(shè)計切比雪夫I型模擬濾波器,采用雙線性法將模擬濾波器系數(shù)變?yōu)閿?shù)字濾波器系數(shù),畫出切比雪夫I型數(shù)字濾波器的頻率響應(yīng),調(diào)用filter實現(xiàn)對白噪聲的濾波,再最后調(diào)用plot函數(shù)畫出濾除白噪聲后的時域圖和頻域圖。fs=100。f12=25。f22=30。Ws1=(f21/fs)*2*pi。Ws2=(f22/fs)*2*pi。Omegap2=2*fs*tan(Wp2/2)。Omegas2=2*fs*tan(Wp2/2)。W0=Omegap1*Omegap2。WP=1。[n1,WN]=buttord(WP,WS,1,50,39。)。s39。[BT,AT]=lp2bp(B,A,W00,BW)。freqz(num,den,64)。figure(8)。plot(y)。濾除白噪聲后的時域圖39。xlabel(39。)。幅值(A)39。s3=fft(y,1000)。subplot(2,1,2)。title(39。)。頻率(Hz)39。ylabel(39。)。它們在時域圖上差不多是一致的,在濾波后的就明顯變小了。具體操作如下:figure(9)。stop39。freqz(d,512)。figure(10)。plot(y4)。濾除工頻干擾后的時域圖39。xlabel(39。)。幅值(A)39。subplot(2,1,2)。f1=100*(0:999)/1000。title(39。)。頻率(Hz)39。ylabel(39。)。設(shè)計心得 課程設(shè)計是培養(yǎng)我們綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓(xùn)練和考察過程,通過課程設(shè)計我們能夠比較系統(tǒng)的了解理論知識,把理論和實踐相結(jié)合,并且用到生活當(dāng)中。 此次課程設(shè)計綜合了數(shù)字信號處理的理論知識和實踐經(jīng)驗,經(jīng)過這段時間查閱的相關(guān)資料并結(jié)合以前學(xué)過的數(shù)字信號處理課程和實驗,我如期完成了設(shè)計任務(wù)要求,并加深了對知識的理解,提高了自己的實踐動手能力。在以前的實驗中沒有接觸過GUI界面的問題,根本不知道從哪入手,在查閱了資料,看視頻,有了一定的了解,但是由于初次接觸,出現(xiàn)問題的時候還是很難解決,經(jīng)過和同學(xué)討論,終于解決了這些問題。初次接觸了MATLAB提供的用戶界面的設(shè)計問題,對其中的一些基本問題有了了解,為以后的實踐打下了一定的基礎(chǔ),相信在以后的實踐過程中會有更好的提升。課程設(shè)計主要是我們理論知識的延伸,它的目的主要是要在設(shè)計中發(fā)現(xiàn)問題,并且自己要能找到解決問題的方案,形成一種獨立的意識。附錄function varargout = GUIDE(varargin)% GUIDE Mfile for % GUIDE, by itself, creates a new GUIDE or raises the existing% singleton*.%% H = GUIDE returns the handle to a new GUIDE or the handle to% the existing singleton*.%% GUIDE(39。,hObject,eventData,handles,...) calls the local% function named CALLBACK in with the given input arguments.%% GUIDE(39。,39。,...) creates a new GUIDE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before GUIDE_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to GUIDE_OpeningF via varargin.%% *See GUI Options on GUIDE39。gui_State = struct(39。, mfilename, ... 39。, gui_Singleton, ... 39。, GUIDE_OpeningF, ... 39。, GUIDE_OutputF, ... 39。, [] , ... 39。, [])。amp。endif nargout [varargout{1:nargout}] = gui_mainf(gui_State, varargin{:})。end% End initialization code DO NOT EDIT% Executes just before GUIDE is made visible.function GUIDE_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 GUIDE (see VARARGIN)% Choose default mand line output for GUIDE = hObject。% UIWAIT makes GUIDE wait for user response (see UIRESUME)% uiwait()。% 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} = 。H:\39。N=length(x)fssound(x,fs,bits)。f=fs*(0:2047)/N。angy1=angle(y1)。title(39。)subplot(3,1,2),plot(magy1)。原始信號幅值39。title(39。)figure(2)freqz(x)title(39。)figure(3)plot(f,abs(y1(1:2048)))。原始語音信號頻譜39。Hz39。ylabel(39。)。[x,fs,bits]=wavread(39。)。y1=fft(x,N)。t=(0:length(x)1)/fs。x2=x+x1。figure(1)subplot(2,1,1) ,plot(x)。原語音信號時域圖39。title(39。)xlabel(39。)。fudu39。y2=fft(x2,N)。title(39。)xlabel(39。)。fudu39。subplot(2,1,2),plot(abs(y2))。加噪語音信號頻譜39。Hz39。ylabel(39。)。wavwrite(x2,fs,39。)。fc=1200。wp=*pi。Rp=1。Fs=22050。wp1=2/Ts*tan(wp/2)。[N,Wn]=buttord(wp1,ws1,Rp,Rs,39。)。[Bap,Aap]=zp2tf(Z,P,K)。[bd,ad]=bilinear(b,a,Fs)。figure(1)subplot(111)。title(39。)。h:\39。n=length(x)。X=fft(x)。subplot(211)。title(39。)。plot(z)。濾波后信號的波形39。figure(3)sound(z,fs,bits)。plot(f,abs(X(1:n/2)))。原始信號的頻譜39。xlabel(39。)。subplot(2,1,2)。title(39。)。Hz39。wavwrite(z,fs,39。)。[x,fs,bits]=wavread(39。)。ws=*pi。N=ceil(*pi/wdelta)。wn=(+)*pi/2。f1=fftfilt(b,x)。plot(w1*fs/(2*pi),20*log10(abs(h1)))。濾波前的時域波形39。subplot(2,1,2),plot(t,f1)。濾波后的時域波形39。sound(f1)。f=fs*(0:511)/1024。subplot(2,1,1)。title(39。)xlabel(39。)。fuzhi39。subplot(2,1,2)F1=plot(f,abs(F0(1:512)))。濾波后的頻譜39。Hz39。ylabel(39。)。h:\39。% Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (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。)。y1=fft(x,N)。figure(1)magy1=abs(y1)。subplot(3,1,1),plot(x)。原始信號波形39。title(39。)subplot(3,1,3),plot(angy1)。原始信號相位39。頻率響應(yīng)圖39。title(39。)xlabel(39。)。fudu39。axis([0 4500 0 400])% Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)[y,fs,bits]=wavread(39。)。y]。figure。plot(z)。延時后時域波形39。subplot(2,2,3)。title(39。)。plot(angle(Z))。延時后相頻39。sound(y,fs,bits)。H:\39。% Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pus