实时FIR滤波器的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
赣南师院
物理与电子信息学院课程设计报告
姓名:陈如意邹丽蓉贺玲玲
班级:09电信本
学号:090802003
090802071
090802053
时间:2012年4月25日
设计题目基于DSP的实时FIR滤波器的实现
设计要求1.熟悉AD50/McBSP的初始化设置及其使用方法,以及实时R滤波器的实现
2.了解DSP/BIOS程序设计。
3.熟悉DSPLIB中FIR函数的调用及参数设置。
4.掌握FIR滤波器的原理与设计方法;
5.学会在CCS平台编写C程序实现FIR滤波。
设计过程1.设计原理
1.1 FIR滤波器设计原理
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此,FIR实际上是一种累加运算。
在数字滤波器中,FIR滤波器的最主要的特点是没有反馈回路,故不存在不稳定的为题,同时,可以在幅度特性随意设置的同时,保证精确的线性相位。稳定和线性相位特性是FIR滤波器的突出优点。另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR滤波器而言,阶次较高,其延迟也要比同样性能的IIR滤波器大得多。
FIR数字滤波器系统的传递函数为:
n
N
n
z
n
b
z
X
z
Y
z
H-
-
=
∑
=
=
1
)
(
)
(
)
(
)
(
通过反z变换,数字滤波器的差分方程为:
)
(
)
(
1
k
n
x
h
n
y
N
k
k
-
=∑-
=
由上式可以得出如下图所示的直接型结构,这种结构又可以成为卷积型结构。将转置理论应用于图1.1可以得到转置直接型结构。
将式中的系统函数H(z)分解成若干一阶和二阶多项式的连乘积:
2
1
1
2
1
1
)
(
)
(
)
(
M
k
k
M
k
k
z
H
z
H
z
H
=
=
=
则由此式可以构成如图1.2所示的级联型结构。其中1
)1(
1
)1(
1
)
(-
+
=z
a
a
z
H
k
k
k
为一
阶节,)2(
2
)2(
1
)2(
2
)
(
k
k
k
k
a
a
a
z
H+
+
=为二阶节。每个一阶节、二阶节可用图1.2级联型结构实现。当M1=M2时,即得到图1.3所示的具体结构。这种结构的每一节都便于控制零点,在需要控制传输零点时可以采用。但是它所需要的系数a比直接型的h(n)多。在对滤波器计算时间没有特殊要求的时候可以采用这种形式。若需要严格考虑滤波器的计算时间则需要同时考虑它们的优点及缺点来设计。这在算法设计的时候要使用软件编辑环境来计算运行的时间问题。通常FIR的计算时间都较长。很多时候我们需要牺牲时间来获得想要得到的滤波
区功能。
图1.1 FIR 滤波器直接型结构图
图1.2 级联型结构图
图1.3 级联型具体结构
FIR 滤波器实质上就是一个分节的延迟线,把每一节的输出用滤波器系数进行加权累加,便得到滤波器的输出结果,它总是稳定并且可实现的。在一些工程实际应用(如:图像处理、数据调制解调)中,往往对相位要求较高。FIR 滤波器可以实现严格的线性相位,从而得到了广泛应用。它的差分方程数学表达式为:)()(1
0k n x b n y N k k -=∑-=
式中,N 是FIR 滤波器的抽头系数,x (n )表示在n 时刻输入的信号样值,h (n )表示滤波器的第n 级抽头系数。横截型FIR 滤波器的结构如图1.4所示:
图1.4 FIR 滤波器的横截型结构 2设计方案
2.1 方案一: 窗函数法
窗函数法也称为傅里叶级数法。理想的数字滤波器频率特性)(jw e H 是无法实现的,FIR 的设计就是要寻找一个可以得到的频率特性
∑-=-=1
0)()(N n jwn jw
e n h e H 来逼近)(jw e H ,这相当于用一个可实现的单位脉冲响应
h (n )去逼近一个理想单位脉冲响应)(n h d 。)(n h d 可由理想频率特性)(jw e H 通
过傅氏反变换得到,ωπ
π
π
d e H n h jw
d d )(21
)(⎰
-=
。一般来说,这样得到的理想单位脉冲响应序列)(n h d 是个无限长序列,因而是非因果的。设有一个截止频率为c ω的理想线性相位低通,延时为τ,其频率特性是:
πωωωωω≤≤≤≤⎩⎨
⎧=c c j jw
d c
e e H 00
)( 得到:[])
()(sin )(τπτω--=
n n n h c d ∞<<∞-n 这是一个以n=τ为中心偶对称的无限长非因果序列,要想用一个有限长的因果序列去逼近它,最简单的方法是截取从0到N-1的一段来表示它,及
)(n h =)(n h d )10(-≤≤N n ;其他N :0)(=n h 。
同时,为了保证线性相位,还要满足偶对称)1(()(n N h n h --=。这就像透过一个窗口观看到的一段)(n h d ,因此)(n h 就表示成)(n h d 和一个窗口函数的乘积,这样对)(n h 的求解就变为n d W n h n h *)()(=,这里的n W 就被称为窗函数,既然一个频域上的标准的矩形窗口对应于时域是一个无限长的序列,那么在时域上截取一段必然会造成频域的矩形窗口的失真。相应的,截取出的信号也相应失真,从而需要改变原来窗口的形状来修正经过时域截取后的窗口失真。 2.2 方案二: 频率抽样法
X(n)
y(n)
h(0)
h(1)
h(2)
h(N-2)
h(N-1)
z -1
z -1
z -1