DSP技术及应用实验报告 实验四.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP技术及应用实验报告 实验四

实验四 FIR数字滤波器 一、实验目的: 1.学习数字滤波器的DSP实现原理和C54X编程技巧; 2.通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。 二、实验原理: 在数字信号处理中,滤波占有极其重要的作用。数字滤波是谱分析、通信信号处理等应用中的基本处理算法,数字滤波是DSP最基本的应用领域。 1. FIR滤波器的基本原理 数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。一个线性位移不变系统的输出序列和输入序列之间的关系,应满足常系数线性差分方程。FIR滤波器的差分方程为: FIR滤波器的传递函数为: 由上面的公式可知,FIR滤波算法实际上是一种乘法累加运算。它不断地从输入端读入样本值x[n],经延时()后做乘法累加,输出滤波结果y[n]。 2. FIR滤波器的设计 FIR滤波器的设计方法主要有窗函数法和频率采样法,其中,窗函数法是最基本的方法。具体设计方法可参见《数字信号处理》。DSP设计者可以利用功能强大的MATLAB工具很方便的设计出逼近理想特性的FIR滤波器,然后将此FIR系数放入DSP程序中。 3. FIR滤波器的DSP实现 FIR滤波器的输出表达式为 式中,为滤波器系数;为滤波器在n时刻的输入;为n时刻的输出。可见,FIR滤波器不断地对输入样本进行n-1延时后,再进行乘法累加,最后输出滤波结果,因此FIR滤波器实际上是一种乘法累加运算。 在DSP中FIR是将待滤波的数据序列与滤波系数序列相乘后再相加,同时要模仿FIR结构中的延迟线将数据在存储器中滑动。为了实现FIR滤波器的延迟线,C54x可以通过两种方法实现,即线性缓冲区法和循环缓冲区法。本实验采用循环缓冲区法。 循环缓冲区方法实现N阶FIR滤波器时,需要在数据存储器中开辟一个称为滑窗的N个单元的缓冲区,用来存放必威体育精装版的个输入样本。每当输入新的样本时,以新样本改写滑窗中最老的数据,而滑窗的其他数据不需要移动。因此,在循环缓冲区新老数据不很直接明了,但它不用移动数据,不需要在一个机器周期中要求进行一次读和一次写的数据存储器,因此,可将循环缓冲区定位在数据存储器的任何位置,而不像线性缓冲区要求定位在DARAM中那样。 实现循环缓冲区间接寻址的关键问题是,如何使N个循环缓冲区单元首尾单元相邻,这就需要采用C54x所提供的循环寻址方式来实现。采用循环寻址,须注意以下两点: 第一,必须采用BK(循环缓冲区长度)寄存器按模间接寻址来实现。 在实现N阶FIR时,设定BK的值为FIR的阶数,就能保证循环缓冲区的指针ARx始终指向循环缓冲区,实现循环缓冲区顶部和底部的相邻。 例如:(BK)= N=8,(AR1)=0060h,用“*AR1+%”间接寻址。 第1次间接寻址后,AR1指向0061h单元; 第2次间接寻址后,AR1指向0062h单元; …… 第8次间接寻址后,AR1指向0068h单元; 再将BK按8取模,AR1又回到0060h。 第二,为使循环寻址正常进行,所开辟的循环缓冲区的长度必须是2k>N,其中k是整数,N是FIR滤波器的级数,而且循环缓冲区的起始地址必须对准2k的边界,即循环缓冲区的基地址的k个最低有效位必须为0,如N=31时,由于25=32>31,k=5,该地址的最低5位为0,所以循环缓冲区必须从二进制地址xxxx xxx0 0000B开始。 可见,在循环寻址实现FIR滤波器时,首先将N加载到BK寄存器中,然后指定一个辅助寄存器ARx指向循环缓冲区,并根据ARx的低k位作为循环缓冲区的偏移量进行所规定的寻址操作。寻址完成后,根据循环寻址算法(即以BK寄存器中的值为模对ARx的值进行取模运算)修正这个偏移量,并返回ARx的低k位。下面是利用循环缓冲区和双操作数寻址方法实现的FIR滤波器的汇编语言程序。 设,FIR滤波器的算法为: 存放输入数据的循环缓冲区和系数表均设在DARAM中,利用MAC指令,实现双操作数的相乘和累加运算。如: RPTZ A, #6 ;累加器A清0,设置迭代次数 MAC *AR2+0%, *AR3+0%, A ;完成乘法-累加并移位 STH A, @y ;暂存y[n] 三、实验内容: 设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB,阻带边界频率为2000Hz,阻带衰减大于40dB,采样频率为8000Hz。并用C54x汇编语言实现。 在使用CCS的Simulator进行滤波器特性测试时,需要输入时间信号x(n)。用C语言程序产生信号频率为1000Hz和2500Hz的正弦波合成波形,作为滤波器输入信号。 通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。 四、实验设

文档评论(0)

yanpan1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档