FIR低通滤波器设计与DSP实现_第1页
FIR低通滤波器设计与DSP实现_第2页
FIR低通滤波器设计与DSP实现_第3页
FIR低通滤波器设计与DSP实现_第4页
FIR低通滤波器设计与DSP实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、南京航空航天大学研究生 DSP综合实验实验报告2014 级)题目: FIR 低通滤波器设计与DSP实现学生:蔡静学号:S6月南京航空航天大学研究生DSP 综合实验报告一、实验目的1、 掌握 TMS320 系列 DSP 的性能、结构原理、指令系统及编程方法;2、熟练掌握CCS 集成开发环境的常用开发、调试功能;3、熟悉用MATLAB设计 FIR 滤波器4、根据仿真结果,进行基于CCS 汇编语言仿真;二、实验设备微型计算机1 台、 MATLAB2009a 、 CCS3.3三、实验内容:1 FIR 滤波器介绍FIR 滤波器的系统转移函数Z 变换表示形式如下所示:N - 1H

2、 ( z) = bn znn=0其差分方程表示如下:y(=n)b0 x(n) + b1x(n - 1)+ .+ bN - 1x(n - N +1)与 IIR 滤波器相比, FIR 滤波器可以实现线性相位,从而避免信号通过所产生的相位失真。因而, FIR 滤波器在数字信号处理中有很广泛的应用。滤波器的冲击响应序列对称,则FIR 滤波器就具有线性相位特性,FIR 滤波器的频率响应和序列堆成的关系如下:( 1)N 为偶数,序列偶对称h(n)=h(N-1-n) n=0,1 N/2-1=H (w)N /2b(n) cos(n - 1 )wn =02N - 1(w) = -w其中, b(0) = 0=b(

3、n) 2h( N - n)1 n N221南京航空航天大学研究生DSP 综合实验报告由于 cos(n -1 )w 关于 w = 0和 w = 2偶对称,所以H ( w) 也关于2w = 01 )w 关于w =H (w)和w = 2偶对称, cos(n -也关2于 w = 奇对称,所以,这种情况适合设计低通和带通滤波器,而不能设计高通和带阻滤波器。( 2)N 为偶数, h(n) 奇对称N /2=H (w) d( n)sin( n - 1) wn =02(w) = -N -1 w22幅频响应是关于0, 2,奇对称,关于偶对称,所以,这种情况适合设计高通和带通滤波器( 3)N 为奇数, h(n)偶对

4、称N/2-1H (w) = a(n) cos(nw)n=0N - 1( w) = -w幅频响应使得这种情况可以设计低通、高通、带通、带阻四种滤波器( 4)N 为奇数, h(n)奇对称(n- 3)/2H (w) = c(n)sin( wn)n= 0( w) = - N - 1 w22这种情况只能用来设计带通滤波器。2 FIR 滤波器的 MATLAB设计与仿真MATLAB2009a中的信号处理工具箱提供了很多FIR 滤波器设计方法和设计函数,有窗函数法, 即对理想滤波器加窗处理,根据滤波器的性能指标,截取某一段来近似取代理想滤2南京航空航天大学研究生DSP 综合实验报告波器;最优化设计则是采用平方

5、误差最小的准则逼近理想幅频响应或采用Park-McClelian法产生等波纹滤波器。其他的设计方法包括约束的最小二乘逼近法、任意响应设计、升余弦函数等。此外,MA TLAB还提供了一种设计滤波器的图形界面(GUI ),在 MATLAB命令窗中输入fdatool,就会出现滤波器设计的界面,在下面的栏目中输入响应的性能指标,就能得到滤波器的系数。下面我们用等波纹方法设计一个低通的FIR 滤波器,其性能指标如下:采样率为2KHZ ,通带截止频率为500HZ ,阻带截止频率为600HZ ,带内波动3dB,带外衰减 -50dB ,用等波纹方法的 MATLAB命令为:n,fo,mo,w = remezor

6、d( 500 600, 1 0, 0.18 0.003, 2000 );b = remez(n,fo,mo,w);h,w=freqz(b);得到的滤波器的系数为:0.0073 -0.0009 -0.0395 -0.0609 -0.0149 0.0340 -0.0014 -0.0457 0.0125 0.0641 -0.0375 -0.1080 0.1254 0.47170.4717 0.1254 -0.1080 -0.0375 0.0641 0.0125 -0.0457 -0.0014 0.0340 -0.0149 -0.0609 -0.0395 -0.0009 0.0073从上面的系数可以看

7、出滤波器的系数是成偶对称的,且N=28 为偶数,根据上面的分析,该滤波器应该具有线性相位的特性。再用MATLAB画出该滤波器的频率响应,命令为:figure(1);plot(w/pi,20*log10(abs(h)xlabel( Frequency);ylabel( Magnitude(dB) );grid ontitle( 滤波器的幅频响应);figure(2);plot(w/pi,unwrap(angle(h);gridxlabel( Frequency);ylabel( Phase(degree);grid ontitle( 滤波器的相频响应);3南京航空航天大学研究生DSP 综合实验报

8、告设计 FIR 滤波器的幅频响应如下图所示:图 1. FIR 滤波器的幅频响应设计 FIR 滤波器的相频响应如下图所示:图 2. FIR 滤波器的相频响应4南京航空航天大学研究生DSP 综合实验报告从上图可以看出,所设计的滤波器有线性相位的特性并能满足所需的性能指标。3 CCS 集成开发环境和DSP 实验板介绍一、 CCS 集成开发环境CCS 是 TI 公司的集成开发环境,它提供了环境配置,源文件编辑,程序调试,跟踪和分析等工具, 可以帮助用户在一个软件环境下完成编辑、编译连接、 调试和数据分析等工作,利用 CCS 可以加快软件开发进程,提高工作效率。使用 CCS 集成开发环境开发应用程序的一

9、般步骤为:( 1)打开或创建一个工程文件。 工程文件中包括源程序( C 或汇编)、目标文件、 库文件、连接命令文件和包含文件。( 2)使用 CCS 编辑各类文件,如头文件,命令文件和源程序等。( 3)对工程进行编译。如果有语法错误,将在构建(Build )窗口中显示出来。用户可以根据显示的信息定位错误位置,更改错误。4) 排除程序的语法错误, 用户可以对计算结果 /输出数据进行分析, 评估算法性能。 CCS提供探针、图形显示、性能测试等工具来分析数据、评估性能。二、 FIR 的 DSP 实现由上面的差分方程可以看出, FIR 实际上就是一种乘法累加运算,它不断地输入样本 x(n),经延时,作乘

10、法累加,再输出结果。DSP 中实现延时的方法有两种:线性缓冲区法和循环缓冲区法。线性缓冲区的特点如下:(1)对于 N 级 FIR 滤波器,在数据存储器中开辟一个称为滑窗的 N 个单元的缓冲区。存放最新的N 个输入样本( 2)从最老的样本开始,每读走一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。线性缓冲区法存在的缺点是一个机器周期内要求一次读和一次写操作,而且缓冲去要求定位在DRRAM 中。因此通常采用循环缓冲区法。用循环缓冲区法设计系数对称的FIR 滤波器的步骤如下:在数据存储区开辟两个循环缓冲区,缓冲区的长度为N/2设置循环缓冲区指针, AR2 指向新缓冲区中

11、最新的数据, AR3 指向老缓冲区中最老的数据设置系数表用程序实现乘法累加修正数据指针新缓冲区向老缓冲区传递一个数据5南京航空航天大学研究生DSP 综合实验报告输入新数据代替新缓冲区中最老的数据该 FIR 滤波器实现的源程序如下所示,FIRA.ASM的滤波器程序如下:.title FIR2.asm.mmregs.def _c_int00.bssy,1xn.usectxn ,28;自定义空间 xna0.usecta0,28;自定义空间 a0PA0 .set0;设置数据输出口PA1 .set1;设置数据输入口.datatable:.word32768*73/10000;H0H27.word-327

12、68*9/100000;fir 滤波器系数.word-32768*395/10000;a2=-0.0393.word-32768*609/10000;a3=-0.0609.word-32768*149/10000.word32768*340/10000.word-32768*14/10000.word-32768*457/10000.word32768*125/10000.word32768*641/10000.word-32768*375/10000.word-32768*1080/10000.word32768*1254/10000.word32768*4717/10000.word327

13、68*4717/10000;a14=0.4717.word32768*1254/10000.word-32768*1080/10000.word-32768*375/10000.word32768*641/10000.word32768*125/10000.word-32768*457/10000.word-32768*14/10000.word32768*340/10000.word-32768*149/10000.word-32768*609/10000.word-32768*395/10000.word-32768*9/10000.word32768*73/100006南京航空航天大学研

14、究生DSP 综合实验报告.text_c_int00:SSBXFRCT;小数乘法STM#a0,AR1;将滤波器系数赋给A0RPT#27MVPDtable,*AR1+STM#xn+27,AR3;AR3 指向 xn 的最大地址处 x(n-27)STM#a0+27,AR4;AR4 指向 a0 的最大地址处 a(27)STM#28,BK;开辟循环空间的长度为 28STM#-1,AR0;ar0=-1,双操作数减量LD#xn,DPSTM#500h,AR6; 将滤波后的数据放入起始地址为500h 处PORTRPA1,xn;先输入 xnFIR:RPTZA, #27;寄存器 A 清零,下条指令执行28 次MAC*

15、AR3+0%,*AR4+0%,A;双操作数累加STHA,y;保存 ynPORTWy,PA0;输出 ynSTHA,*AR6+;向 AR6 处输入滤波后的数据BDFIR; 循环PORTRPA1,*AR3+0%; 输入新数据.endFIRAV .ASM 向量文件程序如下:.title FIRAV .asm.ref_c_int00.sect .vectors_c_int00.endFIRA.CMD文件如下:FIRA.objFIRAV.obj-o FIRA.out-m FIRA.mapMEMORYPAGE 0:EPROM: org=0E000h,len=1000hVECS :org=0FF80h,len

16、=0080hPAGE 1:7南京航空航天大学研究生DSP 综合实验报告SPRAM : org=0060h,len=0020hDARAM: org=0080h,len=1380hSECTIONS.text :EPROMPAGE 0.data :EPROMPAGE 0.bss :SPRAM PAGE1xn: align (32) DARAM PAGE 1a0: align (32) DARAM PAGE 1.vectors :VECSPAGE 0在该程序中,我们输入幅度相同300HZ 和 900HZ 叠加的两个信号作为输入信号来验证该滤波器的性能,采样频率为2000Hz, 与、由y=25*SIN(0.9424778*x)+20*SIN(2.827433*x)生成的信号作为输入信号,实验的图形结果如下:图 3. 输入数据的时域波形图 4. 滤波后的时域波形8南京航空航天大学研究生DSP 综合实验报告图 5. 时域输入波形的属性图 6. 时域输出波形的属性图 7.输入波形的频域波形图 8.输出波形的频域波形9南京航空

温馨提示

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

评论

0/150

提交评论