如何在MatLab中指定过滤器中的幅度阈值

时间:2016-08-01 19:49:32

标签: matlab signal-processing matlab-figure

您好我想澄清一下如何在椭圆滤波器上指定幅度阈值。

这是我到目前为止所做的事情

fmin  = 20;  % minimum passband frequency in Hz (High Gamma)
fmax  = 30;  % maximum passband frequency in Hz (High Gamma)
Rs    = 20; % stopband attenuation in dB
Rp    = 1;  % passband ripples in dB



% for High gamma band 
[order, Wn] = ellipord([fmin/(fs/2), fmax/(fs/2)], [(fmin-1)/(fs/2), (fmax+1)/(fs/2)], Rp, Rs);
[B,A] = ellip(order, Rp, Rs, [fmin/(fs/2), fmax/(fs/2)]);

我是新手,但我认为Rs和Rp是幅度阈值是正确的吗?或者我还做了别的什么。目前,在对数据进行平均以消除常见噪声并使用rankum获取能量数据之后,我的情节看起来就像是图像。

enter image description here

正如你所看到的那样,有一个巨大的峰值,我想降低门槛,所以这样的尖峰可以被忽略。

1 个答案:

答案 0 :(得分:2)

RpRs分别表示频域中的通带纹波和阻带衰减。使用freqz(B,A)绘制过滤器的频率响应将为您提供如下图:

Frequency response

正如您所看到的,您指定的fmin(20Hz)和fmax(30Hz)之间的通带响应略有不同。这种变化是通带纹波Rp

在通带外(低于20Hz且高于30Hz),响应变化但不超过-20dB。这是阻带衰减Rs

因此,这些参数并不代表阈值时域幅度,尽管您可以通过增加阻带衰减Rs来减少大脉冲的整体幅度。但请注意,更好地改善信号通常需要考虑输入和所需的输出特性。