# maxflat
广义数字巴特沃斯滤波器设计
函数库: TySignalProcessing
# 语法
b, a, = maxflat(n, m, Wn)
b, = maxflat(n, "sym", Wn)
b, a, b1, b2, = maxflat(n, m, Wn)
b, a, b1, b2, sos, g = maxflat(n, m, Wn)
b, a, b1, b2, sos, g = maxflat(n, m, Wn, design_flag)
# 说明
b, a, = maxflat(n, m, Wn) 是一种低通巴特沃斯滤波器,分子和分母系数 b 和 a 分别为 n 阶和 m 阶。Wn 是滤波器幅值响应等于
b, = maxflat(n, "sym", Wn) 是一个对称的 FIR 巴特沃斯滤波器滤波器。n 必须是偶数,并且 Wn 被限制为子区间 [0, 1]。如果在此子间隔之外指定了 Wn,则函数将引发错误。
b, a, b1, b2, = maxflat(n, m, Wn) 返回两个多项式 b1 和 b2,其乘积等于分子多项式 b(即 b = conv(b1,b2))。b1 包含 z = -1 处的所有零点,b2 包含所有其他零点。
b, a, b1, b2, sos, g = maxflat(n, m, Wn) 返回滤波器的二阶基本节表示,包括滤波器矩阵 sos 和增益 g。
b, a, b1, b2, sos, g = maxflat(n, m, Wn, design_flag) 允许您监控滤波器设计,其中 design_flag 可为:
"trace" 用于文本显示设计参数;
"plots" 用于绘制滤波器的幅值、群延迟以及零点和极点图;
"both" 用于同时显示文本和图形。
# 示例
广义巴特沃斯滤波器
设计一个归一化截止频率为 0.2π rad/s 的广义巴特沃斯滤波器。指定分子阶数为 10,分母阶数为 2。可视化滤波器的频率响应。
using TySignalProcessing
n = 10
m = 2
Wn = 0.1
b, a, = maxflat(n, m, Wn)
freqz(b, a; plotfig = true)

# 输入参数
n - 分子阶数标量
指定滤波器分子阶数。
数据类型: Int64
m - 分母阶数整数
指定滤波器分母阶数。
数据类型: Float
Wn - 截至频率整数
归一化截至频率,在 [0, 1] 之间。
数据类型: Float
design_flag - 监控输出字符串
监控输出滤波器。
"trace" 用于文本显示设计参数;
"plots" 用于绘制滤波器的幅值、群延迟以及零点和极点图;
"both" 用于同时显示文本和图形。
数据类型: String
# 输出参数
b - 滤波器分子向量
平均频带功率,以非负标量形式返回。
数据类型: Float
a - 滤波器分母向量
平均频带功率,以非负标量形式返回。
数据类型: Float
b1 - 滤波器分子向量
滤波器分子多项式之一,以向量形式返回,其乘积等于分子多项式 b(即 b = conv(b1,b2))。b1 包含 z = -1 处的所有零点,b2 包含所有其他零点。
数据类型: Float
b2 - 滤波器分子向量
滤波器分子多项式之一,以向量形式返回,其乘积等于分子多项式 b(即 b = conv(b1,b2))。b1 包含 z = -1 处的所有零点,b2 包含所有其他零点。
数据类型: Float
sos - 滤波器二阶矩阵矩阵
滤波器二阶基本节表示下的滤波器矩阵。
数据类型: Float
g - 滤波器增益标量
滤波器的增益,作为实值标量返回。
数据类型: Float
# 详细信息
该方法包括使用公式、多项式根查找和多项式根变换。
# 参考
[1] Selesnick, Ivan W., and C. Sidney Burrus. “Generalized Digital Butterworth Filter Design.” IEEE® Transactions on Signal Processing. Vol. 46, Number 6, 1998, pp. 1688–1694.