找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6603|回复: 1
收起左侧

利用DSP开发环境CCS3.3实现IIR数字滤波器设计报告

[复制链接]
ID:342386 发表于 2018-5-31 18:48 | 显示全部楼层 |阅读模式

DSP课程设计》报告

2017-2018学年第一学期)


利用DSP开发环境CCS3.3实现IIR数字滤波器设计

目录

一、课程设计性质和目的              1
二、课程设计的内容及要求              1
1、硬件/仿真设计              1
2、软件设计              2
3、功能要求:              2
三、程序编写              2
四、结果及分析              5
五、心得体会              9
六、参考文献              10

一、课程设计性质和目的

DSP课程设计是《DSP》课程是结课后的一门综合性实践课。设计了IIR滤波器,该设计利用DSP实现IIR数字滤波器。所选题目《利用DSP开发环境CCS3.3实现 IIR数字滤波器设计》紧密结合所学的主要内容,加深巩固所学知识,同时对所学内容进行扩展,有一定的深度和广度,能充分发挥学生的思考能力和团结协作的能力。通过对DSP课题的研究,提高了学生对DSP应用系统的设计能力,进一步了解滤波器的原理,了解IIR滤波器的设计过程、CCS的使用方法以及掌握基本编程语言,掌握CCS设计IIR滤波器和CCS工程的建立,源文件的汇编、连接以及调试程序,并且观察其输入、输出波形。

二、课程设计的内容及要求
1、硬件/仿真设计
数字滤波是数字信号处理的一部分。数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、估值、识别、产生等加工处理,都可纳入数字信号处理领域。数字信号处理学科的一项重大进展是关于数字滤波器设计方向的研究。
描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。时域离散系统的频域特性:
其中分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。输入序列的频谱经过滤波后,因此,只要按照输入信号频谱的特点和处理信号的目的, 适当选择使得滤波后的满足设计的要求,这就是数字滤波器的滤波原理。
2、软件设计
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。IIR滤波器与FIR滤波器相比,具有相位特性差的缺点,但它的结构简单,运算量小,具有经济、高效的特点,并且可以用较少的阶数获得很高的选择性。因此也得到了较为广泛的应用。
IIR 数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,其差分方程为:
系统函数为:
设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。
3、功能要求:
用DSP汇编语言编程,实现IIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波形变化。

三、程序编写




    在CCS内编写以上程序通过加载运行等操作我们可以得到得到输入,输出的时域与频域波形图。
    四、结果及分析
    1.输入信号
    <1> 输入信号波形属性
    <2>输入信号时域波形图

    <3>.输入波形频域图

    2.输出波形
    <1>输出波形属性
    <2>输出时域图:

    <3>输出频域图:


    分析仿真结果:有仿真输入波形时域是混合波的叠加,在频域分析时我们可以看出该输入信号是一低频和一高频的叠加。当我们将该信号通过一IIR滤波器时,我们从输出波形看到,时域是一余弦波,频域也只保留了低频频率成分,这说明混合信号通过IIR滤波器后,高频成分被滤除,符合滤波器功能,因此CCS可以作为一种模拟滤波器功能的软件。

    五、心得体会

    通过这次的IIR滤波器的DSP实现的课程设计,我初步了解了TMS320C5502芯片,了解设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法;通过观察对实际信号的滤波作用,获得对数字滤波器的感性认识,综合实验的各个方面以及实验中出现的问题,让我对DSP环境下IIR数字滤波器设计有了全新而系统的认识:对滤波器设计要掌握足够的理论知识,遇到不理解不明白的地方要及时查找资料,在不断学习的过程中提升自己。做什么事情都要踏实、严谨的对待,遇到困难不放弃,理论联系实际,在失败中总结经验,在成功中学习方法,不断提升自己。

    经过这次课程设计,我不仅对以前所学的知识有了较深刻的理解,而且动手能力、独立解决问题的能力及查找资料的能力得到了提高。最后衷心感谢在设计过程中给与我帮助的高贝贝老师和所有同学。


  • 汇编语言源序(iir.asm)
  1. .global _iir,_init,_outdata
  2. _iir
  3. bset frct
  4. sub #1,t0
  5. mov t0,mmap(csr)
  6. add t0,ar0
  7.               mov xar2,xdp
  8.               mov ar2,cdp
  9.               mov #0,ac0
  10.               rpt csr
  11.               macmz *ar0-,*cdp+,ac0
  12.               add t0,ar1
  13.               mov xar3,xdp
  14.               mov ar3,cdp
  15.               rpt csr
  16.               macmz *ar1-,*cdp+,ac0
  17.               mar *ar1+
  18.               mov hi(ac0),*ar1
  19.               mov hi(ac0),t0
  20.               bclr frct
  21.               ret
  22. _init
  23. sub #1,t0
  24.               mov t0,mmap(csr)
  25.               mov #0,ac0
  26.               rpt csr
  27.               mov ac0,*ar0+
  28.               rpt csr
  29.               mov ac0,*ar1+
  30.               ret
  31. _outdata
  32. mov t1,ac0
  33.               sub #2,ac0
  34.               mov ac0,mmap(csr)
  35.               add ac0,ar0
  36.               rpt csr
  37.               delay *ar0-
  38.               mar *ar0+
  39.               mov t0,*ar0
  40.               ret
  41. 2.链接命令文件
  42. -stack 0x0500
  43. -sysstack 0x0500
  44. -heap 0x1000
  45. -c
  46. -u _Reset
  47. -l rts55.lib
  48. MEMORY
  49. {PAGE 0:
  50.     RAM(RWIX): origin=0x000100,   length=0x01ff00
  51.     ROM(RIX): origin=0x020100,   length=0x01ff00
  52.     VECS(RIX): origin=0xffff00,   length=0x000200
  53. PAGE 2:
  54.     IOPORT(RWI):origin=0x000000, length=0x020000
  55. }
  56. SECTIONS
  57. {
  58.    .text >ROM PAGE 0
  59.    .data >ROM PAGE 0
  60.    .bss  >RAM PAGE 0
  61.    .const >RAM PAGE 0
  62.    .sysmem >RAM PAGE 0
  63.    .stack >RAM PAGE 0
  64.    .cio   >RAM PAGE 0
  65.    .sysstack >RAM PAGE 0
  66.    .switch >RAM PAGE 0
  67.    .cinit >RAM PAGE 0
  68.    .pinit >RAM PAGE 0
  69.    .vectors  >VECS PAGE 0
  70.    .ioport >IOPORT PAGE 2
  71.   }
  72. 3.C程序
  73. #include <math.h>
  74. #define signal_1_f 500
  75. #define signal_2_f 10000
  76. #define signal_sample_f 25000
  77. #define pi 3.1415926
  78. #define IIRNUMBER_L 2
  79. #define bufer_L 256
  80. int N_L=IIRNUMBER_L;
  81. int data_in[bufer_L];
  82. int out[bufer_L] ;
  83. int x[IIRNUMBER_L+1];
  84. int y[IIRNUMBER_L+1];
  85. int k=0;
  86. int bufer=bufer_L;
  87. int fBn[IIRNUMBER_L]={0,0x634a};
  88. int fAn[IIRNUMBER_L]={0xe5c,0xe5c};
  89. extern int iir(int *x,int *y,int *fAn,int *fBn,int N_L);
  90. extern int init(int *,int *,int);
  91. extern int outdata(int *,int,int);
  92. void inputwave();
  93. void main()
  94. {int iirout;
  95. inputwave();
  96. init(x,y,N_L);
  97. while(1)
  98. {x[0]=data_in[k];
  99. iirout=iir(x,y,fAn,fBn,N_L);
  100. outdata(out,iirout,bufer);
  101. k++;
  102. if(k>=bufer_L)
  103. {
  104. k=0;
  105. }}}
  106. void inputwave()
  107. {
  108. float wt1;
  109. float wt2;
  110. int i;
  111. for(i=0;i<=bufer_L;i++)
  112. {
  113. wt1=2*pi*i*signal_1_f;
  114. wt1=wt1/signal_sample_f;
  115. wt2=2*pi*i*signal_2_f;
  116. wt2=wt2/signal_sample_f;
  117. data_in[i]=(cos(wt1)+cos(wt2))/2*32768;
  118. }}
复制代码

完整的Word格式文档51黑下载地址:
利用DSP开发环境CCS3.3实现IIR数字滤波器设计.doc (494 KB, 下载次数: 77)
回复

使用道具 举报

ID:306995 发表于 2018-6-7 22:12 | 显示全部楼层
想问问楼主有没有ccs 3.3的安装包
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表