基于MATLAB的数字插值滤波器设计

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

EDA 课程设计报告

滤波器设计参数:根据要求,要设计一个输入8位,输出8位的17阶线性相位FIR 滤波器,所以采用图2(a)的方式,其中输入信号范围为:[±99,0,0,0, ±70,0,0,0, ±99,0,0,0, ±70,…],此滤波器 Fs 为44kHz,Fc 为10.4kHz 。

(一)FIR 数字滤波器理论简述

有限冲激响应(FIR )数字滤波器和无限冲激响应(IIR )数字滤波器广泛应用于数字信号处理系统中。IIR 数字滤波器方便简单,但它相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保障。FIR 滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。

有限冲击响应(FIR )滤波器的特点:

1 既具有严格的线性相位,又具有任意的幅度;

2 FIR 滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;

3只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现;

4 FIR 滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。

5 FIR 也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

6 FIR 滤波器比较大的缺点就是阶次相对于IIR 滤波器来说要大很多。 FIR 数字滤波器是一个线性时不变系统(LTI ),N 阶因果有限冲激响应滤波器可以用传输函数H (z )来描述,

()()N

k k H z h k z -==∑

(0.1)

在时域中,上述有限冲激响应滤波器的输入输出关系如下:

[][][][][]N

k y n x n h n x k h n k ==*=-∑

(0.2)

其中,x [n ]和y [n ]分别是输入和输出序列。

N 阶有限冲激响应滤波器要用N +1个系数描述,通常要用N+1个乘法器和N 个两输入加法器来实现。乘法器的系数正好是传递函数的系数,因此这种结构称为直接型结构,可通过式(1.2)来实现,如图1。

图1

当冲击响应满足下列条件时, FIR 滤波器具有对称结构,为线性相位滤波器:

。 (1.3) 这种对称性,可使得乘法器数量减半:对n 价滤波器,当n 为偶数时,乘法器的个数为n/2个;当n 为奇数时,乘法器的个数为(n+1)/2个。在电路实现中,乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。

N 阶线性相位的因果FIR 系统的单位冲激响应滤波器可用对称冲激响应

[][]h n h N n =-[][]h n h N n =-

(0.3)

或者反对称冲激响应

[][]h n h N n =--[][]h n h N n =--

(0.4)

来描述。

具有对称冲激响应的FIR 传输函数的冲激响应可写成如下形式: 当N 为偶数时

12

()

20

()[][]()()2

N N

N

n

n

N n n n N H z h n z

h n z z

h z ------====++∑∑

(0.5)

当N 为奇数时

1

12()0

()[][]()N N

n n

N n n n H z h n z h n z

z +-----====

+∑∑

(0.6)

则FIR 线性相位系统的结构可转化成如图2(a )和图2(b )所示。

)

1()(n N h n h --=

图2(a)N为奇数

图2(b)N为偶数

(二)设计方案

随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC 器件得到了迅速普及和发展,器件集成度和速度都在高速增长。FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性,可以减少系统设计和维护的风险,降低产品成本,缩短设计周期。

分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。简单地说,分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先进相加形成相应部分积,然后在对各部门积进行累加形成最终结果,而传统算法是等到所有乘积产生之后再进行相加来完成乘加运算的。与传统算法相比,分布式算法可极大地减少硬件电路规模,很容易实现流水线处理,提高电路的执行速度。

FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高并行度结构特点的数字信号处理任务,如FIR、FFT等。利用FPGA实现FIR滤波器的设计过程,并且对设计中的关键技术——分布式算法进行详细描述。

一、FIR滤波器的结构

FIR滤波器的结构主要是非递归结构,没有输出到输入的反馈。并且FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。而线性相位体现在时域中仅仅是h(n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的。此外,他不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。

二、FIR数字滤波器的设计方案:

通常采用窗函数设计FIR滤波器方法简单,但是这些滤波器的设计还不是最优的。首先通带和阻带的波动基本上相等,另外对于大部分窗函数来说,通带内或阻带内的波动不是均匀的,通常离开过渡带时会减小。若允许波动在整个通带内均匀分布,就会产生较小的峰值波动。

因此考虑通过某种方法,对滤波器的结构进行优化。

对于线性相位因果FIR滤波器,它的系列具有中心对称特性,即h(i)=±h(N-1-i)。令s(i)=x(i) ±x(N-1-i),对于偶对称,代入式(1)可得:

根据要求,要设计一个输入8位,输出8位的17阶线性相位FIR滤波器,所以采用图2(a)的方式,其中输入信号范围为:[±99,0,0,0,±70,0,0,0,±99,0,0,0,±70,…],此滤波器Fs为44kHz,Fc为10.4kHz。MATLAB 设计计算滤波器系数过程如下:

FIR滤波器参数设置,因为是17阶,所以Specify order处填16,h(0)=0.

FIR滤波器的幅频响应

相关文档
最新文档