实验六 FIR 滤波器实验_第1页
实验六 FIR 滤波器实验_第2页
实验六 FIR 滤波器实验_第3页
实验六 FIR 滤波器实验_第4页
实验六 FIR 滤波器实验_第5页
已阅读5页,还剩7页未读, 继续免费阅读

下载本文档

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

文档简介

1、实验六 FIR 滤波器实验一 实验目的(1) 了解FIR 滤波器的原理及使用方法;(2) 了解使用Matlab 语言设计FIR 滤波器的方法;(3) 了解DSP 对FIR 滤波器的设计及编程方法;(4) 熟悉对FIR 滤波器的调试方法;二 实验内容(1) 要求设计滤波器采样频率为600Hz ,截止频率100Hz 的10阶低通滤波器。用汇编语言设计一个FIR 滤波器实现上面要求。(2)要求设计滤波器采样频率为44000Hz ,截止频率2000Hz 的15阶低通滤波器。用C语言设计一个FIR 滤波器实现上面要求。三 实验原理 FIR滤波器的输入xk和输出yk之间的关系可以用如下常系数线性差分方程及

2、其z变换描述:系统的转移函数为:FIR 滤波器总是稳定的。由于系统 对序列施加的算法,是由加法、延时和常系数乘三种基本运算的组合,所以可以用不同结构的数字滤波器来实现而不影响系统总的传输函数。图 6.1 四阶直接型FIR 滤波器的结构四 实验步骤1滤波器的Matlab 语言设计在Matlab 中使用滤波器设计工具箱(FDA )设计滤波器。图 6.2 打开的FDA 主界面图上图 6.2 是打开的滤波器设计的主界面图,在图6.2 上可以设计各种满足用户要求的滤波器,包括滤波器的类型(IIR 或 FIR )、滤波器的阶数、滤波器的种类、滤波器的截至频率、带宽、纹波系数、采样频率等各种和设计滤波器有关

3、的所有参数。图中,我们设计10阶海明窗(Hamming)函数的FIR 型滤波器,采样频率为600HZ ,截至频率为100HZ 的低通滤波器。图中中间显示的数据为设计好的滤波器参数。下图 6 .3 是对应频率特性图。图 6.3 滤波器的频率特性下图 6.4 是对应的冲激响应图。图 6 .4 滤波器的冲激响应图 6 .5 是对应的滤波器阶跃特性图。图 6 .5 滤波器阶跃响应。图 6 .6 是对应的滤波器极零点示意图。图6 .6 滤波器的极零点2从 Matlab 语言转换成通用语言使用Matlab 语言设计出滤波器的参数之后,紧接着需要编写通用的语言,以便向DSP所需要的汇编语言转换,也直接使用C

4、 语言,然后调用CCS 自带的C 编译器将C 语言转换成汇编语言,但一般情况下,滤波器对实时要求比较高,而整个滤波器的程序编写也不是很大,所以建议采用汇编语言编写。* 输入信号产生程序*clear all; clf; N=256; fs=600; dt=1/fsfor k=1:Nf1=37.5; f2=150; y(k)=0.2+0.2*sin(2*pi*f1*k*dt)+0.08*sin(2*pi*f2*k*dt); endy=fft(y,N); pyy=y.*conj(y); f=(0:N/2-1);plot(f/256*600,pyy(1:N/2)图 6.8 和图 6.9 分别是滤波前和

5、滤波后的信号功率谱图。图 6.8 滤波前的信号功率谱图图 6.9 滤波后的信号功率谱图3 滤波器的汇编语言设计在编写汇编程序之前,首先将滤波器的参数写出,从上面滤波器的设计中我们得出滤波器的参数如下,这些参数从图 6.2 打开的FDA 主界面图可以看到。图 6.10 是滤波器的参数显示图。图 6.10 滤波器的参数图针对以上滤波参数,编写汇编语言程序如下: .mmregs .def start .ref filter_startK_DATA_SIZE .set 256 ; input data sizeK_BUFFER_SIZE.set 16 ; processing buffer size,

6、must be greater than the number of a and b, and must be power of 2K_STACK_SIZE .set 256 ; stack sizeK_B .set 11 ; 系数个数K_CIR .set K_BUFFER_SIZESTACK.usect"stack",K_STACK_SIZESYSTEM_STACK .set K_STACK_SIZE+STACKDATA_DP .usect "filter_vars",0filterdata .usect "filter_vars"

7、,K_DATA_SIZEbufferdatay .usect "filter_vars",K_BUFFER_SIZE*2bufferdatax .usect "filter_vars",K_BUFFER_SIZE*2 .data .global inputdatainputdata.WORD75,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-84

8、08,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,

9、6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,695

10、7.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.W

11、ORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16305.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16304.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD

12、12879,-1643,-5536,11893,19128,4966,428,16304.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16304.WORD21315,4595,-2444,11368,15066,-2014,-8408,6957.WORD12879,-1643,-5536,11893,19128,4966,428,16304 .text .asg AR2,ORIGIN .asg AR3,INPUT .asg AR4,FILTER .asg

13、 AR5,OUTPUT .asg AR7,TBL start: SSBX FRCT SSBX INTM LD #DATA_DP,DP STM #STACK,SP CALL filter_start NOP NOP NOPLOOP B LOOP * .def b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11 .def filter_start,COE_TBL ;低同滤波系数; -1107, -927, 887, 4540, 8346, 9977, 8346, 4540, 887,; -927, -1107;高通滤波系数;128, -274, -649, 3911, -8441

14、, 10656, -8441, 3911, -649,; -274, 128;COE_TBL:b1 .set -1107;-1318b2 .set -927;-611b3 .set 887;1381b4 .set 4540;4798 b5 .set 8346;8120b6 .set 9977;9503b7 .set 8346;8120b8 .set 4540;4798b9 .set 887;1381b10 .set -927;-611b11 .set -1107;-1318 .bss table,K_B .bss x,3 .textfilter_start: STM #inputdata,OR

15、IGIN STM #bufferdatax,INPUT STM #filterdata,OUTPUT ;filtering STM #K_DATA_SIZE-1,BRC ;定义循环执行的次数,共256点 STM #K_CIR,BK ;定义循环缓存大小 STM #1,AR0 ;set the circular buffer size and the step size RPTB filter_end-1 ;读入一个新信号数据 MVDD *ORIGIN+,*INPUT RPT #K_B-1-1 ; MAR *INPUT-0% ;调整指针,指向最旧的一个信号数据 ;对系数进行计算 MPY *INPU

16、T+0%,#b11,B LD B,A MPY *INPUT+0%,#b10,B ADD B,A MPY *INPUT+0%,#b9,B ADD B,A MPY *INPUT+0%,#b8,B ADD B,A MPY *INPUT+0%,#b7,B ADD B,A MPY *INPUT+0%,#b6,B ADD B,A MPY *INPUT+0%,#b5,B ADD B,A MPY *INPUT+0%,#b4,B ADD B,A MPY *INPUT+0%,#b3,B ADD B,A MPY *INPUT+0%,#b2,B ADD B,A MPY *INPUT+0%,#b1,B ADD B,A

17、STH A,*OUTPUT+ ;输出新的滤波信号数据 filter_end: NOP RET .end 配置文件:MEMORY PAGE 0:PARAM: org = 3000h len = 4000hPAGE 1:DARAM: org = 100h len=4000hSECTIONS.text : > PARAM PAGE 0stack : > DARAM PAGE 1filter_vars : > DARAM PAGE 1.bss : > DARAM PAGE 1.data : > DARAM PAGE 1程序运行结果如下:如果使用我们提供的配置文件,其中滤波

18、前的数据首地址放在数据存储空间的地址320H 处,滤波后的数据首地址放在数据存储空间的地址200H 。图6.11 滤波前CCS 中的数据时域波形图 6.12 滤波前CCS 中的数据频域波形图6.13 滤波后CCS 中的数据时域波形图 6.14 滤波后CCS 中的数据频域波形(2) 结合实验三的语音信号采集回放程序,设计一个低通滤波器,对采集到的数据进行实时滤波。A:实验准备1将DSP仿真器与计算机连接好。2将仿真器的JTAG插头与SEED-DEC5416单元的J1相连接3将5V外接电源与SEED- DTK 5416的J11相连,查看D1和D3是否均亮,若有不亮的,请断开电源,检查电源。4将耳麦接口插入J6,音频线连接计算机的音频输出插口与SEED-DEC5416单元的J5接口。B实验步骤1打开CCS2.

温馨提示

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

评论

0/150

提交评论