# fircls1


约束最小二乘线性相位 FIR 低通和高通滤波器设计

函数库: TySignalProcessing

# 语法

b, = fircls1(n, wo, dp, ds)
b, = fircls1(n, wo, dp, ds, "high")
b, = fircls1(n, wo, dp, ds, wt)
b, = fircls1(n, wo, dp, ds, wt, "high")
b, = fircls1(n, wo, dp, ds, ..., "design_flag")

# 说明

b, = fircls1(n, wo, dp, ds) 生成一个低通 FIR 滤波器 b,其中 n+1 是滤波器长度,wo 是归一化截止频率,范围在 0 和 1 之间(其中 1 对应于奈奎斯特频率),dp 是从 1 开始的最大通带偏差(通带纹波),ds 是从 0 开始的最大阻带偏差(阻带纹波)。


b, = fircls1(n, wo, dp, ds, "high") 生成高通 FIR 滤波器 b。fircls1 始终为高通配置使用偶数滤波器阶数。这是因为对于奇数阶,奈奎斯特频率处的频率响应必然为 0。如果您指定一个奇数值的 n,fircls1 会将其增加 1。


b, = fircls1(n, wo, dp, ds, wt) 和 b, = fircls1(n, wo, dp, ds, wt "high") 指定频率 wt 高于(对于 wt > wo)或低于(对于 wt < wo)滤波器保证满足给定的频带标准。这将帮助您设计满足通带或阻带边缘要求的滤波器。有四种情况:

  • 低通:

    • 0 < wt < wo < 1:在 0 < ω < wt 的频率范围内,滤波器的幅度在 1 的 dp 范围内;

    • 0 < wo < wt < 1:在 wt < ω < 1 的频率范围内,滤波器的幅度在 0 的 ds 范围内。

  • 高通:

    • 0 < wt < wo < 1:滤波器的幅度在 0 < ω < wt 频率范围内的 ds 范围内;

    • 0 < wo < wt < 1:在 wt < ω < 1 的频率范围内,滤波器的幅度在 1 的 dp 范围内。


b, = fircls1(n, wo, dp, ds, ..., "design_flag") 使您能够监控滤波器设计,其中 "design_flag" 可以是:

  • "trace" - 用于设计中使用的设计表的文本显示;

  • "plots" - 用于绘制滤波器幅度、群延迟以及零点和极点的图。在每个迭代步骤中更新所有图。图上的 O 是新迭代的估计极值,X 是前一次迭代的估计极值,其中极值是滤波器波纹的峰值(最大值和最小值)。只有具有相应 O 和 X 的波纹才会相等;

  • "both" - 用于文本显示和绘图。

# 示例

fircls1 滤波器设计

设计一个 55 阶低通滤波器,归一化截止频率为 0.3。指定通带纹波为 0.02,阻带纹波为 0.008。显示频带图。

using TySignalProcessing
n = 55
wo = 0.3
dp = 0.02
ds = 0.008
b, a = fircls1(n, wo, dp, ds, "both")
Bound Violation = 0.08703853439195139  

Bound Violation = 0.014934345654014088  

Bound Violation = 0.005651358793189454  

Bound Violation = 0.00010562642045830462  

Bound Violation = 9.67624352077312e-5  

Bound Violation = 2.2653841469377767e-8  

Bound Violation = 3.779643265033883e-12  
freqz(b, a, 8192; plotfig=true)

# 输入参数

n - 滤波器阶数
正整数

滤波器阶数,FIR滤波器的差分方程中“延迟元素”的数量,也即系统函数 的最高次数。

数据类型: Int

wo - 归一化截止频率
实数标量

归一化截止频率,范围在 [0,1] 之间。

数据类型: Float

dp - 通带纹波
实数标量

通带纹波,从 1 开始的最大通带偏差。

数据类型: Float

ds - 阻带纹波
实数标量

阻带纹波,从 0 开始的最大阻带偏差。

数据类型: Float

wt - 频率
Float

频率,指定为标量。

数据类型: Float

# 输出参数

b - 滤波器系数
向量

滤波器的传递函数的分子系数,指定为向量。

数据类型: Float

# 算法

fircls1使用迭代最小二乘算法来获得等波纹响应。该算法是一种多重交换算法,在每次迭代中使用拉格朗日乘子和库恩-塔克条件。

# 参考文献

[1] Selesnick, I. W., M. Lang, and C. S. Burrus. “Constrained Least Square Design of FIR Filters without Specified Transition Bands.” Proceedings of the 1995 International Conference on Acoustics, Speech, and Signal Processing. Vol. 2, 1995, pp. 1260–1263.

[2] Selesnick, I. W., M. Lang, and C. S. Burrus. “Constrained Least Square Design of FIR Filters without Specified Transition Bands.” IEEE®Transactions on Signal Processing. Vol. 44, Number 8, 1996, pp. 1879–1892.

# 另请参阅

fircls | firls | firpm