资源描述:
《实验五 iir滤波器的设计与信号滤波》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验五IIR滤波器的设计与信号滤波一、实验目的设计IIR滤波器,实现对存在加性干扰的时域离散信号进行滤波。二、实验内容已知带加性干扰的信号用x(n)表示,x(n)=xs(n)+η(n),式中xs(n)是有用的信号,是一个0~0.2πrad的带限信号。η(n)是一个干扰信号,其频谱分布在0.3πrad以上。要求设计一个巴特沃斯IIR数字滤波器对信号x(n)进行滤波,将干扰η(n)滤除。要求在xs(n)所在的通带内滤波器幅度平坦,在0.2πrad处幅度衰减不大于1dB,在噪声所在的0.3πrad以上的频带内滤波器幅度
2、衰减大于等于40dB。三、实验步骤1.根据题目要求确定要设计的数字滤波器的技术指标(低通滤波器指标:wp=0.2πrad,ws=0.3πrad,αp=1dB,αs=40dB);2.用双线性变换法频率转换公式,将上面的技术指标转换为巴特沃斯模拟滤波器的技术指标;3.调用MATLAB函数buttord和butter,设计该模拟滤波器;4.用双线性变换法将设计的模拟滤波器转换为数字滤波器,求出该滤波器的系统函数并画出它的直接型网络结构图;5.画出该滤波器的幅度特性曲线;6.根据1所确定的技术指标,调用MATLAB函数b
3、uttord和butter,直接设计数字滤波器,观察设计结果与上面用双线性变换法的设计结果是否相同。8.滤波仿真:调用MATLAB工具箱函数filter对下面给出的带加性干扰的信号x(n)进行滤波,观察滤波效果(绘制滤波前后信号的时域和频域波形)。实验信号为心电图信号采样序列,人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在实验中,以x(n)作为输入序列,滤除其中的干扰成分。x(n):={
4、-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,-2,-2,0}四、实验用MATLAB函数简介filter功能:一维数字滤波器直接Ⅱ型实现函数。调用格式:yn=filter(B,A,xn):按直接Ⅱ型实现结构对输入信号向量xn滤波,返回滤波器输出信号向量yn,调用参数B和
5、A分别为滤波器系统函数的分子和分母多项式系数向量。其实质是求解差分方程:A(1)y(n)=B(1)x(n)+B(2)x(n-1)+…+B(M+1)x(n-M)-A(2)y(n-1)-…-A(N+1)y(n-N如果A(1)不等于1时,则对系数关于A(1)归一化后计算输出信号y(n)。当A=1时,对应FIR-DF的直接Ⅱ型实现。五、实验报告要求1.写出所设计的数字滤波器的主要技术指标、系统函数、网络结构;2.写出两种IIR数字滤波器的设计原理、步骤;3.写出仿真滤波试验的结果。六、实验程序(1):用双线性变换法设计I
6、IR数字滤波器的程序:%输入信号及其波形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,-2,-2,0];n=0:55;subplot(2,2,1);stem(n,x,'.');axis([060-10050]);holdon;n=0:60;m=zero
7、s(61);plot(n,m);xlabel('n');ylabel('x(n)');title('心电图信号采样序列x(n)');X=fft(x,256);subplot(2,2,2)k=0:255;plot(2*k/256,abs(X))xlabel('k');ylabel('X(k)');title('心电图信号采样序列的频谱');%用双线性变换法滤波器设计IIR-DFT=1;Wp=0.2*pi;Ws=0.3*pi;Rp=1;Rs=40;Omegap=2*tan(Wp/2)/T;%模拟波器通带截止频率Ome
8、gas=2*tan(Ws/2)/T;%模拟波器通带截止频率Fs=1/T;%采样频率[N,Wc]=buttord(Omegap,Omegas,Rp,Rs,'s');%计算巴特沃斯模拟滤波器阶数N及%3dB截止频率Wc[Z,P,K]=buttap(N);%求butterworth归一化原型H(p),零极点增益形式[b,a]=zp2tf(Z,P,K);%转换成归化系统函数形式,