当前位置:首页 > DSP实验5 IIR滤波器的设计与信号滤波
实验五 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 以上的频带内滤波器幅度衰减大于等于40 dB。 三、实验步骤
1. 根据题目要求确定要设计的数字滤波器的技术指标 (低通滤波器指标:wp=0.2πrad, ws=0.3πrad, αp=1dB, αs=40dB);
2. 用双线性变换法频率转换公式,将上面的技术指标转换为巴特沃斯模拟滤波器的技术指标;
3. 调用MATLAB函数buttord和butter,设计该模拟滤波器;
4. 用双线性变换法将设计的模拟滤波器转换为数字滤波器,求出该滤波器的系统函数并画出它的直接型网络结构图; 5. 画出该滤波器的幅度特性曲线;
6. 根据1所确定的技术指标,调用MATLAB函数buttord和butter,直接设计数字滤波器,观察设计结果与上面用双线性变换法的设计结果是否相同。 8. 滤波仿真:调用MATLAB工具箱函数filter对下面给出的带加性干扰的信号x(n)进行滤波,观察滤波效果(绘制滤波前后信号的时域和频域波形)。 实验信号为心电图信号采样序列,人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波处理后,才能作为判断心脏功能的有用信息。下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰。在实验中,以x(n)作为输入序列,滤除其中的干扰成分。
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, -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和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时,对应IIR-DF的直接Ⅱ型实现。 五、实验报告要求
1. 写出所设计的数字滤波器的主要技术指标、系统函数、网络结构; 2. 写出两种IIR数字滤波器的设计原理、步骤; 3. 写出仿真滤波试验的结果。
附录1:用双线性变换法设计IIR数字滤波器的程序: %输入信号及其波形
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([0 60 -100 50]); hold on; n=0:60; m=zeros(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*pi*k/256,abs(X)) xlabel('k'); ylabel('X(k)');
title('心电图信号采样序列的频谱');
%用双线性变换法滤波器设计IIR-DF T=1;
Wp=0.2*pi;Ws=0.3*pi;Rp=1;Rs=40;
Omegap=2*tan(Wp/2)/T; %模拟波器通带截止频率
Omegas=2*tan(Ws/2)/T; %模拟波器通带截止频率 Fs=1/T; %采样频率
[N,Wc]=buttord(Omegap,Omegas,Rp,Rs,'s'); %计算巴特沃斯模拟滤波器阶数N及=B截止频率Wc
[Z,P,K]=buttap(N); %求butterworth归一化原型H(p),零极点增益形式 [b,a]=zp2tf(Z,P,K); % 转换成归化系统函数形式,H(p)为分子分母多项式形式 [bt,at]=lp2lp(b,a,Wc); %去归一化转换为实际低通Ha(s) % [b1,a1]=butter(N,Wc,'s');%可以代替以上三个步骤
[bb,ab]=bilinear(bt,at,Fs); %双线性变换得H(z),Fs为采样频率 %求数字滤波器的幅频特性
[H,w]=freqz(bb,ab,100); %对应采样间隔为0.02*pi mag=abs(H);
db=20*log10((mag+eps)/max(mag)); subplot(2,2,3); plot(w/pi,db); axis([0,0.6,-50,10]); grid on
title('滤波器的幅频响应曲线');
%用设计滤波器对输入信号进行滤波 y=filter(bb,ab,x); subplot(2,2,4);
共分享92篇相关文档