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 - 滤波器阶数整数
滤波器阶数,指定为整数。