我的 buttord 函数有问题,我想我不明白它是如何工作的。我正在传递一些参数并获得过滤器的负序。这怎么可能?我正在构建一个模拟低通滤波器,其通带以 1500Hz 结束,阻带以 2000Hz 开始。纹波要求以 dB 为单位,不确定它是否会改变任何东西。我一直在查看 Matlab 文档,但找不到代码有什么问题。
这是我的代码:
rbp = 0.10; %pass band ripple requierement
rbs = 0.05; %stop band ripple
fp = 1500; %pass band freq
fs = 2000; %stop band freq
Wp = 2*pi*fp; % change to rad/sec
Ws = 2*pi*fs;
[N, Wn] = buttord(Wp,Ws,rbp,rbs,'s') %yields N = -1
谢谢!