English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

从理想响应到实际滤波器

Hamming 提出了一种使用傅里叶级数的 FIR 滤波器的四步设计方法。

步骤 1:指定理想响应

定义 H_ideal(f):您想要的确切频率响应。对于低通滤波器:当 f < f_c 时 H = 1,当 f > f_c 时 H = 0。这是频域中的阶跃函数。

步骤 2:计算傅里叶系数

将 H_ideal(f) 展开为频率变量的傅里叶级数。系数 c_k 是滤波器的理想冲激响应值:

c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df

对于截止频率为 f_c 的低通滤波器:当 k ≠ 0 时 c_k = sin(2πf_c·k) / (πk),c_0 = 2f_c。

这个冲激响应是无限的 — sinc 函数在时间上永远延伸。实际滤波器需要有限数量的系数。

步骤 3:截断到 2N+1 项

只保留 |k| ≤ N 的系数 c_k。这个 2N+1 项的矩形窗是最简单的截断。它产生 Gibbs 现象:在截止处附近约有 9% 的超调。

步骤 4:应用窗函数

将截断的系数乘以窗函数 w_k 以减少 Gibbs 超调:

c̃_k = c_k · w_k

加窗系数 c̃_k 定义实际滤波器。

Gibbs 现象 & 窗函数

计算傅里叶系数

傅里叶系数公式 c_k = sin(2πf_c·k) / (πk) 对于截止频率为 f_c 的低通滤波器给出冲激响应。

对于下截止频率为 f_l、上截止频率为 f_u 的带通滤波器,理想响应的傅里叶系数为:c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk)。

对于截止频率 f_c = 1/4 的低通滤波器,计算 k = 0, 1, 2, −1 的傅里叶系数 c_k。使用 c_0 = 2f_c 和 c_k = sin(2πf_c·k)/(πk),k ≠ 0。显示每个的计算。然后解释为什么系数序列是对称的:c_k = c_{−k}。

窗函数如何减少 Gibbs 超调

窗函数 w_k 将截断系数序列从中心值逐步缩减至边缘的零。缩减去除了矩形截断引入的尖锐边缘。

为什么缩减有效

Gibbs 超调源于矩形窗傅里叶变换(sinc 函数)具有大的旁瓣。这些旁瓣在不连续性附近相加以产生约 9% 的超调。

光滑窗具有傅里叶变换,其旁瓣较小。将系数乘以窗函数将理想频率响应与窗傅里叶变换进行卷积。旁瓣较小 → 波纹较少。

常见窗函数

矩形 (无加窗):旁瓣约 −13 dB,Gibbs 约 9%。

Hann (von Hann):w_k = 0.5 + 0.5·cos(πk/N)。旁瓣约 −31 dB。

Hamming:w_k = 0.54 + 0.46·cos(πk/N)。旁瓣约 −41 dB,第一旁瓣约 −43 dB。Gibbs < 0.2%。

Kaiser:w_k = I₀(α·√(1−(k/N)²)) / I₀(α)。可调:α 控制旁瓣水平,允许设计在旁瓣高度和转移带宽之间进行权衡。

窗函数权衡

每个窗函数都强加一个权衡:抑制旁瓣总是加宽主瓣。

更宽的主瓣意味着更宽的转移带 — 通带与阻带之间的频率范围。

Hamming 用 Kaiser 设计参数将其形式化:

- δ:允许的波纹(垂直容限,响应与 0 或 1 偏差多少)

- ΔF:转移宽度(水平容限 — 从通过到阻止的转移有多窄)

Kaiser 的方法仅从 δ 和 ΔF 找到 N(系数数量)和 α(窗形状参数)。无需猜测窗类型。

滤波器规范要求:通带波纹 ≤ 0.01(δ = 0.01)& 转移带宽 ΔF = 0.05(采样率的正规化为 10%)。第二个滤波器要求:通带波纹 ≤ 0.001(δ = 0.001)& 相同 ΔF = 0.05。哪个滤波器需要更多系数 N?在傅里叶级数设计中解释波纹容限 δ 和滤波器阶数 N 之间的关系。

从规范到系数

Kaiser 的方法采用两个规范 — δ(波纹容限)& ΔF(转移宽度)— & 生成 N 和窗系数而无需试错。

设计序列

1. 计算 A = −20·log₁₀(δ)(以 dB 为单位的衰减)

2. 计算形状参数 α:

- 如果 A > 50:α = 0.1102·(A − 8.7)

- 如果 21 ≤ A ≤ 50:α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)

- 如果 A < 21:α = 0(矩形窗)

3. 计算 N = (A − 8) / (2.285 · 2πΔF)

4. 计算 Kaiser 窗权重:w_k = I₀(α·√(1−(k/N)²)) / I₀(α)

5. 将理想傅里叶系数乘以窗权重

6. 评估结果传递函数并对照 δ 检查波纹。如果波纹超过 δ(边缘干扰),使用较小的容限重复。

Hamming 指出:Kaiser 通过尝试 0.5(太大)& 发现 0.4 很好地拟合来得到指数 0.4。计算机充当理论研究的实验工具。

应用 Kaiser 方法

Bessel 函数 I₀(x) 出现在 Kaiser 窗公式中。它计算为快速收敛级数:

I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²

对于较小的 x,级数快速收敛,因为分母中有 m!²。

低通滤波器需要 δ = 0.01(1% 波纹)& ΔF = 0.1(采样率的 10% 作为转移宽度)。使用 Kaiser 的公式:A = −20·log₁₀(0.01) = 40 dB。由于 21 ≤ 40 ≤ 50,使用 α = 0.5842·(A−21)^{0.4} + 0.07886·(A−21)。计算 α。然后使用 N = (A−8)/(2.285·2πΔF) 计算所需的滤波器系数数量。将 N 舍入到最近的整数。