1、 学号 * 成绩 DSP 技术 课程论文 题目 基于 DSP 的 FIR 数字滤波器设计 作 者 * 班 级 * 院 别 * 专 业 电子信息 完成时间 2012 年 05 月 23 号 评语 目 录 一 概述 . 2 1.1 数字滤波器的研究现状 . 2 1.2 论文主要完成的工作 . 2 二 系统硬件设计 . 3 2.1 系统设计方案 . 3 2.2 主控模块 . 6 2.3 显示模块 . 7 三 系统软件设计 . 10 3.1 软件整体设计 . 10 3.2 测量模块 . 10 四 系统测试结果与总结 . 11 4.1 硬件调试中要注意到的问题 . 11 4.2 软件调试中要注意到的问题
2、 . 11 4.3 结果 . 11 4.4 总结 . 12 五 参考文献 . 13 六 附件 . 14 基于 DSP 的 FIR 数字滤波器设计 一、 概述 1.1 数字滤波器的研究现状 滤波器的 主要 分类 有以下几种: ( 1)按处理信号类型分类 , 可分为模拟滤波器和离散滤波器两大类。其中模拟滤波器又可分为有源、无源、异类三个分类;离散滤波器又可分为数字、取样模拟、混合三个分类。 ( 2)按选择物理量分类,滤波器可分为频率选择、幅度选择、时间选择(例如PCM 制中的话路信号)和信息选择(例如匹配滤波器)等四类滤波器。 ( 3)按频率通带范围分类,滤波器可分为低通、高通、带通、带阻、全通五
3、个类别,而梳形滤波器属于带通和带阻滤波器,因为它有周期性的通带和阻带。 为适应各种需要,出现了一批新型滤波器,这里介绍几种已得到广泛应用的 新型滤波器 : ( 1) 电控编程 CCD 横向滤波器( FPCCDTF) : 电荷耦合器( CCD)固定加权的横向滤波器( TF)在信号处理中,其性能和造价均可与数字滤波器和各种信号处理部件媲美。这种滤波器主要用于自适应滤波; P-N 序列和 Chirp 波形的匹配滤波;通用化的频域滤波器及相关积运算;语音信号和相位均衡;相阵系统的波束合成和电视信号的重影消除等均有应用。当然,更多的应用有待进一步开拓。总之, FPCCDTF 是最有希望的发展方向。 (
4、2)晶体滤波器 : 它是适应单边带技术而发展起来的。在 20 世纪 70 年代,集成晶 体滤波器的产生,使它的发展产生一个飞跃。近十年来,晶体滤波器致力于下面一些研究:实现最佳设计,除具有优良的选择外,还具有良好的时域响应;寻求新型材料;扩展工作频率;改造工艺,使其向集成化发展。它广泛应用于多路复用系统中作为载波滤波器,在收发信中,单边带通信机中作为选频滤波器,在频谱分析仪和声纳装置中作为中频滤波器。 ( 3)声表面滤波器 : 它是理想的超高频器件。它的幅频特性和相位特性可以分别控制,以达到要求,而且它还有体积小,长时间稳定性好和工艺简单等特点。通常应用于:电视广播发射机中作为残留边带滤波器;
5、 在彩色电视接收机中调谐系统的表面梳形滤波器。此外,在国防卫星通信系统中已广泛采用。声表面滤波器是电子学和声学相结合的产物,而且可以集成,所以,它在所有无源滤波器中最有发展前途的。 我国现有滤波器的种类和所覆盖的频率已基本上满足现有各种电信设备。从整体而言,我国有源滤波器发展比无源滤波器缓慢,尚未大量生产和应用。从下面的生产应用比例可以看出我国各类滤波器的应用情况: LC 滤波器占 50%;晶体滤波器占20%;机械滤波器占 15%;陶瓷和声表面滤波器各占 1%;其余各类滤波器共占 13%。从这些应用比例来看,我国电子产品 要想实现大规模集成,滤波器集成化仍然是个重要课题。 随着电子工业的发展,
6、对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任 。 1.2 论文主要完成的工作 本课题主要应用 MATLAB软件设计 FIR数字滤波器,并对所设计的滤波器进行仿真:应用 DSP集成开发环境 CCS调试汇编程序,用 TMS320C5402来实现了 FIR数字滤波。主要完成的工作有: ( 1)对 FIR数字滤波器的基本理论进行了分析和 探讨; ( 2)采用 MATLAB软件来学习数字滤波器的基本知识,计算数字滤波器的系放,研究算法的可行性,对 FIR低通数字滤波器进行前期的设计和仿
7、真; ( 3)系统介绍了 TI公司 TMS320C54x系列数字信号处理器的硬件结构、性能特点和DSP的集成开发环境 CCS;应用 DSP集成开发环境 - CS调试汇编程序,用 TMS320C5402来实现了 FIR数字滤波。 ( 4)用窗函数法实现 FIR 滤波器,通过调用四种窗口函数,截取不同的带通与低通滤波原型,满足以下性能要求: 带通滤波器: 下阻带边缘: 2.01 s , dBAs 60 ;下通带边缘: 35.01 p , dBRp 1 ,上通带边缘: 65.02 p , dBRp 1 ;上阻带边缘: 8.02 s , dBAs 60 ,低通滤波器: 2.0p , dBRp 25.0
8、 ; 3.0s , dBAs 50 ; ( 5)研究 DSP 的结构特点,了解 TI 公司的 TMS3205410 DSP 器件,掌握 DSP 系统的构成及软硬件设计方法和 CCS软件的调试方法;并以 TI公司的 TMS3205410 DSP为核心处理器,在 DSP 上实现 FIR 滤波器系统。 二、 系统硬件设计 2.1 系统设计方案 通常一个典型的 DSP 系统如图 1 所示。 图 2.1 典型的 DSP 系统 上图是一个用 DSP 做信号处理的典型框图。由于 DSP 是用来对数字信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。于是先对输入模拟信号进行调整,输出的模拟信号经过
9、A/D 变换后变成 DSP 可以处理的数字信号, DSP 根据实际需要对其进行相应的处理,如 FFT、卷积等;处理得到的结果仍然是数字信号,可以直接通过相应通信接口将它传输出去,或者对它进行 D/A 变换将其转换为模拟采样值,最后再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。 一般来说 DSP 的设计过程应遵循一定的设计流程,如图 2 示 。 图 2.2 DSP 基本设计流程 在数字信号处理系统中,常常要用到 FIR数字滤波器,这是因为用 FIR滤波器可以逼近任意幅频特性的滤波器,并获得很好的性能。故我们将设计基于 DSP的 FIR数字DSP 应用 定义系统性能指标 硬件调试 选择 DS
10、P 芯片 软件编程 硬件设计 系统集成 软件调试 系统测试和调试 滤波器。 本次数字滤波器的实现采用线性缓冲区法。 利用线性缓冲区法实现一个 K阶数字FIR 滤波器的计算时,除在存储空间中定义一个长度为 K 的存储去用于存放滤波器的系数外,还需要专门定义一个长度为 K 的存储区域用来存放 K 个输入数据,该区域称为循环缓冲区。在开始计算前,先给循环缓冲区中所有单元全部赋值为 0,开始计算后,每来一个新的输入数据,将 其按顺序写入循环缓冲区,并将循环缓冲区数据于滤波器系数按相应的规则进行 K 次乘法累加计算,产生一个输出数据。直到循环缓冲区被填满,下一个输入数据到来时,用其替换循环缓冲区中最早的
11、那个数据点,并相应地进行 K 次循环累加运算,产生相应的滤波输出。如此循环直到输入数据序列计算结束。这样在循环缓冲中读取数据时总是在这一段地址范围内循环读数,因此将这一算法称为循环缓冲区法。循环缓冲区法的数据寻址示意图如下图 4 所示: 初始状态 n 时刻的输入采样 更新一个数据后 图 2.3 循环缓冲区法执行过程图 循环缓冲区法的具体步骤如下: ( 1)定义两个长度为 K 的数组,一个用来存放滤波系数 hn,另一个用来存放输入数据 an; ( 2)将滤波系数存放到 hn中,将 an的所有元素赋值为 0; ( 3)将要处理的第一个数据存于 a0中; ( 4)进行 K 次乘法累加运算,得出一个滤
12、波输出; ( 5)将新的输入数据值存入 aK中,以替代最旧的一个数据重复第( 4)步,计算新的滤波器输出,如此循环至所有的输入数据处理结束。 循 环缓冲区法实现的数字滤波器结构比较紧凑,占用存储资源较少,结合 DSP的循环寻址方法可以方便、高效的实现 FIR数字滤波器。 总的设计框图 3如下: H(K-1) H(K-2) X(n-(K-1) X(n+1) X(n-(k-2) H(1) H(0) X(n-1) X(n-1) X(n) X(n) X(n-(K-2) 。 . . 。 . H(1) 图 2.4 系统设计框图 2.2 主控模块 TMS3205402 是 16 位的定点处理器,所以在进行汇
13、编程序设计时, FIR 滤波器系数要采用 Q15 格式,即必须将上述系数转化为 Q15 格式,这只要将滤波器各系数乘以 215即可。 用 DSP 实现 Z 1 算法是十分方便的,常用的方法有两种:线性缓冲区法和循环缓冲区法。在本文中采用的是循环缓冲法,循环缓冲区法的特点是: (1) 对于 N 阶的 FIR 滤波器,在数据存储器中开辟一个也称为滑窗的 N 个单元的缓冲区,滑窗中存放最新的 N 个输入样本; (2) 每次移入新的样本时,以新样本改写滑窗中老的数据,而滑窗中的其他数据不需要移动; (3) 利用片内 BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首尾相邻。 FIR滤波器
14、的核心算法是计算输入信号与滤波器系数的卷积。设 x(n)为输 入信号,h(n)为 FIR滤波器的冲击响应, n=0, N-1,则 FIR滤波器的输出 y(n)就是 x(n)与 h(n)的卷积,即: mhmnxny Nm *10 由于卷积是数字信号处理中最常用到的算法,因此几乎所有的 DSP芯片中都设有专门的指令支持卷积运算。在 TMS3205410中可以用 macd指令完成卷积。 macd指令的形式如下: macd( Smem, pmad, src); 在 macd指令中, Smem是间接寻址参数,它是指令中指向数据存储器的单地址。Pmad是表示程 序存储器地址的 16位常数。 Src表示累加
15、器,可以是 A累加器或是 B累加器。这条指令在执行时,先把指令中的 pmad常数送到程序地址寄存器的 PAR中,然后将 Smem地址中的数据用 PAR地址在程序存储器中读取的数据相乘,并将乘积结果累加到由 Src指定的累加器中。在指令执行时, Smem地址中的内容被同时复制到 T寄存MATLAB 编程产生待滤波数据 MATLAB 滤波器设计工具FDATOOL设计系数 CCS 观察输入输出波形 器和 Smem低中之后的下一个地址单元中。若采用 repeat指令重复执行 macd指令,则在执行指令的最后, PAR寄存器自动加 1,这样当 macd再次执行时就直接用 PAR中的地址读取程序存储器中的
16、数据。通常情况下 , macd指令执行时需要三个周期。但是若用repeat指令执行 macd,进入流水线后只要一个周期就可以执行一次 macd指令。由此可见,该指令同时完成了乘累加和数据延迟(移位)的功能,这正是卷积算法所要求的。 对于输入序列,它在两个循环缓冲器里的存储情况如下,要建立缓冲区首先将循环缓冲区大小寄存器的值设为 N/2 辅助寄存器 AR4 指到缓冲区 1( Bufferl)的顶部 AR5 指到缓冲区 2( Buffer2)的底部,新来一个样本存储到缓冲区 1 中时,应先将缓冲区 1 顶部的数据移到缓冲区 2 底部,处理器然后进行乘加运算,滤波程 序每步运算后 AR4 指向数据移
17、到的下一个窗口,而 AR5 则指向下一个输入数据,对于下一步运算 AR4 指向地址 1, AR5 指向地址 N/2。如下图所示。 图 2.5 FIR 系数存储格式示意图 考虑到在执行 macd指令时是将低地址的数据复制到高地址来完成延迟功能,所以在用 macd指令计算卷积时,先计算 x(n-N+1)与 h(N-1)的乘积,最后才计算 x(n)与 h(0)的乘积。因此在程序中, FIR滤波器的系数在程序存储器中按倒序存储。 2.3 显示模块 本系统的具体硬件方案框图如下图: 图 2.6 硬件方 案框图 在本系统设计中采用了 TI 的 TMS320VC5402 作为其核 心处理单元。TMS320V
18、C5402为低功耗定点数字信号处理器,其运算速度最快可达 532MIPS。它采用先进的修正哈佛结构,片内共有 8 条总线( 1 条程序存储器总线、 3 条数据存储总线和 4 条地址总线)。其 CPU采用并行结构设计,使其能在一条指令周期内,高速地完成多项算术运算。 TMS320VC5402的丰富的片上外围电路(通用 I/O 引脚,定时器,时钟发生器, HPI 接口,多通道缓冲串行口 McBSP)使其与外部接口方便 2。TMS320VC5402 的片上包含两个 McBSP(多通道缓冲串行口 )接口,可以将这两个通道 模仿实现 SPI 的时序,因此本设计中采用了 SPI 接口器件实现数据的模数转换
19、和数模转换。在本数字滤波器系统中选择了 TI 公司的 TLV 1570 芯片作为模数转换器件, 8 通道 10位 2.7 到 5.5 V 低电压模数转换芯片。 TLVl570 在 3V 电压下的采样频率为625KSPS,输入信号最高频率不能超过 300K3。 其功能时序图如下: 图 2.7 TLV1570 的功能时序图 从功能时序图可以看出该 器件包含 8 通道输入多路复用器、高速的 10 位 ADC、内部的电压参考源和高速的串行接口。其高速串行接口包含五根信号线 :SCLK 串行时钟输入、 SDIN串行数据输入、 SDOUT 串行数据输出、 FS 帧同步信号、 CS#片选信号。其中每个取样和转换过程需要 16 个系统工作时钟。由于模数转换选择了 10 位器件,为了简化程序代码,减少 DSP 的运算工作量,在本数字滤波器系统中选择了TI 公司的 TLV5608 芯片,它是一款 8 通道 10 位 2.7 到 5.5 V 低电压数模转换芯片 4。如下图所示: 图 2.8 TLV5608 的功能时序图。