


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數字信號處理實驗報告基礎實驗篇實驗一 離散時間系統及離散卷積一、實驗原理Matlab頻率響應等的圖像并于筆算結果進行比較,找出異同。編譯合適程序能計算取值范圍不同的離散卷積。二、實驗目的MATLAB熟悉系統函數的零極點分布、單位脈沖響應和系統頻率響應等概念。MATLAB響應。三、實驗步驟自編并調試實驗程序,并且,給實驗程序加注釋;按照實驗內容完成筆算結果;驗證計算程序的正確性,記錄實驗結果。實驗1-1xlabel(實驗1-1xlabel('n');ylabel('h(n)');figure(2)zplane(z,p)title('零極點');function[x,n]=chongji(n1,n2)n=[n1:n2];x=[n==0];functionshiyan1()運行結果a=[1,-1,0.9];b=1;n=-20:120;figure(1)stem(n,h);title('沖擊響應');b=[0.0181,0.0543,0.0543,0.0181];a=[1.000,-1.76,1.1829,-0.2781];w=pi*freqspace(500);H=freqz(b,a,w);MH=abs(H);AH=angle(H);subplot(2,1,1);plot(w/pi,MH);grid;xlabel('w(pi)');ylabel('|H|');title('幅度、相位響應');subplot(2,1,2);plot(w/pi,AH);grid;xlabel('w(pi)');ylabel('angle(H)');
運行結果實驗1-3 運行結果n=0:30;%輸入x(n)和沖激響應h(n)x=zeros(1,length(n));h=zeros(1,length(n));x([find((n>=0)&(n<=4))])=1;h([find((n>=0)&(n<=8))])=0.5;figure(1)subplot(3,1,1);stem(n,x);輸入序列');xlabel('n');ylabel('x(n)');subplot(3,1,2);stem(n,h);axis([0,30,0,2]);title('沖激響應序列');xlabel('n');ylabel('h(n)');%輸出響應y=conv(x,h);subplot(3,1,3);n=0:length(y)-1;stem(n,y);title('輸出響應');xlabel('n');ylabel('y(n)');實驗二離散傅立葉變換與快速傅立葉變換一、實驗原理Fouier(DFT)x(n)NDFTXDFT
NxnWN
0kN1n0反變換為
xnIDFTXk11XkWnk
0nN1N Nn0DFTZFourierFFTDFTFFT222FFT,2FFTN1N2,FFTN≥N1+N2對于長度不足N的兩個序列,分別將他們補零延長到N。二、實驗目的1、加深理解離散傅立葉變換及快速傅立葉變換概念;2、學會應用FFT對典型信號進行頻譜分析的方法;3、研究如何利用FFT程序分析確定性時間連續信號;4、熟悉應用FFT實現兩個序列的線性卷積的方法。三、實驗步驟1、調試實驗程序,并且,給參考程序加注釋;2、利用編制的計算卷積的計算程序,分別給出一下三組函數的卷積結果三、實驗源程序及結果實驗2-1 運行結果0.0543,0.0181];a=[1.000,-1.76,1.1829,-0.2781];w=pi*freqspace(500);H=freqz(b,a,w);MH=abs(H);AH=angle(H);subplot(2,1,1);plot(w/pi,MH);grid;xlabel('w(pi)');ylabel('|H|');title('幅度、相位響應');subplot(2,1,2);plot(w/pi,AH);grid;xlabel('w(pi)');ylabel('angle(H)');實驗2-2 運行結果functionshiyan22()F=50;N=64;T=0.000625;n=1:N;x=cos(2*pi*F*n*T);subplot(2,1,1);plot(n,x);holdonxlabel('n');X=fft(x);subplot(2,1,2);plot(n,X);gridtitle('FFT|X|');xlabel('f(pi)');實驗2-3n=0:30;%輸入x(n)和沖激響應h(n)x=zeros(1,length(n));h=zeros(1,length(n));x([find((n>=0)&(n<=4))])=1;h([find((n>=0)&(n<=8))])=0.5;subplot(3,1,1);stem(x);title('x(n)');axis([0,30,0,2]);subplot(3,1,2);stem(h);title('h(n)');axis([0,30,0,2]);X=fft(x);H=fft(h);Y=X.*H;y=ifft(Y);subplot(3,1,3);
運行結果stem(abs(y));title('y(n)');實驗三 IIR數字濾波器設計一、實驗原理脈沖響應不變法用數字濾波器的單位脈沖響應序列h(n)模仿模擬濾波器的沖激響應ha
(t),讓h(n)正好等于ha
(t)的采樣值,即h(n)ha
(nT)其中T為采樣間隔如果以H (s)及H(z)分別表示h(t)的拉氏a a變換及h(nZ
H(z)
zesT T
m
H (sjm)a T雙線性變換法szs
21zT1zszsz換 ,這種非線性引起的幅頻特性畸變可通過預畸而得到校正以低通數字濾波器為例,將設計步驟歸納如下: fpfsRp;AsT;確定相應的數字角頻率,ωp=2πfpT;ω=2πfrT;s計算經過預畸的相應模擬低通原型的頻率,2
2 tg p tg sp T 2 s T 2根據Ωp和Ωs計算模擬低通原型濾波器的階數N,并求得低通原型的傳遞函數Ha(s);Ha(s),H(z);二、實驗目的1、學習模擬-數字變換濾波器的設計方法;2、掌握雙線性變換數字濾波器設計方法;3、掌握實現數字濾波器的具體方法。三、實驗步驟1、設計一個巴特沃思數字低通濾波器,設計指標如下:p 通帶內 幅度衰減不大于1dB;阻帶 幅度減不小于p 2、編制計算設計的數字濾波器幅度特性和相位特性的程序,并進行實驗驗證。3、編制實現該數字濾波器程序并且實現數字濾波正弦波通過濾波器,驗證濾波器性能;樣時間的函數。四、實驗源程序及結果functionshiyan3()fp=200*pi;fs=300*pi;Rp=1;As=15;T=1;Fs=1000;As,'s');[b,a]=butter(N,fc,'s');
ylabel('H');axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]);grid;subplot(3,1,2);plot(wd/pi,20*log10((abs(hw2)+eps)/abs(hw2(1))));title('幅度響應(雙線性變換法(dB))');w=[0:1000*2*pi];[hf,w]=freqs(b,a,1000);wd=[0:512]*pi/512;hw1=freqz(d,c,wd);hw2=freqz(f,e,wd);OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);ep=sqrt(10^(Rp/10)-1);Attn=1/10^(As/20);subplot(3,1,1);plot(wd/pi,abs(hw1)/abs(hw1(1)));title('幅度響應(沖擊響應不變法)');xlabel('w(pi)');ylabel('H');
xlabel('w(pi)');ylabel('H');axis([0,1,-40,5]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]);grid;subplot(3,1,3);plot(wd/pi,-angle(hw2));title('相位響應');xlabel('w(pi)');ylabel('piunit');%axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-1,0,1]);grid;運行結果實驗四 FIR數字濾波器設計一、實驗原理窗函數法設計線性相位FIR濾波器步驟{ωN;kd根據性能要求合理選擇單位脈沖響應h(n)的奇偶對稱性從而確定理頻率響應H (ej)的幅頻特性和相頻特性;dd 求理想單位脈沖響應h(n),在實際計算中,可對H (ej)按M(Md M N)點等距離采樣,并對其求IDFT得h (n),用h (n)代替hd(n)M d選擇適當的窗函數w(n,根據h(n)h(n)w(n)FIRdH(ejN,重復上述設計過程,以得到滿意的結果。窗函數的傅式變換W(ej)的主瓣決定了H(ej)過渡帶寬。W(ej)的旁瓣大小和多少決定了
H(ej)在通帶和阻帶范圍內波動幅度,常用的幾種窗函數有:矩形窗 w(n)=R(n)NHanningHammingBlackmenKaiserI(x)為零階貝塞爾函數。o二、實驗目的1、學習FIR數字濾波器窗口函數設計法;2、熟悉線性相位FIR濾波器的幅頻特性和相頻特性;3、了解各種不同窗函數對濾波器性能的影響4、進行FIR、IIR濾波器的性能比較。三、實驗步驟1、 設計一個FIR數字濾波器,設計指標如下:通帶內 幅度衰減不大于1dB;p阻帶 幅度衰減不小于15dB;s2、 編制計算設計的數字濾波器幅度特性和相位特性的程序,并進行驗驗證。3、分別用矩形窗、漢寧窗、海明窗、三角窗和Blackman窗設計一3dB帶寬,并比較五種窗的特點。四、實驗源程序及運行結果實驗3-1functionshiyan4()%41FIRfilterwp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;M=ceil(6.6*pi/tr_width)+1;n=0:M-1;wc=(ws+wp)/2;alpha=(M-1)/2;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);w_ham=(hamming(M))';%h=hd.*w_ham;%加漢明窗%h=hd;%加矩形窗h=hd.*(blackman(M))';%加布萊克曼窗[mag,db,pha,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:wp/delta_w+1)));As=-round(max(db(ws/delta_w+1:501
ylabel('pha');set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);set(gca,'YTickmode','manual','YTick',[-pi,0,pi]);grid;subplot(2,2,4);plot(w/pi,db);title('濾波器幅度響應');axis([0,1,-100,10]);ylabel('H(db)');k',[0,0.2,0.3,1.1]);set(gca,'YTickmode','manual','YTick',[-50,-15,0]);function[mag,db,pha,w]=freqz_m(b,a))));subplot(2,2,1);stem(n,hd);title('理想沖激響應');axis([0,M-1,-0.1,0.3]);ylabel('hd(n)');subplot(2,2,2);stem(n,h);title('實際沖激響應');axis([0,M-1,-0.1,0.3]);ylabel('h(n)');subplot(2,2,3);plot(w/pi,pha);title('濾波器相位響應');axis([0,1,-pi,pi]);運行結果
H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);加矩形窗加漢明窗加布萊克曼窗綜合試驗篇一、實驗目的借助基礎實驗篇編制的程序,對語音信號進行處理。二、實驗內容1、錄制一段各人自己的語音信號。2、對錄制的信號進行采樣;畫出采樣后語音信號的時域波形和頻譜圖;3出濾波器的頻率響三、實驗要求1、完成實驗內容要求的各項內容。寫明設計思路及其設計原理;2、給出MATLAB代碼,并給編制的程序加注釋;3、給出仿真測試結果并對測試結果進行分析;4([0,1,-pi,pi]);functionvarargout=([0,1,-pi,pi]);functionvarargout=untitled1(varargin)%UNTITLED1M-fileforuntitled1.fig%%%%to%%%local%itself,createsanewUNTITLED1orraisestheexistingsingleton*.H=UNTITLED1returnsthehandletoanewUNTITLED1orthehandletheexistingsingleton*.UNTITLED1('CALLBACK',hObject,eventData,handles,...)callsthefunctionnamedCALLBACKinUNTITLED1.Mwiththegiveninputarguments.%%UNTITLED1('Property','Value',...)createsanewUNTITLED1orraisesthe%Startingfromtheleft,propertyvaluepairsare% appliedtotheGUIbeforeuntitled1_OpeningFunctiongetscalled.An% unrecognizedpropertynameorinvalidvaluemakespropertyapplication% stop.arepassedtountitled1_OpeningFcnviavarargin.%% *SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone% instancetorun(singleton)".%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpuntitled1%LastModifiedbyGUIDEv2.524-Oct-201222:23:01%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name', 'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@untitled1_OpeningFcn,...'gui_OutputFcn',@untitled1_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback', ifnargin&isstr(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforeuntitled1ismadevisible.functionuntitled1_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObject handletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles structurewithhandlesanduserdata(seeGUIDATA)%varargin commandlineargumentstountitled1(seeVARARGIN)%Choosedefaultcommandlineoutputforuntitled1handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesuntitled1waitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=untitled1_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%---Executesonbuttonpressinpushbutton1.functionpushbutton1_Callback(hObject,eventdata,handles)z1=wavread('d:\wei.wav');plot(z1);sound(z1);%hObject handletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles structurewithhandlesanduserdata(seeGUIDATA)%---Executesonbuttonpressinpushbutton2.functionpushbutton2_Callback(hObject,eventdata,handles)z1=wavread('d:\wei.wav');y1=z1(1:8192);Y1=fft(y1);n=0:8191;plot(n,Y1);%hObject handletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles structurewithhandlesanduserdata(seeGUIDATA)%---Executesonbuttonpressinpushbutton3.functionpushbutton3_Callback(hObject,eventdata,handles)clear;globalfp;globalfc;[z1,fs,bits]=wavread('d:\wei.wav')y1=z1(1:8192);Y1=fft(y1);As=100;Ap=1;Fs=8000;wc=2*atan(fc/(2*Fs));wp=2*atan(fp/(2*Fs));wdel=wc-wp;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel);wn=kaiser(N+1,beta);ws=(wp+wc)/2/pi;b=fir1(N,ws,wn);figure(1);freqz(b,1);x=fftfilt(b,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1));%axis([0,1000,0,1.0]);title('??2¨?°D?o??μ?×');subplot(2,2,2);plot(abs(X));%axis([0,1000,0,1.0]);title('??2¨oóD?o??μ?×');subplot(2,2,3);plot(z1);title('??2¨?°D?o?2¨D?');subplot(2,2,4);plot(x);title('??2¨oóD?o?2¨D?');sound(x,fs,bits);%hObject handletopushbutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles structurewithhandlesanduserdata(seeGUIDATA)%---Executesonbuttonpressinpushbutton4.functionpushbutton4_Callback(hObject,eventdata,handles)%hObject handletopushbutton4(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles structurewithhandlesanduserdata(seeGUIDATA)%---Executesduringobjectcreation,aftersettingallproperties.functionedit1_CreateFcn(hObject,eventdata,handles)%hObject handletoedit1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles empty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.% SeeISPCandCOMPUTER.ifispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunctionedit1_Callback(hObject,eventdata,handles)globalfp;get(hObject,'String');fp=str2num(get(hObject,'String'));%hObjecthandletoedit1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'String')returnscontentsofedit1astext% str2double(get(hObject,'String'))returnscontentsofedit1asadouble%---Executesduringobjectcreation,aftersettingallproperties.functionedit2_CreateFcn(hObject,eventdata,handles)%hObject handletoedit2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handles empty-handlesnotcreateduntilafterallCreateFcnscalled%Hint:editcontrolsusuallyhaveawhitebackgroundonWindows.% SeeISPCandCOMPUTER.ifispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunctionedit2_Callback(hObject,eventdata,handles)globalfc;get(hObject,'String');fc=str2num(get(hObject,'String'));%hObjecthandletoedit2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'String')returnscontentsofedit2astext% str2double(get(hObject,'String'))returnscontentsofedit2asadouble提高實驗篇一、實驗目的借助數字信號處理課程中的快速傅立葉反變換(IFFT)和快速傅立葉變換(FFT)相關知識,實現基帶OFDM系統的調制和解調。二、實驗內容14PSK16QAM。2、OFDMIFFTOFDM3、信道模塊。OFDM4、OFDM解調:借助FFT對信道輸出信號進行OFDM解調。5、對OFDM解調得到的信號進行星座反映射,還原二進制信號。開始初始化:子載波數為開始初始化:子載波數為256,出入不同信噪比產生隨機數16-QAM調制IFFT加入循環前綴加入高斯白噪聲去掉循環前綴FFT16-QAM解調進行誤碼率統計結束四、實驗原理框圖輸入數據輸入數據信道編碼交織信號映射插入導頻串/并交換IFFT載波解調信道載波調制間隔并/串變換定時和頻率同步頻偏校正去保護間隔串/并變換FFT并/串變換信道估計符號定時輸出數據信道解碼解交織映射五、實驗源程序及運行結果closeall;clc;snr=input('snr(dBW為單位):');N=256;%NOFDM符號的長度fork=1:N256個[0,15]之間的整數進行星座圖映射,X可以認為是已經進行串/并轉換后的輸出信號endfigure(1)plot(real(X1),imag(X1),'xr');title('隨機輸入數據的星座圖');xlabel('An(實部)');ylabel('Bn(虛部)');X2=ifft(X1,N);%X進行傅里葉反變換X3=[X2((N-0.25*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論