1、3、熟悉应用FFT对典型信号进行频谱分析的方法。二、实验内容使用MATLAB程序实现信号频域特性的分析。涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。三、实验原理与方法和手段 在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运
2、算量。在MATLAB信号处理工具箱中的函数fft(x,n),可以用来实现序列的N点快速傅立叶变换。经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。四、实验组织运行要求1、学生在进行实验前必须进行充分的预习,熟悉实验内容;2、学生根据实验要求,读懂并理解相应的程序;3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;4、教师在学生实验过程中予以必要的辅导,独立完成实验;5、采用集中授课形式。五、实验条件1、具有WINDOWS 98/2000/NT/XP操作系
3、统的计算机一台;2.、MATLAB编程软件。六、实验步骤在“开始-程序”菜单中,找到MATLAB程序,运行启动;进入MATLAB后 ,在Command Window中输入实验程序,并执行;记录运行结果图形,作分析。具体步骤如下:1、模拟信号,以进行采样,求:(1)N40点FFT的幅度频谱,从图中能否观察出信号的2个频谱分量?(2)提高采样点数,如N128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT频谱分析结果与理论上是否一致?2、一个连续信号含三个频谱分量,经采样得以下序列:(1)N64,df分别为、1/64,观察其频谱;(2)N64、128
4、,df为1/64,做128点得FFT,其结果有何不同?3、被噪声污染得信号,比较难看出所包含得频率分量,如一个由50Hz和120Hz正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz,试用FFT函数来分析其信号频率成分,要求:(1)画出时域波形;(2)分析信号功率谱密度。注:在MATLAB中,可用函数rand(1,N)产生均值为0,方差为1,长度为N的高斯随机序列。七、思考题FFT对信号进行频谱分析时,信号的频率的分辨率与什么有关?能否给出其数学关系?八、实验报告要求1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用;2、简述实验目的和原理;3、按实验
5、步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,说明参数改变时对时域和频域的影响;4、总结实验中的主要结论;5、收获和建议。九、参考程序程序1:N=40;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1);subplot(2,1,1);stem(n,x,.);title(signal x(n)subplot(2,1,2);plot(w/pi,magX);FFT N=40xlabel(f (unit :pi)ylabel(|X|grid程序3:t=0
6、:0.001:0.8;x=sin(2*pi*50*t)+cos(2*pi*120*t);y=x+1.5*randn(1,length(t);subplot(3,1,1);plot(t,x);subplot(3,1,2);plot(t,y);%title(press any key,continue.%pause;Y=fft(y,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;subplot(3,1,3);plot(f,P(1:256);实验二 IIR数字滤波器的设计3学时综合知识点:IIR数字滤波器,脉冲响应不变法,双线性变换法一、实验目的1、掌握脉冲响应不变
7、法和双线性变换法设计IIR数字滤波器的原理和方法;2、观察双线性变换法和脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。使用MATLAB编写程序,实现IIR数字滤波器的设计。涉及脉冲响应不变法和双线性变换法设计IIR数字滤波器的方法、不同设计方法得到的IIR滤波器频域特性异同等知识点。1、脉冲响应不变法所谓脉冲响应不变法就是使数字滤波器的单位脉冲响应序列h(n)等于模拟滤波器的单位冲激响应和(t)的采样值,即:,其中,T为采样周期。在MATLAB中,可用函数impinvar实现从模拟滤波器到数字滤波器的脉冲响应不变映射,调用格式为:b,a=impinvar(
8、c,d,fs)b,a=impinvar(c,d)其中,c、d分别为模拟滤波器的分子和分母多项式系数向量;fs为采样频率(Hz),缺省值fs=1Hz;b、a分别为数字滤波器分子和分母多项式系数向量。2、双线性变换法:由于s平面和z平面的单值双线性映射关系为s,其中T为采样周期。因此,若已知模拟滤波器的传递函数,将上式代入即可得到数字滤波器的系统函数H(z)。在双线性变换中,模拟角频率和数字角频率的变换关系为: 可见,和w之间的变换关系为非线性的。在MATLAB中,可用函数bilinear实现从模拟滤波器到数字滤波器的双线性变换映射,调用格式为:b,a=bilinear(c,d,fs)3、 设计步
9、骤:(1)定技术指标转换为模拟低通原型设计性能指标。(2)估计满足性能指标的模拟低通性能阶数和截止频率。利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数,调用格式如:其中,Wp为带通边界频率,rad/s;Ws为阻带边界频率,rad/s;Rp为带通波动,dB;Rs为阻带衰减,dB;s表示为模拟滤波器;函数返回值n为模拟滤波器的最小阶数;Wn为模拟滤波器的截止频率(-3dB频率),rad/s。函数适用低通、高通、带通、带阻滤波器。(3)设计模拟低通原型。利用MATLAB中buttap、cheb1ap、cheb2ap、elliap等函数,调用格式如z,p,
10、k=buttap(n)。采用上述函数所得到原型滤波器的传递函数为零点、极点、增益表达式,需要和函数c,d=zp2tf(z,p,k)配合使用,以转化为多项式形式。(4)由模拟低通原型经频率变换获得模拟低通、高通、带通或带阻滤波器。 利用MATLAB中lp2lp、lp2hp、lp2bp、lp2bs等函数,调用格式如c1,d1lp2lp(c,d,Wn)。(5)利用脉冲响应不变法或双线性不变法,实现模拟滤波器到数字滤波器的映射。【说明】MATLAB信号处理工具箱还提供了模拟滤波器设计的完全工具函数:butter、cheby1,cheby2、ellip、besself。用户只需一次调用就可自动完成以上步
11、骤中的34步,调用格式如:c,d=butter(n,Wn,ftype,s),其中,ftype为滤波器类型:high表示高通滤波器,截止频率为Wn;stop表示带阻滤波器,Wn=W1,W2 (W1W2);ftype缺省时表示为低通或带通滤波器。4、 本实验用到的特殊函数:db,mag,pha,w=freqz_m(b,a),计算幅频和相频响应。2、学生根据实验要求,编写相应的程序;2、MATLAB编程软件。进入MATLAB后 ,在Command Window中输入自己编写的主程序,并执行;记录运行结果图形,作分析对比。1、查看帮助文件,了解相关函数的调用格式。2、1)用双线性变换法设计一个Cheb
12、yshev1型数字带通滤波器,设计指标为:,2)(BW型数字带通滤波器,)3、,;(,)分别用脉冲响应不变法和双线性变换法设计一个Butterworth数字低通滤波器(1) 观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量;(2) 比较两种方法的优缺点;(3) 利用y=filter(b,a,x)函数观察对实际心电图信号的滤波效果。人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波器处理。已知某一实际心电图信号的采样序列如下:x(n)=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-
13、90,-66,-32,-4,2, -4,8,12,12,10,6,6,6,4,0,0,0,0,0, -2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0,共56点七、实验报告要求3、按实验步骤附上所设计滤波器的H(z)及相应的幅频特性曲线定性分析得到的图形,判断设计是否满足要求;4、总结双线性变换法和脉冲不变法的特点和区别;5、收获与建议。八、部分参考程序心电图信号的滤波%Filterclc;%clear;x=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,. -2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,. -4,8,12,12,10,6,6,6,4,0,0,0,0,0,. -2,-4,0,0,0,-2,-2,0,0,-2,-2,-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1