如何知道MATLAB中的firpm函数计算出的滤波器阶数
时间: 2023-09-10 22:06:02 浏览: 103
Matlab 基于多相滤波器来实现的信道化发射机与信道化接收机
5星 · 资源好评率100%
MATLAB中的firpm函数是根据一组设计参数(如通带频率、通带衰减、阻带频率、阻带衰减等)自动计算FIR滤波器的阶数。可以使用MATLAB中的length函数或size函数,来查看firpm函数输出的滤波器系数向量的长度,从而确定计算出的滤波器阶数。
例如,假设使用firpm函数设计一个通带截止频率为0.2*pi、通带最大衰减为0.1dB、阻带截止频率为0.3*pi、阻带最小衰减为60dB的低通滤波器,代码如下:
```matlab
fs = 1000; % 采样频率
fpass = 0.2*pi; % 通带截止频率
fstop = 0.3*pi; % 阻带截止频率
Ap = 0.1; % 通带最大衰减(dB)
Ast = 60; % 阻带最小衰减(dB)
[N, Fc, W, B] = firpmord([fpass, fstop]/(fs/2), [1, 0], [Ap, Ast]); % 计算设定参数
h = firpm(N, Fc, W, B); % 设计滤波器
```
运行上述代码后,可以使用length函数查看滤波器系数向量的长度,从而确定计算出的滤波器阶数:
```matlab
>> length(h)
ans =
101
```
可以看到,使用firpm函数计算出的滤波器阶数为101。
阅读全文