文档介绍:D S P 实 验 报 告
实验一 FIR 滤波器的设计
利用所学 DSP 知识,在平台上,对 TMS320VC5416DSP 设计,编程实现 FIR 滤波器。
从而学会使用 CCS 软件和 TMS320VC5416 实验板。
设计一个 10 阶的 FIR 滤波器,要求 ??=,定点实现。并对 ??=8kHZ 的多正弦波合成
?? ??
文件进行滤波测试,显示出输入和输出信号。
一个截止频率为 ?? 的理想数字低通滤波器,其传递函数的表达式为:
c
这个滤波器是物理不可实现的。为了产生有限长度的冲激响应函数,我们取样响应
为 h(n) ,长度为 N。 h( n) 表示截取 hd (n) 后的冲激响应,即 h(n) (n) hd (n) ,其中 ( n) 即为
窗函数,窗长为 N。一般的 FIR 滤波器差分方程如下:
进行 Z 变换得到 FIR 的系统函数为:
N 阶滤波器通常采用 N 个延迟单元、 N 个加法器与 N+1 个乘法器组成。因此可以得
到 FIR 滤波器的结构图如图 1 所示。
图 1 FIR 滤波器直接结构图
设计思路
对于 FIR 滤波器的设计,其系数 h(n) 是关键。由于 matlab 自带滤波器设计工具箱和
滤波器设计函数,故借用 matlab 工具,设计满足条件的滤波器并导出系数以备编写滤波器程序时使用。实验需要用到的输入数据是多正弦波合成文件,对于输入信号的设计,
这里也借助 matlab 编程生成 dat 文件。然后用 C 语言编写 FIR 滤波器的主程序,输入文件在程序运行后导入。
实验内容
( 1)滤波器系数的设计
由于实验只给出滤波器条件为 N=10,??=,并没有给出 ??和??,所以这里调用 matlab
?? ?? ??
工具箱函数 fir1 实现窗函数法设计滤波器。
fir1
的调用格式为
???
= fir1
(
N
,
),返回值为
6dB 截止频率为 ??的 N 阶(单位
??
??
??
′
脉冲响应 h( n)长度 ?? =N+1)的 FIR 低通滤波器的系数向量( ??为标量),默认选用哈
??
明窗。其中 ??为对 π归一化的数字频率,其计算公式为
??
2????,这里计算得出 ??
。因
??
??=
????
??=
为得到的系数向量要用于 DSP 的 FIR 程序中,需要对其进行进行转换并取整。最后系数
结果如下图 2 所示。
图 2 10 阶 FIR 滤波器系数
对于 10 阶滤波器得到 11 个系数,将该系数保存,以备后面编写程序时使用。
该滤波的幅频图和相频图分别对应图 3和图 4。
图 3 10 阶 FIR 滤波器幅频图图 4 10 阶 FIR 滤波器相频图
( 2)输入信号的生成
根据老师给的两个 .wav 语音文件,这里用 matlab 的 wav