陷波滤波可最大程度地减少信号中的伪像

时间:2019-07-04 08:07:56

标签: matlab filter signal-processing artifacts

我必须对以下信号进行陷波滤波。enter image description here

如您所见,这是一个幅度很高的信号,这给我带来了很多问题。我设计了一个带阻滤波器(46-55 Hz)。MATLAB代码为

Fs=5000; sampling frequency

Wp_NOTCH = [36/(Fs/2) 71/(Fs/2)];
Ws_NOTCH= [46/(Fs/2) 55/(Fs/2)];
Rp_db=-20*log10(.95);
Rs_db=-20*log10(.05);
[order_NOTCH,wn_NOTCH] = buttord(Wp_NOTCH,Ws_NOTCH,Rp_db,Rs_db);
[B_NOTCH,A_NOTCH]=butter(order_NOTCH,wn_NOTCH,'stop');

过滤器为enter image description here 当我过滤信号时(使用filtfilt),我得到以下信号enter image description here 如您所见,它有很多工件和“波浪”。有什么方法可以最小化这些伪像?如何删除使这些伪像最小化的50Hz分量?有什么建议吗? 预先感谢

1 个答案:

答案 0 :(得分:0)

陷波滤波器的设计目的是消除具有设定频率的正弦波,它们不能用于数据的急剧变化。您发布的示例看起来并不像50Hz的工件,因此陷波滤波器在这里无济于事。您可以查找有关如何处理数据不连续性,跳跃或步进工件或瞬态响应的信息。 Here是在Matlab环境中的一些解释