AnyMath 文档

yulewalk

设计递归数字滤波器。

库::`工程师`

语法

函数调用

争论

输入参数

# n — 过滤顺序

+ 正整数标量

Details

滤波器顺序,指定为正整数标量。

数据类型

漂浮物32, 漂浮64</无翻译>

# f — 频率值

+ 向量资料

Details

频率值设置为一个向量,其元素范围从 0 以前 1,在哪里 1 对应于奈奎斯特频率,或采样频率的一半。 第一个元素 f 必须等于 0,而最后一个 — 1. 所有中间元素应按升序排列。 向量资料 f 其可具有对应于频率响应的步骤的重复频率值。

数据类型

漂浮物32, 漂浮64</无翻译>

# m — 振幅响应

+ 向量资料

Details

幅度响应,定义为在指定的频率值下包含所需响应值的矢量 [参数:f]. 矢量长度 m 必须等于向量的长度 [参数:f].

数据类型

漂浮物32, 漂浮64</无翻译>

输出参数

# *b,a*是 滤波器的系数

+ 字符串向量

Details

作为行向量返回的滤波器系数。 度的降序对输出滤波器的系数进行排序 :

例子:

使用Yule-Walker方法设计低通滤波器

Details

让我们设计一个低通滤波器 8-具有归一化截止频率的阶数 0.6. 让我们构造它的频率响应,并在其上叠加相应理想滤波器的特性。

import EngeeDSP.Functions: yulewalk, freqz

f1= [0, 0.6, 0.6, 1]
m1= [1, 1, 0, 0]

b1,a1=yulewalk(8,f1,m1)
h1,w1=freqz(b1,a1,128)

p=plot(w1/π,mag2db.(abs。(h1)),
         xlabel="ω/π",
         ylabel="幅度(dB)",
         网格=真,
         传说=错误,
         线色=:蓝色)

vline!(f1[2:3],linestyle=:dash,linecolor=:black)

yulewalk 1

通过指定更宽的过渡带来增加抑制带中的衰减。

f2 = [0, 0.55, 0.6, 0.65, 1]
m2 = [1, 1, 0.5, 0, 0]

b2,a2 = yulewalk(8,f2,m2);
h2,w2 = freqz(b2,a2,128)

plot!(w2/π, mag2db.(abs.(h2)),
      linecolor = :red)

yulewalk 2

建议

在设置频率响应时,避免从带宽到势垒带的过度突然转换。 您可能需要试验过渡区域的斜率以获得最佳滤波器设计。

算法

功能 yulewalk 使用最小二乘法构造递归数字IIR滤波器以近似给定频率响应。 该近似在时域中执行。

要计算分母的系数,函数 *yulewalk 它使用修改的Yule-Walker方程,其相关系数是使用给定频率响应的傅里叶逆变换计算的。

要计算分子,函数 *yulewalk 执行以下步骤:

+ . 计算对应于工频特性的加性分解的分子多项式。

+ . 计算对应于分子和分母的多项式的总频率响应。

+ . 使用频谱因子分解方法获得滤波器的脉冲响应。

+ . 通过该脉冲响应的最小二乘近似获得分子多项式。

文学作品

  1. Friedlander,B.和Boaz Porat。 _改进的ARMA谱估计的Yule-Walker方法。_IEEE®Transactions on Aerospace Electronic Systems. 卷。 AES-20,编号2,1984,第158-173页。