DSP技术及应用实验报告 实验四.doc_第1页
DSP技术及应用实验报告 实验四.doc_第2页
DSP技术及应用实验报告 实验四.doc_第3页
DSP技术及应用实验报告 实验四.doc_第4页
DSP技术及应用实验报告 实验四.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP技术及应用实验报告 姓名: 学号:实验四 FIR数字滤波器一、实验目的:1学习数字滤波器的DSP实现原理和C54X编程技巧;2通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。二、实验原理:在数字信号处理中,滤波占有极其重要的作用。数字滤波是谱分析、通信信号处理等应用中的基本处理算法,数字滤波是DSP最基本的应用领域。1. FIR滤波器的基本原理数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。一个线性位移不变系统的输出序列和输入序列之间的关系,应满足常系数线性差分方程。FIR滤波器的差分方程为:FIR滤波器的传递函数为: 由上面的公式可知,FIR滤波算法实际上是一种乘法累加运算。它不断地从输入端读入样本值xn,经延时()后做乘法累加,输出滤波结果yn。2. FIR滤波器的设计FIR滤波器的设计方法主要有窗函数法和频率采样法,其中,窗函数法是最基本的方法。具体设计方法可参见数字信号处理。DSP设计者可以利用功能强大的MATLAB工具很方便的设计出逼近理想特性的FIR滤波器,然后将此FIR系数放入DSP程序中。3. FIR滤波器的DSP实现FIR滤波器的输出表达式为 式中,为滤波器系数;为滤波器在n时刻的输入;为n时刻的输出。可见,FIR滤波器不断地对输入样本进行n1延时后,再进行乘法累加,最后输出滤波结果,因此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。 第二,为使循环寻址正常进行,所开辟的循环缓冲区的长度必须是2kN,其中k是整数,N是FIR滤波器的级数,而且循环缓冲区的起始地址必须对准2k的边界,即循环缓冲区的基地址的k个最低有效位必须为0,如N=31时,由于25=3231,k=5,该地址的最低5位为0,所以循环缓冲区必须从二进制地址xxxx xxx0 0000B开始。可见,在循环寻址实现FIR滤波器时,首先将N加载到BK寄存器中,然后指定一个辅助寄存器ARx指向循环缓冲区,并根据ARx的低k位作为循环缓冲区的偏移量进行所规定的寻址操作。寻址完成后,根据循环寻址算法(即以BK寄存器中的值为模对ARx的值进行取模运算)修正这个偏移量,并返回ARx的低k位。下面是利用循环缓冲区和双操作数寻址方法实现的FIR滤波器的汇编语言程序。设,FIR滤波器的算法为:存放输入数据的循环缓冲区和系数表均设在DARAM中,利用MAC指令,实现双操作数的相乘和累加运算。如:RPTZA,#6 ;累加器A清0,设置迭代次数 MAC*AR2+0%, *AR3+0%, A;完成乘法-累加并移位STH A,y ;暂存yn三、实验内容:1. 设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB,阻带边界频率为2000Hz,阻带衰减大于40dB,采样频率为8000Hz。并用C54x汇编语言实现。2. 在使用CCS的Simulator进行滤波器特性测试时,需要输入时间信号x(n)。用C语言程序产生信号频率为1000Hz和2500Hz的正弦波合成波形,作为滤波器输入信号。3. 通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。四、实验设备:1.PC机一台;2CCS开发软件一套;五、实验步骤:(1) 利用MATLAB工具箱设计FIR滤波器,这里选择Hamming窗函数法进行设计,并建立DSP汇编程序的FIR滤波器系数文件。(2) 编写程序产生滤波器输入信号的文件在使用CCS的Simulator进行滤波器特性测试时,需要输入时间信号x(n)。下面给出一个产生输入信号的C语言程序,这个信号是频率为1000Hz和2500Hz的正弦波合成的波形,文件名为firinput.c。该程序将产生名为firin.inc的输入信号程序。#include #include void main()int i;double f256;FILE *fp;if(fp=fopen(firin.inc,wt)=NULL)printf(cant open file! n);return;fprintf(fp,INPUT: .sect %cINPUT %c n,);for(i=0;iROM1PAGE 0 .data : INTRAM1PAGE 1 FIR_COFF: INTRAM2PAG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论