【问题标题】:Matlab Buttord returning Wn > 1 why?Matlab Buttord 返回 Wn > 1 为什么?
【发布时间】:2014-10-31 01:06:35
【问题描述】:

我是 matlab 和信号课程的新手,但我有一个作业说明我必须为 Butterworth 设计一个 DT 滤波器。 我有这些给定的参数:

  • 噪声信号存储在变量噪声中,并在 44100 (fs) 赫兹。
    1. 通带边缘:2500 Hz。
    2. 阻带边缘:4000 Hz。
    3. 通带 Gpbmax 的最大增益:40 dB。
    4. 通带 Gpbmin 的最小增益:37 dB。
    5. 阻带 Gsbmax 的最大增益:-55 dB。

我做了什么:

[n, Wn] = buttord(2500*2*pi, 4000*2*pi, 3, 55, 's'); 
% Wn here is 1.5989e+04, I couldn't execute this without the 's' option.

[b, a] = butter(n, Wn)
The cutoff frequencies must be within the interval of (0,1).

有什么答案吗?

【问题讨论】:

标签: matlab filtering signal-processing


【解决方案1】:

因为您使用的是's' 选项,所以Wn 以rad/s 为单位返回,请参阅documentation。要将其与butter 一起使用,您需要按采样频率进行归一化,或者不要使用's' 选项:

fs = 2*pi*44100;
[b, a] = butter(n, Wn/fs);

或将butter's' 选项一起使用:

[b,a] = butter(n,Wn,'s');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 2012-01-25
    • 2012-03-05
    • 2017-06-04
    • 2015-01-25
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多