在documentation on lowpass
中,我发现了这一点:
lowpass
使用低通滤波器过滤输入信号y = lowpass(x,wpass)
归一化通带频率x
的滤波器,以π为单位 弧度/样本。wpass
使用带阻带的最小阶滤波器 60 dB的衰减并补偿由 过滤。如果lowpass
是矩阵,该函数过滤每一列 独立地。
x
指定y = lowpass(x,fpass,fs)
已在x
赫兹的频率。fs
是滤波器中的通带频率 赫兹。
但是似乎第二个频率fpass
并没有真正使用Hz,因为它没有对高于y = lowpass(x,fpass,fs)
所经过的频率进行滤波。
我如何使用第一个?如果我要使用截止频率为fpass
的低通滤波器,该如何计算wpass
?我需要做x
吗?我对那些弧度有些困惑。
归一化截止频率为
wpass = x/samplerate
其中Wn = fc/(fs/2)
是您想要的截止频率,fc
是采样率。 2与Nyquist-Shannon-theorem有关,但是我不想造成任何混淆。请注意过滤器从不尖锐。因此它实际上不会在fs
截止,但会衰减更高的频率。
为了实际控制滤镜的清晰度,我建议直接设计滤镜:例如fc
为您提供Butterworth滤镜(或Bessel滤镜-比Butterworth锐度低,但在butter
或Chebyshev滤镜时增益更好,这要清晰得多,但引入了butter
处的增益振荡)。根据我的经验,通常使用四阶Butterworth过滤器。
< fc
编辑:实际上,使用它是< fc
(如@LuisMendo所指出的)
[b,a] = butter(4,Wn);
sig_flt = filter(b,a,sig);
为避免数值错误:
通常,使用[z,p,k]语法设计IIR滤波器。
(Chebyshev也是IIR滤波器)