这一篇在干嘛?

采样率变换的艺术:抽取/插值、多相分解、Hogenauer CIC 滤波器、小波变换——过采样系统的核心工具箱。 原书代码为 VHDL,本篇所有代码已改写为 Verilog。

  • 第5章
  • 多级信号处理
  • 5.1 抽取和插值
  • 5.2 多相分解
  • 例5.1 多相抽取滤波器
  • 例5.2 快速FIR滤波器
  • 算法5.3 快速FIR滤波器
  • 5.3 Hogenauer CIC 滤波器
  • 例5.4 三级CIC抽取器I
  • BEGIN
  • 例5.6 三级CIC抽取器III
  • 5.4 多级抽取器
  • 使用 Goodman-Carey 半带滤波器的多级抽取器设计
  • 定义 5.7:半带滤波器
  • 例 5.8 多级半带滤波器抽取器
  • 5.5 作为通频带抽取器的频率采样滤波器
  • 5.6 任意采样速率转换器的设计
  • 例5.9 的速率变换器I
  • 算法5.10 应用FFT的有理数速率变换
  • 例 5.11 R=0.75 的速率变换器 II
  • 例5.12 的速率变换器III
  • 例5.13 的速率变换器IV
  • 例 5.14 R=0.75 的速率变换器 V
  • 5.7 滤波器组
  • 例5.16 双通道Haar滤波器组I
  • 定理 5.17 完美的重构
  • 例 5.18 双通道 Haar 滤波器组 II
  • 定理5.19 与混叠无关的双通道滤波器组
  • 算法5.20 完美重构的双通道滤波器组
  • 例5.21 采用F3的完美重构滤波器组
  • 推论 5.22 半带滤波器的因式分解
    1. 多相双通道滤波器组
    1. 提升
  • 例 5.23 DB4 滤波器的提升实现
    1. QMF 实现
    1. 正交滤波器组
    1. 线性相位双通道滤波器组
  • 例5.25 的线性相位滤波器的网格
    1. 实现选项的比较
  • 5.8 小波
  • 例 5.26 线性调频信号的分析
  • 例5.27 长度为4的Hutlet滤波器
  • 5.9 练习
  • 5.25 利用练习 5.24 的结果。

自测一下

第5章 多级信号处理

在数字信号处理中,有一类非常常见的任务:根据感兴趣的信号来调整采样速率。由不同采样速率的系统组成的处理链,就称为多级系统。本章通过两个典型示例说明多级 DSP 系统中的抽取与插值,然后引入多相分解这一重要的实现技巧,研究高效的抽取器设计,最后讨论 Hogenauer CIC 滤波器——高速抽取/插值系统中几乎绕不开的构件。

5.1 抽取和插值

什么是抽取,为什么需要它

如果 A/D 转换之后,感兴趣的信号只占据一个很窄的频带(通常是低通或带通),那么用很高的采样速率来承载它就是一种浪费:后续每一步运算都要为那些”空”的频谱成分买单。合理的做法是先窄带滤波,再降低采样速率——滤波加向下采样的组合通常称为抽取器。滤波、向下采样以及对频谱的影响如图 5-1 所示。


图 5-1 信号 的抽取

采样速率能降到多低?下限就是奈奎斯特速率:采样速率必须高于信号带宽,否则混叠就会出现。图 5-2 对比了无混叠抽取与有混叠抽取的情形。要特别记住:混叠是不可修补的——一旦不同频带的成分叠在一起,无论后面做什么处理都无法把它们分开,所以必须在抽取之前用低通滤波器把它们滤干净。


图 5-2 无混叠抽取和有混叠抽取的情形

带通信号的完整频带条件

对带通信号还有一条额外规则:有用频带必须整体落在一个”完整频带”之内。设采样速率为 、向下采样因子为 ,则有用带宽必须满足

初学者容易误以为”采样速率高于奈奎斯特频率就万事大吉”,式(5-1)正是提醒:如果频带跨在 的边界上,向下采样后负频带的”复制”会混进正频带,即使采样速率足够高也会出现混叠,如图 5-3 所示。


图 5-3 完整频带的干扰(© VDI 出版社文献[4])

插值与 D/A 转换

反过来,提高采样速率也有用武之地,最典型的就是 D/A 转换。D/A 转换器通常采用一阶采样-保持,输出是阶梯状的函数,其高频镜像成分虽然可以用模拟 补偿滤波器修整,但在大多数情况下数字方案更划算:在数字域先用一个扩展器(每 R 个点插入 R-1 个零)和一个附加低通滤波器,把频谱抬到高采样速率上。注意,扩展器引入的零点会在基带频谱之外生成额外副本,这些副本必须在信号送入 D/A 之前被插值滤波器消除,见图 5-4。直观地说,插值倍数越多,输出信号越光滑(参见图 5-5(b))。


图 5-4 插值示例 ,R=3


(a) 低的过采样、高的递降


图 5-5 D/A 转换

5.1.1 Noble 恒等式

处理多级系统时,经常会希望把滤波器和向下采样器/扩展器换个位置,以换取更低的运算量。图 5-6 给出的重新排列规则就是所谓的 “Noble” 关系式。


图 5-6 等价多级系统(Noble 关系)

对抽取器,恒等式为

含义:如果允许”先向下采样、后滤波”,那么滤波器可以换成 ——它的系数间隔被拉开了 R 倍,等效于滤波器长度不变但只以 1/R 的速率做乘加。对插值器则有

含义:把滤波器放在扩展器之前,同样得到降低了 R 次的滤波器。直觉上, Noble 恒等式的价值在于:它把”高采样率下的大量运算”合法地搬到”低采样率”一侧,5.2 节的多相实现正是建立在这两个恒等式之上。

5.1.2 用有理数因子进行采样速率转换

如果输入、输出速率之比不是整数,就需要有理数变换因子 。标准做法是:先用插值器把采样速率提高 倍,再用抽取器降低 倍。插值和抽取都需要低通滤波器,两个滤波器级联在一起时,效果由通带更窄的那个决定,因此只需实现一个低通滤波器,其通带频率取

图 5-7 上面是插值器与抽取器的级联,下面是合并后的单滤波器结构。5.6 节将进一步讨论该系统的不同设计方案。


图 5-7 非整数抽取系统:上面是插值器和抽取器的级联,下面是最终组合的低通滤波器

5.2 多相分解

为什么要多相分解

在 IIR/FIR 滤波器与滤波器组中实现抽取或插值时,多相分解非常有用。以 FIR 抽取滤波器为例:在图 3-1 的 FIR 结构后接一个 R 倍向下采样器,输出只需要

这些时刻的值。也就是说,卷积和 没有必要每个采样点都算!举例来说, 只需要乘以

这些系数;除 外的其余输入样本也只需要乘以

分解方法

据此可以把输入信号分成 R 个独立的序列:

同样把滤波器 分成 R 个序列:

图 5-8 给出了多相分解实现的抽取器:R 个短滤波器并行工作在低速率上,再合并成输出。这样的抽取器运行速度可以比”滤波器 + 向下采样器”的通用结构快 R 倍。滤波器 称为多相滤波器——它们幅值传递函数相同,只是被不同的采样延迟分隔开,引入了相位偏移,“多相”由此得名。


图 5-8 抽取滤波器的多相实现

例 5.1 多相抽取滤波器

以长度为 4 的 Daubechies 滤波器 、抽取因子 R = 2 为例:

系数量化到 8 位精度后得到