FIR滤波器的原理及设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选题2 实验讲义

实验名称:基于分布式算法的FIR 滤波器设计

1.数字滤波器基础知识

数字滤波是信号与信号处理领域的一个重要分支,在语音图像处理、模式识别、谱分析、无线通信等领域都有着非常广泛的应用。通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而达到修正时域或频域中信号属性的目的。数字滤波器就是用于完成这种信号滤波功能,用有限精度算法来实现的一种离散时间线性时不变(LTI )系统。相比于模拟滤波器,数字滤波器具有以下优点:(1)数字滤波器的频域特性容易控制,性能指标优良;(2)数字滤波器可以工作在极低的频率,可以方便地实现模拟滤波器难以实现的线性相位系统;(3)数字滤波器工作稳定,一般不会受到外部环境的影响;(4)数字滤波器的灵活性和可重用性高,只需要简单编程就可以修改滤波器的特性,设计周期短。数字滤波器的实现可以采用专用DSP 芯片,通过编写程序,利用软、硬件结合完成滤波器设计,也可以采用市面上通用的数字滤波器集成电路来实现,但这两种方法无法适应高速应用场合。随着集成电路技术的高速发展,FPGA 应用越来越普及,FPGA 器件具有芯片密度大、执行效率高,速度快,集成度高等优点,用FPGA 芯片作为滤波器的设计载体,可以实现高速信号滤波功能。

1.1 FIR 数字滤波器特点

数字滤波器通常分为IIR (无限冲激响应)和FIR(有限冲激响应)两种。FIR 滤波器具有以下特点:(1)可以做成严格的线性相位,同时又可以具有任意的幅度特性(2)单位冲激响应是有限长的,所以一定是稳定的,因此在实际中得到广泛的应用。

1.2 FIR 滤波器结构

设FIR 滤波器的单位冲激响应为)(n h ,10-≤≤N n ,

系统函数 ∑-=-=

1

)()(N n n

z

n h Z H

差分方程形式为:∑-=-=1

)()()(N k k n x k h n y (1)

基本结构(直接型):

图(1)FIR 滤波器的基本结构

1.3 结构简化

当FIR 滤波器具有严格线性相位时,)(n h 满足)1()(n N h n h --=或

)1()(n N h n h ---=设N 为偶数,令 )]1([)()0(--±=N n x n x s )]2([)1()1(--±-=N n x n x s

)2

()]12([)12(

N n x N n x N s -±--=- 则(1)式可以简化为:

∑-=-=120

)()()(N

k k n s k h n y (2)

与(1)相比,所需乘法器数量降为原来的一半。

图(2) 简化乘法器数量的线性相位滤波器

1.4 设计规模的改进

当滤波器的长度N 增加时,可将求和分配到几个独立的M 阶并行DA 的LUT 中。以(1)式为例,设M L N ⋅=,

∑∑∑-=-=-=+⋅-+⋅=-=101

10

)]([)()()()(L l M m N k m l L n x m l L h k n x k h n y

这样,长度为N 的滤波器实现可以分解为L 个长度为M 的滤波器,可运用流水线加法器累加结果。

2. 分布式算法

在很多DSP 应用场合中,滤波器系数一般为常数,在这种情况下,可以利用分布式(Distributed Algorithm ,DA )算法原理将求乘积和运算转变为移位和加法运算来实现。在滤波器规模比较小的情况下,采用DA 算法可以减少电路规模,更容易实现流水处理,从而有更高的执行效率。以(2)式为例,DA 算法的基本思想为:

在(2)式中,设)(k h 为常数,将)(k n s -表示为B+1位二进制补码形式,其中,最高位为符号位,用)(k n s B -表示,下标B 表示第B 位,数值位共有B 位,用)(k n s b -表示,其中

10-≤≤B b 。

即补B k n s k n s k n s k n s )]()()([)(01---=- 将式中各二进制位按权展开,则有下式成立,

∑-=⋅-+--=-1

2)()(2)(B b b b B B

k n s k n s k n s

代入(2)式,并改变式中求和的次序,可得

∑-=-=12

)()()(N k k n s k h n y

∑∑-=-=⋅-+--=12

1

]2)()(2)[(N k B b b b B B

k n s k n s k h

∑∑∑-=-=-=⋅-+--=1

120

120

2)()(])()([2B b b b N k N k B B

k n s k h k n s k h

∑∑∑-=-=-=-+--=1

120

120

)]

()([2])()([2B b b N k b N k B B

k n s k h k n s k h

∑-=-⋅+-=1

)](),([2)](),([2B b b b B B

k n s k h f k n s k h f

DA 算法的基本思想就是用一个LUT (查找表)来实现运算)](),([k n s k h f B -及

)](),([k n s k h f b -,则滤波结果可以相应二次幂加权并累加来实现,从而达到提高执行效

率的目的。

例:无符号DA 卷积

用分布式算法计算∑=>==<2

)()(,n n x n c x c y ,假设3位系数值分别为c(0)=2,c(1)=3和

c(2)=1,则可得LUT 如下: 0 0 0 1*0+3*0+2*0=0 0 0 1 1*0+3*0+2*1=2 0 1 0 1*0+3*1+2*0=3 0 1 1 1*0+3*1+2*1=5 1 0 0 1*1+3*0+2*0=1 1 0 1 1*1+3*0+2*1=3 1 1 0 1*1+3*1+2*0=4 1 1 1 1*1+3*1+2*1=6

设x(0)=1, x(1)=3,x(2)=7

步骤 Xt(2) Xt(1) Xt(0) Acc(t) 0 1 1 1 6 1 1 1 0 14 2

1

18

进行数值校验:

y==c(0)x(0)+c(1)x (1)+C(2)x(2)=18 √

图(3) 移位加法器DA 结构

3. FIR 滤波器的MATLAB 设计 3.1 设计函数

在MATLAB 信号处理工具箱中,提供了基于窗函数的FIR 数字滤波器设计函数。fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下: hn=fir1(N, wc, ′ftype ′, window)

fir1实现线性相位FIR 滤波器的标准窗函数法设计。“标准”是指在设计低通、 高通、

相关文档
最新文档