2026a

# 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 是滤波器幅值响应等于 时的归一化截止频率(约 –3 dB)。Wn 必须介于 0 和 1 之间,其中 1 对应于奈奎斯特频率。

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.