ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:158.16KB ,
资源ID:7143501      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7143501.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DSP的FIR数字滤波器设计实验汇编语言.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于DSP的FIR数字滤波器设计实验汇编语言.docx

1、基于DSP的FIR数字滤波器设计实验汇编语言基于DSP的FIR数字滤波器-(设计实验)(汇编语言)基于DSP的FIR数字滤波器 (设计实验)一、实验目的1.了解FIR(Finite Impulse Response有限冲激响应)滤波器的原理及使用方法;2.了解使用MATLAT语言设计FIR滤波器的方法;3.了解DSP对FIR滤波器的设计及编程方法;4.熟悉在CCS环境下对FIR滤波器的调试方法;二、实验原理数字滤波是DSP的最基本应用,利用MAC(乘、累加)指令和循环寻址可以方便地完成滤波运算。两种常用的数字滤波器:FIR(有限冲激响应)滤波器和IIR(无限冲激响应)滤波器的DSP实现。设FI

2、R滤波器的系数为h(0),h(1), .,h(N-1),X(n)表示滤波器在n时刻的输入,则n时刻的输出为: 图3-2 N=6的线性缓冲区示意图2、循环缓冲区法图3-3说明了使用循环寻址实现FIR滤波器的方法。对于N级FIR滤波器,在数据存储区开辟一个称为滑窗的具有N个单元的缓冲区,滑窗中存放最新的N个输入样本值。每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他数据则不需要移动。图3-3 FIR滤波器循环缓冲区存储器图三、实验内容与步骤设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。FI

3、R滤波器的设计可以用MATLAB窗函数法进行。本实验设计一个采样频率Fs为8000Hz,输入信号频率为1000Hz和2500Hz的合成信号,通过设计的低通滤波器将2500Hz信号滤掉,余下1000Hz信号。1、MATLAB设计FIR滤波器 FIR滤波器的设计可以用MATLAB窗函数法进行,选择Hamming窗,其程序为: b=fir1(16,1500/8000*2);得到FIR数字滤波器系数b为:b0=0.00000000 b9=0.28342322b1=0.00482584 b10=0.09725365b2=0.00804504 b11=-0.02903702b3=-0.00885584 b

4、12=-0.04291741b4=-0.0429174 b13=-0.00885584b5=-0.02903702 b14=0.00804504b6=0.09725365 b15=0.00482584b7=0.28342322 b16=0.00000000B8=0.37452503在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:h=round(b*215)将系数转换为Q15的定点小数形式,为:h(0)=0 h(9)=9287h(1)=158 h(10)=3187h(2)=264 h(11)=-951h(3)=-290 h(12)=-1406h(4)=-1406 h(1

5、3)=-290h(5)=-951 h(14)=264h(6)=3187 h(15)=158h(7)=9287 h(16)=0h(8)=122722、编写FIR数字滤波器的汇编程序;一个FIR滤波器源程序 fir.asm .mmregs .global start .def start,_c_int00 INDEX .set 1KS .set 256 ;模拟输入数据缓冲区大小N .set 17 COFF_FIR .sect COFF_FIR ;FIR滤波器系数 .word 0 .word 158 .word 264 .word -290 .word -1406 .word -951 .word

6、3187 .word 9287 .word 12272 .word 9287 .word 3187 .word -951 .word -1406 .word -290 .word 260 .word 158 .word 0 .dataINPUT .copy firin.inc ;模拟输入在数据存储区0x2400OUTPUT .space 1024 ;输出数据在数据区0x2500COFFTAB .usect FIR_COFF,NDATABUF .usect FIR_BFR,NBOS .usect STACK,0FhTOS .usect STACK,1 .text .asg AR0,INDEX_P

7、 .asg AR4,DATA_P ;输入数据x(n)循环缓冲区指针 .asg AR5,COFF_P ;FIR系数表指针 .asg AR6,INBUF_P ;模拟输入数据指针 .asg AR7,OUTBUF_P;FIR滤波器输出数据指针_c_int00 b start nop nopstart: SSBX FRCT STM #COFFTAB,COFF_P RPT #N-1 ;将FIR系数从程序存储器移动 MVPD #COFF_FIR,*COFF_P+ ;到数据存储器 STM #INDEX,INDEX_P STM #DATABUF,DATA_P RPTZ A,#N-1 STL A,*DATA_P+

8、 ;将数据循环缓冲区清零 STM #(DATABUF+N-1),DATA_P ;数据缓冲区指针指向xn-(N-1) STM #COFFTAB,COFF_P ;FIR_TASK: STM #INPUT,INBUF_P STM #OUTPUT,OUTBUF_P STM #KS-1,BRC RPTBD LOOP-1 STM #N,BK ;FIR循环缓冲区大小 LD *INBUF_P+,A ;装载输入数据FIR_FILTER: STL A,*DATA_P+% RPTZ A,N-1 MAC *DATA_P+0%,*COFF_P+0%,A STH A,*OUTBUF_P+LOOP:END B EEND .

9、end3、编写FIR滤波器链接命令文件对应以上汇编程序的链接命令文件fir.cmd如下:fir.obj-m fir.map-o fir.outMEMORY PAGE 0: ROM1(RIX) :ORIGIN=0080H,LENGTH=100H PAGE 1: INTRAM1(RW) :ORIGIN=2400H,LENGTH=0200H INTRAM2(RW) :ORIGIN=2600H,LENGTH=0100H INTRAM3(RW) :ORIGIN=2700H,LENGTH=0100H B2B(RW) :ORIGIN=0070H,LENGTH=10H SECTIONS .text : ROM

10、1 PAGE 0 .data : INTRAM1 PAGE 1 FIR_COFF: INTRAM2 PAGE 1 FIR_BFR : INTRAM3 PAGE 1 .stack : B2B PAGE 1 4、实验步骤及结果(1) 在CCS上建立fir工程并运行fir.out程序。建立fir工程,将fir.asm和fir.cmd添加到工程中,对汇编程序进行汇编、链接;如果有错误则进行修改、调试,当汇编、链接成功后,加载并运行fir.out程序。注意,将fir.asm、fir.cmd、firin.inc文件和fir.pjt工程文件放在同一文件夹下。(2) 观察输入信号的波形及频谱。单击ViewGr

11、aphTime/Frequency命令,按照如图3-4所示改变各选项。其中,由.cmd可知输入信号的数据放在数据区0x2400开始的256个单元中。图3-4 Graph属性设置窗口单击OK按钮,则显示输入信号的时域波形如图3-5所示。其波形是频率为1000Hz和2500Hz正弦信号的合成信号。图3-5 输入信号的时域波形将图3-4中的Dsiplay Type项改为FFT Magnitude,则显示输入信号的频谱图,如图3-6所示。图3-6 输入信号的频谱图3、观察输出信号的波形及频谱。单击ViewGraphTime/Frequency命令,按照如图3-7所示改变各选项。其中,由.cmd可知输出

12、信号的数据放在数据区0x2500开始的256个单元中。图3-7 Graph属性设置窗口单击OK按钮,将显示滤波器输出信号时域波形,如图3-8所示。图3-8 输出信号的时域波形图3-9 输出信号的频谱图5、系数对换FIR滤波器的实现系数对换FIR滤波器由于具有线性相位,因此应用很广。一个N=8的FIR滤波器,若h(n)=h(N-1-n),就是对换FIR滤波器,其输出方程为:总共有8次乘法和7次加法。如改写成:变成4次乘法和7次加法,乘法运算次数减少了一半,特别是当阶数较高时,利用系数对称的特点,可以明显减少运算量。(1)FIR滤波器设计在MATLAB下输入:B=fir1(15,1500/8000

13、*2);H=round(b*215);将系数转换为Q15的定点小数形式则滤波器系数为:h(0)=62 h(8)=11439h(1)=188 h(9)=6202h(2)=86 h(10)=625h(3)=-764 h(11)=-1453h(4)=-1453 h(12)=-764h(5)=625 h(13)=86h(6)=6202 h(14)=188h(7)=11439 h(15)=62系数对称FIR数字滤波器汇编程序如下: .mmregs .global start .def start,_c_int00KS .set 256 ;输入样本数据个数N .set 16 ;FIR滤波器阶数COEF_F

14、IR .sect COEF_FIR ;FIR滤波器系数 .word 62 .word 188 .word 86 .word -764 .word -1453 .word 625 .word 6202 .word 11439 .dataINPUT .copy firin.inc ;输入数据在数据区0x2400OUTPUT .space 1024 ;输出数据在数据区0x2500x_new .usect DATA1,N/2x_old .usect DATA2,N/2size .set N/2 .text_c_int00 b start nop nopstart: SSBX FRCT ; 设置FRCT

15、(小数方式)位 STM #x_new,AR2 ; AR2指向New缓冲区第一个单元 STM #x_old+(size-1), AR3; AR3指向Old缓冲区最后一个单元 STM #-1,AR0 STM #INPUT,AR4 ; 模拟输入数据指针初始化 STM #OUTPUT,AR5 ; 滤波器输出数据指针初始化 STM #KS-1,BRC RPTBD LOOP-1 STM #size , BK ;循环缓冲区块大小BK=size LD *AR4+,A STL A,*AR2FIR_FILTER: ADD *AR2+0%,*AR3+0%,A RPTZ B, #size-1 FIRS *AR2+0%

16、,*AR3+0%,COEF_FIR STH B,*AR5+ MAR *+AR2(2)% MAR *AR3+% MVDD *AR2 , *AR3+0%LOOP:END B END .end链接命令文件如下:fir2.obj-m fir2.map-o fir2.outMEMORY PAGE 0: ROM1(RIX) :ORIGIN=0080H,LENGTH=1000H PAGE 1: INTRAM1(RW) :ORIGIN=2400H,LENGTH=0200H INTRAM2(RW) :ORIGIN=2600H,LENGTH=0100H INTRAM3(RW) :ORIGIN=2700H,LENGTH=0100H B2B(RW) :ORIGIN=0070H,LENGTH=10H SECTIONS .text : ROM1 PAGE 0 COEF_FIR: ROM1 PAGE 0 .data : INTRAM1 PAGE 1 DATA1 : INTRAM2 PAGE 1 DATA2 : INTRAM3 PAGE 1 .stack : B2B PAGE 1 四、实验仪器设备.计算机.DES-320PPA教学实验系统五、思考题. 实现系数对称FIR数字滤波器

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1