如何在Matlabs低通中定义频率

问题描述 投票:0回答:1

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吗?我对那些弧度有些困惑。

matlab filter lowpass-filter
1个回答
2
投票

归一化截止频率为

wpass = x/samplerate

其中Wn = fc/(fs/2) 是您想要的截止频率,fc是采样率。 2与Nyquist-Shannon-theorem有关,但是我不想造成任何混淆。请注意过滤器从不尖锐。因此它实际上不会在fs截止,但会衰减更高的频率。

为了实际控制滤镜的清晰度,我建议直接设计滤镜:例如fc为您提供Butterworth滤镜(或Bessel滤镜-比Butterworth锐度低,但在butterChebyshev滤镜时增益更好,这要清晰得多,但引入了butter处的增益振荡)。根据我的经验,通常使用四阶Butterworth过滤器。

< fc

编辑:实际上,使用它是< fc(如@LuisMendo所指出的)

[b,a] = butter(4,Wn);
sig_flt = filter(b,a,sig);

为避免数值错误:

通常,使用[z,p,k]语法设计IIR滤波器。

Chebyshev也是IIR滤波器)

© www.soinside.com 2019 - 2024. All rights reserved.