您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > MATLAB综合实验报告
实验七综合实验一.实验目的能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理(1)熟练对信号进行时域和频域分析;(2)熟练进行滤波器设计和实现;(3)掌握对信号的滤波处理和分析。二.实验原理设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。(1)离散时间信号与系统的时域分析Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。(2)信号的频域分析信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。(3)滤波器设计滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。(1)对信号进行时域和频域分析,确定信号x的频率分量。程序设计:subplot(2,1,1);plot(x);title('timedomainofx');[X,w]=freqz(x);subplot(2,1,2);plot(w/pi,abs(X));title('freqencydomainofx');实验结果:分析:从信号的频谱可以看出X的频率分量有0.2pi,0.5pi和0.9pi(2)用Matlab实现滤波器。○1设计低通滤波器,滤出低频分量:程序设计:rp=1;rs=60;wp=0.3*pi;ws=0.4*pi;%通带和阻带的截止频率Fs=1;%letFs=1wap=tan(wp/2);was=tan(ws/2);%预畸变公式[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器[z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k);%设计模拟低通原型滤波器[bs,as]=lp2lp(bp,ap,wap)%将模拟低通原型滤波器转换为低通滤波器[bz,az]=bilinear(bs,as,Fs/2);%实现双线性变换,即由模拟滤波器得到数字滤波器%bz,az为分子分母系数。[h,w]=freqz(bz,az,256,Fs);subplot(2,2,2);plot(w,abs(h));%滤波器频域图title('frequencydomainoflowpassfilter');h1=impz(bz,az);%滤波器时域图subplot(2,2,1);plot(h1);title('timedomainoflowpassfilter');y=filter(bz,az,x);%验证y1=freqz(y);%时域转频域subplot(2,2,4);plot(abs(y1));%过滤图(频域)title('xfrequencydomainoutoflowpassfilter');subplot(2,2,3);plot(y);title('xtimedomainoutoflowpassfilter');%过滤图时域实验结果:分析:通过滤波得到了略有衰减的清晰的低频信号。○2设计高通滤波器,滤出高频分量:程序设计:rp=1;rs=80;%参数设置wp=0.8*pi;ws=0.6*pi;Fs=1;%letFs=1wap=tan(wp/2);was=tan(ws/2);%预畸变公式[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器[z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k);%设计模拟低通原型滤波器[bs,as]=lp2hp(bp,ap,wap)%将模拟低通原型滤波器转换为低通滤波器[bz,az]=bilinear(bs,as,Fs/2);%实现双线性变换,即由模拟滤波器得到数字滤波器[h,w]=freqz(bz,az,256,1);h3=impz(bz,az);subplot(2,2,1);plot(h3);title('timedomainoffilter');%滤波器时域图subplot(2,2,2);plot(w,abs(h));title('frequencydomainoffilter');%滤波器频域图y=filter(bz,az,x);subplot(2,2,3);plot(y);title('xtimedomainoutoffilter');%过滤图时域y1=freqz(y);subplot(2,2,4);plot(abs(y1));%?wtitle('xfrequencydomainoutoffilter');%过滤图(频域)实验结果:分析:通过滤波得到了清晰的高频信号。○3设计带通滤波器,滤出中频分量。程序设计:wn=[0.4,0.6];%cut-offfrequency范围b2=fir1(34,wn,'bandpass');%带阻滤波器默认是函数自动取hamming。%f=[00.40.40.650.651];%m=[110011];%设定带阻的范围为0.4pi-0.65pi%b1=fir2(34,f,m,chebwin(35,60))%为求取频率响应系数。分子为b,分母为1h2=impz(b2,1);%滤波器时域图subplot(2,2,1);plot(h2);title('timedomainoffilter');y2=freqz(b2,1,100);subplot(2,2,2);plot(abs(y2));%滤波器频域图title('frequecydomainoffilter');y=filter(b2,1,x);%验证subplot(2,2,3);plot(y);title('xtimedomainoutoffilter');%过滤图时域y1=freqz(y);subplot(2,2,4);plot(abs(y1));%过滤图频域title('xfrequencyoutoffilter');实验结果:分析:通过滤波,很好的从复合信号X中得到了稳定且基本没有衰减的中频信号。实验总结:通过本实验,我充分掌握了滤波器的分析,设计过程,对滤波器在时域和频域的图形有了一定的了解,会使用MATLAB分析信号的频谱情况,并设计相应的滤波器滤出有用信号。信号处理实验是对信号理论课程的实践和补充,能让同学们更好的理解和掌握课本的枯燥的理论。我通过实验对课本里没认识清楚的部分,有了一个认识,让我去补充学习相关重要的理论知识,更好的掌握了本科程的知识。
本文标题:MATLAB综合实验报告
链接地址:https://www.777doc.com/doc-2882245 .html