【发布时间】:2014-07-28 10:34:15
【问题描述】:
目前,我正在努力消除心电图信号中的 50 Hz 电源线干扰。在尝试陷波滤波器之前,我决定尝试一个截止频率小于 50 Hz 的简单低通滤波器。这是我用来制作过滤器的 MATLAB 代码:
Fs=500; %Sampling rate in Hz
Ast = 120; %Stopband attenuation
Ap = 1; %Passband ripple
Fp = 30; %Passband end
Fst = 45; %Stopband beginning
Hd=fdesign.lowpass('Fp,Fst,Ap,Ast',Fp,Fst,Ap,Ast,Fs);
d=design(Hd,'butter'); % Design a butterworth filter with the given characteristics
fvtool(d);
滤波器的幅度响应为:
如您所见,滤波器在 50 Hz 时衰减约为 180 dB,在更高频率时衰减更大。
现在,我对我的数据运行此过滤器。这是时域和频域的原始数据:
这是应用过滤器后的数据:
如您所见,50 Hz 处的衰减远不及滤波器宣传的 180 dB。为了更好看,下面是通过取信号的 FFT 比率计算的幅度响应图:
显然,衰减远未达到应有的水平。这是它应该的方式还是我在实施中做错了什么?
提前感谢所有帮助!
【问题讨论】:
标签: matlab filter filtering signal-processing