文章目录
实验目的试验内容要求MATLAB实现原理代码实现实验目的
熟悉双线性变换法设计IIR数字滤波器的原理与方法掌握数字滤波器的计算机仿真方法通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识试验内容
用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。设计指标参数为:在通带内频率低于0.2π0.2\pi0.2π时,最大衰减小于1dB;在阻带内[0.3π,π][0.3\pi,\pi][0.3π,π]频率区间上,最小衰减大于15dB。以0.02π为抽样间隔,打印出数字滤波器在频率区间[0,π2][0,\frac{\pi}{2}][0,2π]上的幅频响应特性曲线。用所设计的滤波器对实际心电图信号抽样序列进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。要求
由所打印的∣H(ejω)∣|H(e^{jω})|∣H(ejω)∣特性曲线及设计过程简述双线性变换法的特点。对比滤波前后的心电图信号波形,说明数字滤波器的滤波过程与滤波作用。附:心电图信号抽样序列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实现
原理
双线性变换法从sss域映射到正切tantantan,再从tantantan映射到zzz域
s=2T⋅1−z−11+z−1jΩ=2Tjtanω2(s=jΩ)z=1+sT/21−sT/2(s=δ+jΩ)s=\frac{2}{T}\cdot\frac{1-z^{-1}}{1+z^{-1}}\\ j\Omega=\frac{2}{T}jtan\frac{\omega}{2}~~(s=j\Omega)\\ z=\frac{1+sT/2}{1-sT/2}~~(s=\delta+j\Omega) s=T2⋅1+z−11−z−1jΩ=T2jtan2ω(s=jΩ)z=1−sT/21+sT/2(s=δ+jΩ)
数字滤波工作原理
x0(t)→H1(s)→x(t)→抽样/量化→x(n)→H(z)→y(n)→ys(t)→H2(s)→y(t)x_0(t)\rightarrow H_1(s)\rightarrow x(t)\rightarrow 抽样/量化\rightarrow \\ x(n)\rightarrow H(z)\rightarrow y(n)\rightarrow y_s(t)\rightarrow \\ H_2(s)\rightarrow y(t) x0(t)→H1(s)→x(t)→抽样/量化→x(n)→H(z)→y(n)→ys(t)→H2(s)→y(t)
代码实现
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=length(x);xk=fft(x);plot(0:n-1,abs(xk));title('频域信号');
双线性变换—Butterworth IIR
%数字滤波器指标wp = 0.2*pi;ws = 0.3*pi;rp = 1;rs = 15;Fs = 1;%转换成模拟域wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn] = buttord(wp1,ws1,rp,rs,'s');[Z,P,K] = buttap(N);[Bap,Aap] = zp2tf(Z,P,K);[b,a] = lp2lp(Bap,Aap,Wn);[bz,az] = bilinear(b,a,Fs);[H,W] = freqz(bz,az);disp(bz);disp(az);plot(W*Fs/pi,abs(H));grid on;xlabel('频率/Hz');ylabel('幅度');title('数字滤波器的频率响应');
clear;% 读取原始数据,这里是 n * 1 的数据Signal = [-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];%指标wp = 0.2*pi;ws = 0.3*pi;rp = 1;rs = 15;Fs = 1;%计算wp1=2*Fs*tan(wp/2);ws1=2*Fs*tan(ws/2);[N,Wn] = buttord(wp1,ws1,rp,rs,'s');[Z,P,K] = buttap(N);[Bap,Aap] = zp2tf(Z,P,K);[b,a] = lp2lp(Bap,Aap,Wn);[bz,az] = bilinear(b,a,Fs);% 滤波Signal_Filter = filter(bz, az, Signal); subplot(2, 1, 1);plot(Signal);title('原始图像');subplot(2,1,2);plot(Signal_Filter);title('巴特沃斯低通滤波后图像');