《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc

上传人:西安人 文档编号:5016634 上传时间:2020-01-28 格式:DOC 页数:12 大小:241KB
返回 下载 相关 举报
《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc_第1页
第1页 / 共12页
《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc_第2页
第2页 / 共12页
《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc_第3页
第3页 / 共12页
《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc_第4页
第4页 / 共12页
《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc》由会员分享,可在线阅读,更多相关《《DSP硬件电路设计基础》课程设计-FIR滤波器的DSP实现.doc(12页珍藏版)》请在三一文库上搜索。

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、出信号的时域波形输出信号的频域波形同样,通过观察波形的变化,也可以看出低通滤波器对输入信号进行的处理。六、 设计总结硬件电路设计基础的学习过程是短暂的,但是给我们指引了学习的方向。通过课程设计,更好的将理论和实际相结合了起来,更好的掌握了知识。在设计滤波器中,首先是利用计算滤波器参数,对于先前已经有了一些学习,但在运用中还不是得心应手,有许多的功能不知道如何使用,这样一个强大的工具我们必须熟练的掌握,但现在的差距还很远,需要继续努力学习。由于课时较短,对于知识的消化吸收不够,使得在对进行编程时困难重重,对于程序结构的理解还不够全面,汇编指令还不能够熟练地掌握、运用,尤其是在连接命令文件的编写中,存在较大的问题。在芯片的学习过程中,是非常重要的软件工具,但是对于这个软件的掌握程度是很不令人满意的,功能的使用还有很大的欠缺。通过课程设计,进一步加深了堵滤波器原理的理解,也在实际操作过程中熟练了一些和的运用,虽然成果不是很丰硕,但毕竟有了一定的进步,努力肯定是有回报的。在专业课的学习中肯定会遇到各种各样的问题,有些问题是比较难以解决的,这就要求我们要有钻研的精神,更要有耐心,持之以恒,迎难而上,最终战胜困难,解决问题。课程设计是重要看学习过程,在课设中我们可以学到很多,也可以发现在理论学习中难以发现的一些问题,更好的掌握知识- 12 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1