1、 现代信号处理课程设计 课程设计 报告 设计题目 基于 DSP 的有限冲击响应滤波器 (FIR)系统设计 目 录 一、引言 . - 3 - 二、设计目的 . - 3 - 三、设计要求 . - 4 - 四、总体设计 . - 4 - 4.1 利用 Matlab软件的 FDATool 工具设计 FIR 滤波器 . - 4 - 4.1.1 有限冲击响应数字滤波器的基础理论 . - 4 - 4.1.2 利用 Matlab软件的 FDATool 设计 FIR 滤波器 . - 5 - 4.1.3 提取滤波器参数 . - 8 - 4.2 CCS 环境下 FIR 滤波器的设计及软件仿真 . - 9 - 4.2.
2、1 程序流程图 . - 9 - 4.2.2 在 CCS 集成开发环境下新建 FIR 滤波器工程 . - 9 - 4.2.3 观察滤波前后的信号的时域波形及 FFT Magnitude 波形. - 10 - 4.2.4 程序清单 . - 12 - 4.3 对实时采样信号进行滤波的 FIR 滤波器的实现 . - 15 - 4.3.1 程序清单 . - 15 - 4.3.2 测试效果 . - 18 - 4.3.3 SCI 串行数据传输 . - 18 - 五、总结 . - 22 - 六、参考文献 . - 23 - 一、 引言 在当今信息时代数字信号处理已成为一门极其重要的学科。数字信号处理在通信、 语
3、音、图像等众多相关领域得到了广泛的应用。数字信号处理( DSP)包括两重含义:数字信号处理技术( Digital Signal Processing)和数字信号处理器( Digital Signal Processor)。数字信号处理( DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。 在数字信号处理的应用中,数字滤波器很重要而且得到了广泛的应用。按照数字滤波器的特性,它可以被分为 线性与非线性、因果与非因果、无限长冲击响应( IIR)与有限长冲击响应( FIR
4、)等等。其中,线性时不变的数字滤波器是最基本的类型; IIR 滤波器的特征是具有无限持续时间冲激响应,而 FIR 滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现也可以采用非递归的方式实现。 目前 FIR 滤波器的实现方法大致可分为三种:利用单片通用数字滤波器集成电路、 DSP器件或者可编程逻辑器件实现。其中以使用通用 DSP 芯片实现方式较为简单,是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器,借助于通用数字计 算机按滤波器的设计算法编出程序进行数字滤波计算。由于它具有丰富的硬件资源、改进的哈佛结构、高速数据处理能力和强大的指令系统而在通信、航空、航天、雷
5、达、工业控制、网络及家用电器等各个领域得到广泛应用 。 二、设计目的 ( 1)掌握用窗函数法设计 FIR 滤波器的原理及方法,熟悉线性纤维 FIR 滤波器的 幅频特性和相频特性,熟悉不同的窗函数对滤波器性能的影响。 ( 2) 掌握使用 matlab 编程的基本方法,学会利用 fdatool 工具来快速设计满足需要的滤波器。 ( 3) 掌握 TMS320F2812 DSP 处理器开发的程序框架结构,学 习驱动 TMS320F2812 DSP 处理器程序编写并能使其正常工作。实习驱动 ADC 模块实现信号的实时采集与模数转换。 ( 4) 掌握使用 TMS320F2812 DSP 处理器实现 FIR
6、 数字低通滤波器的设计方法,并能够实时采集输入信号并滤除高频信号再通过 SCI 串口传输到计算机显示。 三、设计要求 1、利用 Matlab 软件的 FDATool 工具设计 FIR 滤波器,并提取滤波器参数; 2、在 CCS 集成开发环境下,利用第 1 步得到的滤波器参数,利用窗函数法设计 FIR 滤波器程序,观察输入信号及滤波后得到的输出信号的时域波形及 FFT Magnitude 波形; 3、利用 TMS320F2812 的 ADC 片内外设的外围电路实时采集的混频信号数据,使用 1个 51 阶的 FIR 低通滤波器,在 CCS 中设计 FIR 滤波器程序实现滤波,观察相关波形及滤波效果
7、,通过 SCI 接口将数据传送到计算机上; 4、(选做)利用 TI 公司的 TLV320AIC23 高性能立体声音频 Codec 芯片,通过 MIC 或音频接口采样音频信号,对采样的音频信号做滤波运算,进行低音加重处理,再将运算过的音频数据通过扬声器播放出来。 四、总体设计 4.1 利用 Matlab 软件的 FDATool 工具设 计 FIR 滤波器 4.1.1 有限冲击响应数字滤波器的基础理论 滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号。滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,使物理可实现的实际
8、滤波器频率响应特性逼近给出的频率响应特性。 FIR 数字滤波器系统的传递函数为: 10 )()()(H ( z ) NnnznbzX zY ( 1) 由此得到系统的差分方程: )1()1()1()1()()0()( NnxNbnxbnxbny ( 2) 若 FIR 数字滤波器的单位冲激响应序列为 h(n),它就是滤波器系数向量 b(n)。传统的滤波器分析与设计均使用繁琐的公式计算,改变参数后需要重新运算,从而在分析与设计滤波器尤其是高阶滤波器时工作量特别大。这里应用 MATLAB 设计 FIR 滤波器,根据给定的性能指标设计一个 H(z),使其逼近这一指标,进而计算并确定滤波器的系数 b(n)
9、,再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。设计完成之后将得到 FIR 滤波器的单位冲激响应序列 h(n)的各个 参数值。 4.1.2 利用 Matlab 软件的 FDATool 设计 FIR 滤波器 () 首先在命令窗口键入 FDAtool 命令, 启动滤波器设计分析器, 调出 FDAtool 界面 ,如下图所示。 FDATool 界面 () 在 Filter Type 选项中选 Lowpass, 在 Design Method 中选择 FIR 滤波器 , 接着在 FIR 中选择 Window (窗函数 ) 法。 () 然后在 Filter
10、 Order 中选择 Specify Order (为 指定 阶数 ), 输入数值为“ 24”;在 Opitions 框中选中“ Scale Passband”;在窗类型( Window:)下拉框选择“ Blackman”。 () 在 Frenquency Specification 选项中,将 fs(为采样频率 )、 fc (为通带截止频率 )中分别键入 30000 Hz 和 9600 Hz。 () 点击“ Design Filter”按钮,完成滤波器的设计。具体参数及设计成功后的结果如下图所示。 FIR 低通滤波器设计 () 通过菜单选项 Analysis 来分析滤波器的幅频响应和相频响应
11、特性。点击Analysis 中的 Magnitude Response 和 Phase Response 对幅频和相频响应进行分析 。如下图所示 幅频和相频响应进行分析 () 在 FDATool 中,选择 Targets - Generate C Header.,单击 Generate 按钮,选择路径,即可输出前一步设计出的 FIR 滤波器的系数表。(默认的系数表文件为 fdacoefs.h。如下图所示。 导出滤波器系数 () 在 Matlab 中打开得到的 fdacoefs.h 的文件, 如下图所示 从 Matlab 中 打开的 fdacoefs.h 文件 4.1.3 提取滤波器参数 取系数
12、表中的数据小数点后 3 位有效值,得到如下内容: Const float B25= 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,-0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 4.2 CCS 环境下 FIR 滤波器的设计及软件仿真 4.2.1 程序流程图 4.2.2 在 CCS 集成开发环境下新建 FIR 滤波器工程 () 实验准备 设置软件仿真模式,启动 CCS。 () 建立工程 建立一个
13、文件夹,存放在 D:FIR,将 D:课程设计 FIR 滤波器 Fir 源程序文件夹下的工程全部复制到 D:FIR, 在 CCS 中打开 D:FIRfirfir.pjt 工程,打开的 CCS 集成开发环境如下图所示。 初始化 输入低通滤波器各频率参数 构建滤波器频域特性波形 使用 FDATool提取滤波器参数或用 FIR 滤波 器计算程序计算得到滤波器参数 构建 FIR 滤波器进行滤波 无限循环 在 CCS 集成开发环境 中打开工程 4.2.3 观察滤波 前 后 的 信号的时域波形及 FFT Magnitude 波形 ( 1)编译工程文件生成 fir.out 文件,并通过 File-Load Program 装载该文件。 ( 2)设置波形时域观察窗口。 选择菜单 ViewGraphTime/Frequency ,分别进行如下图所示进行设置以便观察输入 / 输 出 时 域 波 形 。