欢迎来到天天文库
浏览记录
ID:31477723
大小:1.10 MB
页数:9页
时间:2019-01-11
《基于dsp的fir数字滤波器.(设计实验)(汇编语言)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、WORD格式整理基于DSP的FIR数字滤波器(设计实验)一、实验目的1.了解FIR(FiniteImpulseResponse有限冲激响应)滤波器的原理及使用方法;2.了解使用MATLAT语言设计FIR滤波器的方法;3.了解DSP对FIR滤波器的设计及编程方法;4.熟悉在CCS环境下对FIR滤波器的调试方法;二、实验原理数字滤波是DSP的最基本应用,利用MAC(乘、累加)指令和循环寻址可以方便地完成滤波运算。两种常用的数字滤波器:FIR(有限冲激响应)滤波器和IIR(无限冲激响应)滤波器的DSP实现。设FIR滤波器的系数为h
2、(0),h(1),...,h(N-1),X(n)表示滤波器在n时刻的输入,则n时刻的输出为:FIR数字滤波器的结构如图3.1所示。图3.1FIR数字滤波器的结构图1、线性缓冲区法又称延迟线法。其方法是:对于n=N的FIR滤波器,在数据存储器中开辟一个N单元的缓冲区,存放最新的N个样本;滤波时从最老的样本开始,每读一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶部。以上过程,可以用N=6的线性缓冲区示意图来说明,如图3-2所示图3-2N=6的线性缓冲区示意图2、循环缓冲区法图3-3说明了使用循环寻址实
3、现FIR滤波器的方法。对于N级FIR滤波器,在数据存储区开辟一个称为滑窗的具有N个单元的缓冲区,滑窗中存放最新的N个输入样本值。每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他数据则不需要移动。学习参考资料分享WORD格式整理图3-3FIR滤波器循环缓冲区存储器图三、实验内容与步骤设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。FIR滤波器的设计可以用MATLAB窗函数法进行。本实验设计一个采样频率Fs为8000Hz,
4、输入信号频率为1000Hz和2500Hz的合成信号,通过设计的低通滤波器将2500Hz信号滤掉,余下1000Hz信号。1、MATLAB设计FIR滤波器FIR滤波器的设计可以用MATLAB窗函数法进行,选择Hamming窗,其程序为:b=fir1(16,1500/8000*2);得到FIR数字滤波器系数b为:b0=0.00000000b9=0.28342322b1=0.00482584b10=0.09725365b2=0.00804504b11=-0.02903702b3=-0.00885584b12=-0.04291741b
5、4=-0.0429174b13=-0.00885584b5=-0.02903702b14=0.00804504b6=0.09725365b15=0.00482584b7=0.28342322b16=0.00000000B8=0.37452503在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:h=round(b*2^15)将系数转换为Q15的定点小数形式,为:h(0)=0h(9)=9287h(1)=158h(10)=3187h(2)=264h(11)=-951h(3)=-290h(12)=-1406h
6、(4)=-1406h(13)=-290h(5)=-951h(14)=264h(6)=3187h(15)=158h(7)=9287h(16)=0h(8)=122722、编写FIR数字滤波器的汇编程序;一个FIR滤波器源程序fir.asm.mmregs.globalstart学习参考资料分享WORD格式整理.defstart,_c_int00INDEX.set1KS.set256;模拟输入数据缓冲区大小N.set17COFF_FIR.sect"COFF_FIR";FIR滤波器系数.word0.word158.word264.wo
7、rd-290.word-1406.word-951.word3187.word9287.word12272.word9287.word3187.word-951.word-1406.word-290.word260.word158.word0.dataINPUT.copy"firin.inc";模拟输入在数据存储区0x2400OUTPUT.space1024;输出数据在数据区0x2500COFFTAB.usect"FIR_COFF",NDATABUF.usect"FIR_BFR",NBOS.usect"STACK",0FhT
8、OS.usect"STACK",1.text.asgAR0,INDEX_P.asgAR4,DATA_P;输入数据x(n)循环缓冲区指针.asgAR5,COFF_P;FIR系数表指针.asgAR6,INBUF_P;模拟输入数据指针.asgAR7,OUTBUF_P;FIR滤波器输出数据指针_c
此文档下载收益归作者所有