我有这个。
噪声信号以44100 Hz采样。 通带边缘:2500 Hz。 阻带边缘:4000 Hz。 通带Gpbmax的最大增益:40 dB。 通带Gpbmin的最小增益:37 dB。 阻带Gsbmax的最大增益:-55 dB。
我必须使用Kaiser(低通滤波器)过滤它,但是,我不明白在第二个参数([1 0])中放置什么,以及其他参数是否正确? 我收到的是n = -36。我不知道该怎么做
我的代码:
% Design Kaiser Filter
Fs = 44100; % Sampling Frequency (Hz)
Fcuts = [2500 4000]; % cutoff Frequency
pass = [3 55]; % passband
% Use kaiserord to get the minimum order of the filter
[n,Wn,beta,ftype] = kaiserord(Fcuts, [1 0], pass, Fs);
同样的问题适用于Parks-McClellan [N,Fo,Ao,W] = firpmord(F,A,DEV,Fs) 它是一样的吗?
感谢。
答案 0 :(得分:0)
有趣的是,你有没有试过google这个问题。我用谷歌搜索了“kaiser matlab”并在第一次点击时起了kaiser
,在第二次点击时起了kaiserord
。
文档明确指出Fcuts
是频段,第二个输入a
是Fcuts
中频率的幅度。所以你所说的是Fcuts(1)的幅度为1,Fcuts(2)的幅度为0(或接近)。
答案 1 :(得分:0)
通带和阻带偏差不能以dB为单位给出。
pass = [3 55]; % passband
必须根据过滤器增益给出。
doc kaiserord
说
dev是一个与a相同大小的矢量,用于指定每个频段的输出滤波器的频率响应与其所需幅度之间的最大允许误差或偏差。 dev中的条目指定通带纹波和阻带衰减。 您可以将dev中的每个条目指定为正数,表示绝对过滤器增益(不是以分贝为单位)。