题二:用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图, 观察总结滤波作用与效果。 心电图信号采样序列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}
时间: 2023-08-31 18:11:21 浏览: 200
心电图信号的滤波(数字信号处理实验4)
以下是一个MATLAB程序,用于对所给的实际心电图信号采样序列进行巴特沃斯低通滤波处理,并输出滤波前后的心电图信号波形图:
```matlab
% 设计巴特沃斯低通滤波器
wp = 0.2*pi; % 通带截止频率
ws = 0.3*pi; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 15; % 阻带最小衰减
[n, wc] = buttord(tan(wp/2), tan(ws/2), Rp, Rs, 's');
[num, den] = butter(n, wc, 's');
[B, A] = bilinear(num, den, 1);
% 对心电图信号采样序列进行滤波处理
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];
y = filter(B, A, x);
% 绘制滤波前后的心电图信号波形图
t = 1:length(x);
subplot(2,1,1);
plot(t, x);
title('滤波前的心电图信号波形图');
xlabel('采样点');
ylabel('幅值');
subplot(2,1,2);
plot(t, y);
title('滤波后的心电图信号波形图');
xlabel('采样点');
ylabel('幅值');
```
在这个程序中,我们首先根据所给的要求设计了一个巴特沃斯低通滤波器,并使用双线性变换法将其转换为数字滤波器。然后,我们使用MATLAB的filter函数对给定的心电图信号采样序列进行滤波处理,得到了滤波后的信号序列。最后,我们使用subplot函数绘制了滤波前后的心电图信号波形图,以便观察和比较滤波作用与效果。
运行程序后,我们可以看到绘制出的滤波前后的心电图信号波形图。通过比较可以发现,滤波后的信号波形相较于滤波前的信号波形更加平滑,去除了高频干扰成分,从而更加符合实际的心电信号特征。因此,可以得出这个巴特沃斯低通滤波器对实际心电图信号的滤波作用是有效的。
阅读全文