【问题标题】:What should the second parameter be for the Kaiser's filter?Kaiser 滤波器的第二个参数应该是什么?
【发布时间】:2014-11-01 22:40:55
【问题描述】:

这个给我了。

噪声信号的采样频率为 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) 是一样的吗?

谢谢。

【问题讨论】:

    标签: matlab filtering signal-processing


    【解决方案1】:

    通带和阻带偏差不能以 dB 为单位。

    pass = [3 55];       % passband 
    

    它必须以滤波器增益的形式给出。

    doc kaiserord
    

    dev 是一个与 a 大小相同的向量,用于指定每个频段的输出滤波器的频率响应与其所需幅度之间的最大允许误差或偏差。 dev 中的条目指定通带纹波和阻带衰减。 您将 dev 中的每个条目指定为正数,表示绝对滤波器增益(不是以分贝为单位)。

    【讨论】:

      【解决方案2】:

      有意思,你有没有试过google这个问题。我用谷歌搜索了“kaiser matlab”并在第一次点击时起床kaiser,在第二次点击时起床kaiserord

      文档明确指出Fcuts 是频带,第二个输入aFcuts 中频率的幅度。所以你说的是,Fcuts(1) 的幅度为 1,Fcuts(2) 的幅度为 0(或接近)。

      【讨论】:

      • @achehab 是的,但是你不能说我的回答没有回答最重要的问题。但是,对于其余的,不,这是不正确的。您将通带边缘增益设置为 0 dB,但规格为 Gpbmin:37 dB 您还需要更早地指定另一个点以满足要求 Gpbmax:40 dB(可能是 0 Hz?),并且参数 pass 必须在绝对坐标中为其余的部分。对于阻带边缘,您也很难使用 -inf db。 -55 dB(绝对坐标)就足够了
      猜你喜欢
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      相关资源
      最近更新 更多