2026a
M 语言

# filtord


滤波器阶数

# 语法

n = filtord(b, a)
n = filtord(sos)

# 说明

n = filtord(b, a) 返回由分子系数 b 和分母系数 a 指定的因果有理系统函数的滤波器阶数 n。当只输入参数 b 时,参数 a 为默认值,设为 1 。


n = filtord(sos) 返回由二阶基本节矩阵 sos 指定的滤波器的滤波器阶数。sos 是一个 K × 6 矩阵,段数 K 必须大于或等于 2。


sos 的每一行对应一个二阶滤波器的系数。二阶基本节矩阵的第 i 行对应于 [bi[1] bi[2] bi[3] ai[1] ai[2] ai[3]]。

# 示例

验证 FIR 滤波器的阶数

使用窗函数方法设计一个归一化截止频率为 0.5π rad/sample 的 21 阶 FIR 滤波器,验证滤波器阶数。

b = fir1(21,0.5);
n = filtord(b)
n = 

    21

确定 FIR 和 IIR 设计之间的阶数差异

设计 FIR 等波纹滤波器和 IIR Butterworth 滤波器。确定两个设计之间滤波器阶数的差异。

fs = 1000;
fpass = 100;
fstop = 120;
delta_p = 0.5;
delta_s = 60;               
wp = fpass / (fs/2);
ws = fstop / (fs/2);
order = firpmord([fpass, fstop], [1, 0], [10^(delta_p/20)-1, 10^(-delta_s/20)], fs);
b = firpm(order, [0, wp, ws, 1], [1, 1, 0, 0], [1, 10^(delta_s/20)/(10^(delta_p/20)-1)]);
FIR = filtord(b) 
FIR = 

    98

[N, Wn] = buttord(wp, ws, delta_p, delta_s);
[b, a] = butter(N, Wn, 'low');
IIR = filtord(b,a)
IIR = 

    41

# 输入参数

b - 分子系数
向量 | 标量

分子系数,指定为标量(全极点滤波器)或向量。

示例: b = fir1(20,0.25)

是否支持复数:

a - 分母系数
向量 | 标量

分母系数,指定为标量或向量。如果滤波器是 FIR 滤波器,则 a 是标量,否则 a 是行或列向量。

示例: [b, a] = butter(20,0.25)

是否支持复数:

sos - 二阶基本节矩阵
矩阵

二阶基本节矩阵,指定为 K × 6 矩阵。第 K 个双二阶滤波器的系统函数具有有理 Z 变换。

矩阵第 K 行中的系数 sos 的顺序如下。

滤波器的频率响应是在单位圆上评估的系统函数

是否支持复数:

# 输出参数

n - 滤波器阶数
整数

滤波器阶数,指定为整数。

# 另请参阅

isallpass | isminphase | ismaxphase