FIR滤波器的架构

数学基础

有限脉冲响应滤波器,其突出特点为单位取样响应 是一个 N 点长的有限序列,滤波器的输出 表示为输入序列 的线性卷积

系统函数为

由此可见 FIR 只在原点上存在极点,具有全局稳定性
不同阶数的 FIR 滤波器特性

单位取样响应特征 滤波器种类
系数偶对称,阶数为偶数 适合各种滤波器
系数偶对称,阶数为奇数 不适合高通和带阻滤波器
系数奇对称,阶数为偶数 只适合带通滤波器
系数奇对称,阶数为奇数 适合高通和带通滤波器

系数量化

将一组数据先进行归一化处理,再乘上一个整数因子,最后进行四舍五入截尾处理即可

1
h = round(h/max(abs(h))*(2^N-1)) //N为量化位数

Fully Parallel Systolic Architecture(全并行脉动结构)

全并行脉动滤波器对对称系数、反对称系数和零值系数进行了优化。滤波器的时延受到滤波器系数的对称性影响。
当对称系数绝对相等时,它们共享同一个 DSP block。这种配对共享允许在实现的过程中使用 Xilinx 和 Altera 的 dsp block 中的 pre-adder。
对称的滤波器如果不适用对称系数优化架构的话,结构如下图的上半部分,优化后为下半部分:
fir_arch_systolic_sym.png|500

Fully Parallel Transposed Architecture(全并行转置结构)

Fully Parallel Transposed Architecture 通过为任意的绝对相等的系数共享乘法器,同时移除零值系数所需的乘法器。此结构的滤波器时延为固定的 6 个 clk。
下图的上半部分是没有优化的部分对称滤波器,下半部分为优化后的结构:
fir_arch_transposed_sym.png|500

Partly Serial Systolic Architecture (1 < N < L)

其中 N 为延时长度,L 为滤波器阶数。
部分串行滤波器需要 M=ceil(L/N) 个脉动单元,结构如下:
fir_arch_systolic_partly_serial.png|500
滤波器的时延为 M+ceil(L/M)+5
如果一个乘法器对应的查找表里面的系数为 0 或者 2 的幂次,则实现过程不包含乘法器,通过移位来实现幂次的变化。

Fully Serial Systolic Architecture (N ≥ L)

如果延时的长度大于滤波器的阶数,此时滤波器为全串行结构。滤波器延时为
fir_arch_systolic_fully_serial.png|500


FIR滤波器的架构
https://www.moerjielovecookie.icu/2024/12/29/FIR滤波器的架构/
作者
Sawen Moerjie
发布于
2024年12月29日
许可协议