《DSP硬件电路设计基础》课程设计FIR滤波器的DSP实现_第1页
《DSP硬件电路设计基础》课程设计FIR滤波器的DSP实现_第2页
《DSP硬件电路设计基础》课程设计FIR滤波器的DSP实现_第3页
《DSP硬件电路设计基础》课程设计FIR滤波器的DSP实现_第4页
《DSP硬件电路设计基础》课程设计FIR滤波器的DSP实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、dsp硬件电路设计基础课程设计滤波器的dsp实现一、 设计课题滤波器的实现二、 设计目的 掌握数字滤波器的设计过程。 了解fir的原理和特性。 熟悉设计fir数字滤波器的原理和方法。 学习fir滤波器的dsp实现原理。 学习使用ccs的波形观察窗口观察输入/输出信号波形和频谱变化情况。三、 设计内容滤波器结构图在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法。用芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。通过matlab来设计一个低通滤波器,对它进行模拟仿真确定fir滤波器系数;用dsp汇

2、编语言及c语言进行编程,实现fir运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波形变化。四、 设计原理fir滤波器的设计方法主要有窗函数设计法和频率抽样设计法,其中窗函数设计法是最基本的设计方法。在设计fir滤波器中,一个最重要的计算就是加窗,比较常用的窗函数有矩形窗、hanning窗、hamming窗、blackman窗、kaiser窗等。用窗函数设计fir滤波器的步骤为:(1)根据对过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度n。(2)根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)。(3)计算滤波器的单位脉冲响应h(n)。(4)验算技术指标是否满足要求。如果

3、不满足要求,可根据具体情况,调整窗函数类型和长度,重复前面步骤,直到满足要求为止。频率样本法目前有两种设计方法,第一种直接用上面的基本思想,对逼近误差不加任何限制;也就是说无论设计所得的误差有多大我们都接受,这种方法叫朴素设计法。第二种方法则通过改变过渡带的样本值,努力使阻带中的误差极小化,以便产生一个较好的设计,这种方法叫最优设计法。可编程dsp芯片的开发需要一整套完整的软硬件开发工具。通常,dsp芯片的开发工具可以分为代码生成工具和代码调试工具。代码生成工具程序主要包括以下几种类型的程序:c编译器;汇编器和链接器;辅助程序,如文档管理程序和代码格式转换程序等;库文件;rts头文件。开发ds

4、p芯片,调试工具是必不可少的,tms320系列dsp芯片的系统集成和调试工具主要有:c/汇编语言源码调试器;初学者工具dsk;软件模拟器(simulator);评价模块evm;软件开发系统swds;仿真器xds;集成开发环境ccs是一种集成代码调试工具,可以使开发设计人员不必在dos窗口键入大量的命令及参数,ccs集成的调试工具使调试程序一目了然,大量的观察窗口使程序编写与修改得心应手。ccs的引入,大大缩短了dsp的开发进程,开发成本也降低了很多。五、 设计过程(一) 设计一个低通滤波器参数:阶数 根据给给定的设计参数,由中的函数产生滤波器系数 f=0 0.35 0.4 1; m=1 1 0

5、 0 ; b=fir2(39,f,m)b = columns 1 through 9 -0.0007 0.0003 0.0014 0.0010 -0.0016 -0.0038 -0.0008 0.0064 0.0081 columns 10 through 18 -0.0030 -0.0169 -0.0118 0.0162 0.0353 0.0083 -0.0515 -0.0689 0.0247 columns 19 through 27 0.2051 0.3523 0.3523 0.2051 0.0247 -0.0689 -0.0515 0.0083 0.0353 columns 28 th

6、rough 36 0.0162 -0.0118 -0.0169 -0.0030 0.0081 0.0064 -0.0008 -0.0038 -0.0016 columns 37 through 400.0010 0.0014 0.0003 -0.0007接着观察滤波器的幅频、相频特性 freqz(b,512,1000) 汇编源程序.titlefir.asm .mmregs .bssy,1k_fir_bffr .set40pa0 .set0pa1 .set1fir_coff_table .usectfir_coff,40d_data_buffer .usectfir_bfr,40 .dataco

7、ff_fir_start: .word-7*32768/10000,3*32768/10000 .word14*32768/10000,10*32768/10000 .word-16*32768/10000,-38*32768/10000.word-8*32768/10000,64*32768/10000 .word81*32768/10000,-30*32768/10000 .word-169*32768/10000,-118*32768/10000 .word162*32768/10000,353*32768/10000 .word83*32768/10000,-515*32768/100

8、00.word-689*32768/10000,247*32768/10000 .word2051*32768/10000,3523*32768/10000.word3523*32768/10000,2051*32768/10000.word247*32768/10000,-689*32768/10000.word-515*32768/10000,83*32768/10000.word353*32768/10000,162*32768/10000.word-118*32768/10000,-169*32768/10000.word-30*32768/10000,81*32768/10000.w

9、ord64*32768/10000,-8*32768/10000.word-38*32768/10000,-16*32768/10000.word10*32768/10000,14*32768/10000.word3*32768/10000,-7*32768/10000.text.deffir_init.deffir_taskfir_init: ssbxfrct stm#fir_coff_table,ar5 rpt#k_fir_bffr-1 mvpd#coff_fir_start,*ar5+ stm#d_data_buffer,ar4 rptza,#k_fir_bffr-1 stla,*ar4

10、+ stm#(d_data_buffer+k_fir_bffr-1),ar4 stm#(fir_coff_table+k_fir_bffr-1),ar5 stm#-1,ar0 ldd_data_buffer,dp portrpa1,d_data_bufferfir_task: stm#k_fir_bffr,bk rptza,#k_fir_bffr-1 mac*ar4+0%,*ar5+0%,a stha,y portwy,pa0 bdfir_task portrpa1,*ar4+0%.end链接命令文件:memory page 0:eprom : org=0e000hlen=1000hvecs

11、:org=0ff80hlen=0080h page 1:spram :org=0060hlen=0020hdaram :org=0080hlen=1380hsections.text : eprompage 0.vectors: vecspage 0.data : eprampage 0.bss: sprampage 1fir_bfr : align(128) daram page 1fir_coff : align(128) daram page 1以文件的形式加载输入信号,观察波形得:时域波形频域波形经过所设计的低通滤波器后,载观察波形:时域波形频域波形通过波形的对比可以看出,经过设计的低

12、通滤波器后,输入信号中超过通带截止频率的部分被滤除了,达到了设计的目的,满足指标的要求。(二) 用语言和汇编语言混合编程实现低通滤波器 程序fir.asm.global _fir,_init,_b,_outdata_fir bset frct amov #_b,xdp mov #_b,cdp mov t0,ac0 sub #1,ac0 mov ac0,mmap(csr) add ac0,ar0 mov #0,ac0 rpt csr macmz *ar0-,*cdp+,ac0 mov hi(ac0),t0 ret_init mov mmap(t0),ac0 sub #1,ac0 mov ac0,

13、ar7 rptz ac0,ar7 mov ac0,*ar0+ ret_outdata mov t1,ac0 sub #2,ac0 mov ac0,mmap(csr) add ac0,ar0 rpt csr delay *ar0- mar *ar0+ mov t0,*ar0 retfir55.c#include s.h#include math.h#define signal_1_f 200#define signal_2_f 620#define signal_sample_f 2000#define pi 3.1415926#define coff_l 23#define bufer_l 2

14、56int data_inbufer_l;int outbufer_l ;int firout;int xcoff_l+1;int k=0;int bufer=bufer_l;extern int fir(int *,int);extern int init(int *,int);extern int outdata(int *,int,int);void inputwave();void main()inputwave();init(x,bl);while(1)x0=data_ink;firout=fir(x,bl);outdata(out,firout,bufer);k+;if(k=buf

15、er_l)k=0;void inputwave()float wt1;float wt2;int i;for(i=0;irom page 0 .data rom page 0 .bss ram page 0 .const ram page 0 .sysmem ram page 0 .stack ram page 0 .sysstack ram page 0 .switch ram page 0 .cinit ram page 0 .pinit ram page 0 .vectors vecs page 0 .ioport ioport page 2 信号波形输入信号时域波形输入信号的频域波形输

16、出信号的时域波形输出信号的频域波形同样,通过观察波形的变化,也可以看出低通滤波器对输入信号进行的处理。六、 设计总结硬件电路设计基础的学习过程是短暂的,但是给我们指引了学习的方向。通过课程设计,更好的将理论和实际相结合了起来,更好的掌握了知识。在设计滤波器中,首先是利用计算滤波器参数,对于先前已经有了一些学习,但在运用中还不是得心应手,有许多的功能不知道如何使用,这样一个强大的工具我们必须熟练的掌握,但现在的差距还很远,需要继续努力学习。由于课时较短,对于知识的消化吸收不够,使得在对进行编程时困难重重,对于程序结构的理解还不够全面,汇编指令还不能够熟练地掌握、运用,尤其是在连接命令文件的编写中,存在较大的问题。在芯片的学习过程中,是非

温馨提示

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

评论

0/150

提交评论