Matlab数字信号处理实验报告_第1页
Matlab数字信号处理实验报告_第2页
Matlab数字信号处理实验报告_第3页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字信号处理实验报告基础实验篇实验一 离散时间系统及离散卷积一、实验原理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('Â˲¨Ç°ÐźÅƵÆ×');subplot(2,2,2);plot(abs(X));%axis([0,1000,0,1.0]);title('Â˲¨ºóÐźÅƵÆ×');subplot(2,2,3);plot(z1);title('Â˲¨Ç°ÐźŲ¨ÐÎ');subplot(2,2,4);plot(x);title('Â˲¨ºóÐźŲ¨ÐÎ');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

提交评论