如何在 MatLab 的滤波器中指定振幅阈值
How to specify amplitude threshold in a filter in MatLab
您好,我想澄清一下如何在椭圆滤波器上指定振幅阈值。
这是我目前所做的
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 是允许通过的振幅阈值是否正确?或者我有做其他事情吗?目前,在对数据进行平均以去除常见噪声并使用 ranksum 获取能量数据后,我的绘图看起来像图像。
如您所见,出现了一个巨大的尖峰,我想降低阈值,这样就可以忽略这样的尖峰。
Rp
和Rs
分别表示频域中的通带纹波和阻带衰减。用 freqz(B,A)
绘制滤波器的频率响应会给你一个看起来像这样的图:
如您所见,指定的 fmin
(20Hz) 和 fmax
(30Hz) 之间的通带响应略有不同。这种变化是通带纹波 Rp
.
在通带之外(低于 20Hz 和高于 30Hz),响应会发生变化但不会超过 -20dB。这是阻带衰减 Rs
.
因此,这些参数不代表阈值 time-domain 振幅,尽管您可以通过增加阻带衰减 Rs
来稍微降低大脉冲的总体振幅。但是请注意,更好地改善信号通常需要考虑输入以及所需的输出特性。
您好,我想澄清一下如何在椭圆滤波器上指定振幅阈值。
这是我目前所做的
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 是允许通过的振幅阈值是否正确?或者我有做其他事情吗?目前,在对数据进行平均以去除常见噪声并使用 ranksum 获取能量数据后,我的绘图看起来像图像。
如您所见,出现了一个巨大的尖峰,我想降低阈值,这样就可以忽略这样的尖峰。
Rp
和Rs
分别表示频域中的通带纹波和阻带衰减。用 freqz(B,A)
绘制滤波器的频率响应会给你一个看起来像这样的图:
如您所见,指定的 fmin
(20Hz) 和 fmax
(30Hz) 之间的通带响应略有不同。这种变化是通带纹波 Rp
.
在通带之外(低于 20Hz 和高于 30Hz),响应会发生变化但不会超过 -20dB。这是阻带衰减 Rs
.
因此,这些参数不代表阈值 time-domain 振幅,尽管您可以通过增加阻带衰减 Rs
来稍微降低大脉冲的总体振幅。但是请注意,更好地改善信号通常需要考虑输入以及所需的输出特性。