1、 课程设计报告(数字信号处理与DSP课程设计)设计课题:数字滤波器设计与基于TMS320C5509A的实现专业班级: 通信工程 学生姓名: 指导教师: 设计时间: 数字信号处理与DSP课程设计 课程设计任务书姓 名:专业:通信工程班 级:指导教师:李利 刘培职称:教授 助教课程设计题目:数字滤波器设计与基于TMS320C5509A的实现设计要求:本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。(1)信号:调节实验箱信号源的波形频率(波形输出波形选择调为方波或三角波,频率调整调至100
2、-1KHz档)。(2)AD采集程序设计和实现编写和调试AD采集程序,实现信号的AD采集。注意采样率的确定、控制方法。用CCS图形显示信号波形。(3)FIR滤波器系数、IIR滤波系数的设计 使用MATLAB来设计FIR 数字滤波器、IIR数字滤波器。(4)DA程序设计和实现了解ICETEKVC5509-A 板扩展数模转换方式;掌握数模转换程序设计方法。(5)系统集成,在实验箱上由硬件实现信号的实时滤波整合前三个工程,实现信号的实时滤波;将滤波后的信号通过DAC转换后输出,在示波器上观察输出信号。*(6)基于现有ICETEKVC5509-A开发板及实验箱资源,自由拓展。(比如,利用键盘或拨码开关控
3、制选择滤波器的类型,液晶显示屏显示采集信号、滤波后输出信号波形等)。所需仪器设备:电脑,DSP实验箱(含硬件仿真器),示波器成果验收形式:演示,在CCS中及在示波器上观测到正确输出信号参考文献:1. TMS320C55x DSP 应用系统设计 (第2版) 赵洪亮等 编著 北京航空航天大学出版社 2.TMS320C55x DSP 原理及应用 汪春梅(第3版 ) 电子工业出版社3. ICETEK DSP 教学实验箱使用手册 4. ICETEK-VC5509-A指导书时间安排2-3人组成1个小组,每组有一名组长,负责组织本组围绕课设内容相互讨论、相互交流和相互协作完成课设任务,互相帮助使小组每位同学
4、清楚课设的每一部分内容及实现方法。 (一)第一周的工作安排(2014年6月9日-2014年6月13日):1全体学生集中,介绍和说明本次综合课程设计的目的、实施方法和要完成的任务内容;2给学生一些本次综合课程设计相关参考资料;引导学生进行扩展设计和应用;3学生自己完成:应用MATLAB设计滤波器;滤波器的DSP编程实现,使用CCS的时域和频域波形视窗观察时域输入/输出信号波形和频谱;VC5509A片内ADC的原理及控制方法;TLC7528数模芯片的使用及数模转换程序设计方法。教师进行辅导答疑。(二)第二周的工作安排(2014年6月16日-2014年6月20日):1各小组宣讲小组设计方案(阶段验收
5、)(周一、周二)针对课题涉及到各部分,各小组宣讲设计方案,其他组同学可以向该小组成员提问,并给该小组成员打分。教师提问点评,给小组成员打分。(特别是3个思考题,各小组要给出设计结果或实施方案)2指导学生完成整个设计任务:整合前三个工程,实现信号的实时滤波;将滤波后的信号通过DAC转换后输出,在示波器上观察输出信号。(周三、周四)。3.最后一天验收学生的课程设计成果(周五)。指导教师: 教研室主任: 2014年 6月 9 日内 容 摘 要随着科学技术的飞速发展,数字信号处理技术广泛的应用在各种领域中,而数字滤波技术在数字信号处理中占有极其重要的地位。数字信号处理由于具有精度高、灵活性强等优点,已
6、广泛应用于图像处理、数字通信、雷达等领域。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。索引关键词: DSP FIR数字滤波器 AD DA 目 录一 概 述 6二 方案设计6三 参数计算
7、6 四 程序清单7五 结果展示11六 思考题15七 心得体会17八 参考文献 17一、概述 DSP芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速地实现各种数字信号处理算法。数字信号处理由于具有精度高、灵活性强等优点,已广泛应用于图像处理、数字通信、雷达等领域。数字滤波技术在数字信号处理中占有极其重要的地位,数字滤波器根据其单位脉冲响应可分为IIR(无限长冲激响应滤波器)和FIR(有限长冲激响应滤波器)两类。IIR滤波器可以用较少的阶数获得很高的选择特性,但在有限精度的运算中,可能出现不稳定现象,而且相位特性不好控制。数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解
8、为是一台计算机。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。二、方案设计本次课设主要研究了数字滤波器的基本理论和实现方法。接着研究分析了如何利用MATLAB仿真软件来设计出符合各种要求
9、的数字滤波器,并对所设计的滤波器进行仿真得到系数,本文还应用DSP集成开发环境CCS调试汇编程序,为后面在DSP上实现提供必要的数据。本课题选择在TM320C5509DSP综合实验开发系统平台上进行开发。最后采用窗函数法在CCS环境下,利用MATLAB仿真得到的滤波器系数,编程实现fiR数字滤波器,得出滤波结果波形,并对结果进行分析与总结。由实验箱信号发生器产生1KHz的模拟方波信号,然后进行AD转换,存放在内存单元中观察这些数据的波形,然后通过DA转换后输出,在示波器上观察输出方波信号。三、参数计算FIR数字滤波器是一种非递归系统,其传递函数为:H(z)=Y(z)/X(z)=b(n)z-n由
10、此可得到系统的差分方程为:y(n)=h(i)x(n-i),其冲击响应h(n)是有限长序列,它其实就是滤波器系数向量b(n),N为FIR滤波器的阶数。为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为:y(n)=h(i)x(n-i)+x(N-1-n-i)应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出
11、,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲击响应序列h(n)的各个参数值。具体步骤:(1)根据对过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N。窗函数类型可根据其阻带最小衰减As的条件独立选择,因为其长度N对阻带最小衰减没有影响。在确定窗函数类型后,就可以根据过渡带宽小于给定指标的条件,确定所拟用的窗函数长度N,设待求滤波器的过渡带为w,它近似与窗口长度N成反比。窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的长度还要在计算中逐步修正。原则是在保证阻带最小衰减满足要求的情况下尽量选择较小的N。在N和窗函数类型确定后即可用MA
12、TLAB中的窗函数求出wd。 (2)根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)。如果给出待求滤波器的频率响应为hd(eW),那么其单位脉冲响应用傅立叶反变换求出。在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法,从w=0到w=2pi采样N点,靠IDFT求出。对于分段为常数的理想幅频特性,可以利用MATLAB编出一个计算理想低通滤波器频率特性的子程序。其他选频滤波器特性都可以由低通特性合成。FIR数字滤波器是一种非递归系统,其传递函数为: H(z)=Y(z)/X(z)=b(n)z-n由此可得到系统的差分方程为:y(n)=h(i)x(n-i),其冲击响应h(n)是有限长
13、序列,它其实就是滤波器系数向量b(n),N为FIR滤波器的阶数。为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为:y(n)=h(i)x(n-i)+x(N-1-n-i)应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲
14、击响应序列h(n)的各个参数值。根据实验要求用MATLAB计算FIR滤波器的参数为:-0.0000,-0.0002,-0.0003,-0.0004,-0.0000,0.0007,0.0020,0.0034,0.0046,0.0050,0.0038,0.0009,-0.0039,-0.0098,-0.0157,-0.0199,-0.0206,-0.0161,-0.0054,0.0117,0.0343, 0.0604,0.0870,0.1109,0.1289,0.1386,0.1386,0.1289,0.1109,0.0870,0.0604,0.0343, 0.0117,-0.0054,-0.01
15、61, -0.0206,-0.0199,-0.0157,-0.0098,-0.0039,0.0009,0.0038,0.0050,0.0046,0.0034,0.0020,0.0007,-0.0000,-0.0004,-0.0003,-0.0002,-0.0000四、程序清单1. 滤波程序matlab.m:clear all;fp=400;fs=1000;Fs=10000;ws=2*pi*fs/Fs;wp=2*pi*fp/Fs;tr_width=ws-wp; %过渡带宽度N=ceil(6.2*pi/tr_width) %滤波器长度wc=(ws+wp)/2/pi;hn=fir1(N-1,wc,h
16、anning(N)subplot(2,2,1)freqz(hn,1,512,Fs);2. 整型代码:#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include math.h#define L 52float fHnL=-0.0000,-0.0002,-0.0003,-0.0004,-0.0000,0.0007,0.0020,0.0034,0.0046,0.0050,0.0038 ,0.0009,-0.0039,-0.0098,-0.0157,-0.0199,-0.0206,-0.0161,-0.0054,0.0
17、117,0.0343, 0.0604,0.0870,0.1109,0.1289,0.1386,0.1386,0.1289,0.1109,0.0870,0.0604,0.0343, 0.0117,-0.0054,-0.0161, -0.0206,-0.0199,-0.0157,-0.0098,-0.0039,0.0009,0.0038,0.0050,0.0046,0.0034,0.0020,0.0007,-0.0000,-0.0004,-0.0003,-0.0002,-0.0000 ;void InitADC();void wait( unsigned int cycles );void Ena
18、bleAPLL( );int nADC0256;/nADC1256;int fIn256, fOut256;int fxL=0;int yy256;int bnL;main()int i,j;unsigned int uWork;int y_out;long y32; EnableAPLL();SDRAM_init();InitADC(); PLL_Init(144);for(i=0;iL;i+) bni=(int)(fHni*32767)+0.5);while ( 1 )for ( i=0;i0;j-) fxj=fxj-1;fx0=fIni;y_out=0;for(j=0;j16;y_out
19、=(int)y32;fOuti=y_out; yyi=(int)( fOuti);yyi=(yyi3)+20;DA_DATA_1= yyi; /-asm( nop);/ break point3. 实型代码:#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include math.h#define L 52float fHnL=-0.0000,-0.0002,-0.0003,-0.0004,-0.0000,0.0007,0.0020,0.0034,0.0046,0.0050,0.0038 ,0.0009,-0.00
20、39,-0.0098,-0.0157,-0.0199,-0.0206,-0.0161,-0.0054,0.0117,0.0343, 0.0604,0.0870,0.1109,0.1289,0.1386,0.1386,0.1289,0.1109,0.0870,0.0604,0.0343, 0.0117,-0.0054,-0.0161, -0.0206,-0.0199,-0.0157,-0.0098,-0.0039,0.0009,0.0038,0.0050,0.0046,0.0034,0.0020,0.0007,-0.0000,-0.0004,-0.0003,-0.0002,-0.0000 ;vo
21、id InitADC();void wait( unsigned int cycles );void EnableAPLL( );float nADC0256;/nADC1256;float fIn256, fOut256;float fxL=0;int yy256;main()int i,j;unsigned int uWork;float y_out; EnableAPLL();SDRAM_init();InitADC(); PLL_Init(144);while ( 1 )for ( i=0;i0;j-) fxj=fxj-1;fx0=fIni;y_out=0.0;for(j=0;j3)+
22、20;DA_DATA_1= yyi; /-asm( nop);/ break point4. 汇编代码:#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include math.h#define L 52extern int fir(int*,int*,int,int);float fHnL=-0.0000,-0.0002,-0.0003,-0.0004,-0.0000,0.0007,0.0020,0.0034,0.0046,0.0050,0.0038 ,0.0009,-0.0039,-0.0098,-0.0157
23、,-0.0199,-0.0206,-0.0161,-0.0054,0.0117,0.0343, 0.0604,0.0870,0.1109,0.1289,0.1386,0.1386,0.1289,0.1109,0.0870,0.0604,0.0343, 0.0117,-0.0054,-0.0161, -0.0206,-0.0199,-0.0157,-0.0098,-0.0039,0.0009,0.0038,0.0050,0.0046,0.0034,0.0020,0.0007,-0.0000,-0.0004,-0.0003,-0.0002,-0.0000 ;void InitADC();void
24、wait( unsigned int cycles );void EnableAPLL( );int nADC0256;/nADC1256;int fIn256, fOut256,xin52;int yy256;int bnL;main()int i;int index=0;unsigned int uWork; EnableAPLL();SDRAM_init();InitADC(); PLL_Init(144);for(i=0;iL;i+) bni=(int)(fHni*32767)+0.5);while ( 1 )for(i=0;i3)+20;DA_DATA_1=fOuti; asm( n
25、op);/ break point五、结果展示1. matlaB 程序与设计参数2. 整型的图:方波频率940hz 正弦波频率950hz采样频率大约为15khz 滤波器设计参数 通带截止400 阻带截止1000采样10khz 实际滤波器性能3. 实型的图:方波频率188hz正弦波频率188hz 采样频率大约为5.4khz 滤波器设计参数 通带截止400 阻带截止1000采样10khz 实际滤波器性能4. 汇编的图: 方波频率940hz 正弦波频率950hz实际采样频率大约为21.5khz 滤波器设计参数 通带截止400 阻带截止1000 采样10khz 实际滤波器性能DSP(digital s
26、ignal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。多通道同步缓冲串口(McBSP)是最重要的数据采集和传输外设之一,是一种典型的可配置外设,通过对其接口参数(主要指时钟)和数据格式的编程设定,可以实现对具体同步串口的编码。六、思考题:(1)分析由方波和三角波得到正弦波的不同,哪种效果好?如何控制ADC的采样频率?答;方波好。它们的频谱图如下所示:方波由基波的奇
27、次谐波构成,三角波的基波含有偶次谐波。如果使用三角波,想要变为同频率的正弦波,低通滤波器的阻带截止频率必须小于基波的二倍频率,通带滤波器的截止区将会非常陡峭,滤波器不易设计。所以,方波比三角波好。控制ADC的采样频率: ADC转换时序图下面的公式,表示ADC可编程时钟分频器之间的关系:ADC时钟 = (CPU时钟) / (CPUCLKDIV +1)ADC 转换时钟 = (ADC时钟) /(2(CONVRATEDIV +1) (必须等于或小于2MHZ)ADC采样保持时间 = (1/ (ADC时) /(2CONVRATEDIV +1+SAMPTIMEDIV)(必须大于等于40)。ADC总转换时间
28、= ADC采样保持时间+ (13(1/( ADC 转换时钟)ADC不能工作于连续模式下。每次开始转换前,DSP必须把ADC控制寄存器(ADCCTL)的ADCSTART位置1,以启动模数转换器转换。当开始转换后,DSP必须通过查询ADC数据寄存器(ADCDATA)的ADCBUSY位来确定采样是否结束。当ADCBUSY位从1变为0时,标志转换完成,采样数据已经被存放在数模转换器的数据寄存器中。 ADC的寄存器包括控制寄存器(ADCCTL)、数据寄存器(ADCDATA)、时钟分频寄存器(ADCCLKDIV)和时钟控制寄存器(ADCCLKCTL)。实例控制ADC采样频率的例子:设DSP系统时钟为144
29、MHz。(1)首先对系统主时钟分频,产生ADC时钟,该时钟应尽量运行在较低频率下,以降低功率消耗,在本例中ADC时钟是通过对系统时钟36分频产生的,则此时ADC时钟=144MHz/36=4MHz,根据公式ADC时钟=(CPU时钟)/ (CPUCLKDIV+1)得出 CPUCLKDIV =35(2)对ADC时钟分频产生ADC 转换时钟,该时钟最大值为2MHz。为了获得2MHz的ADC 转换时钟,需要对ADC时钟2分频。由ADC 转换时钟=ADC时钟/(2(CONVRATEDIV+1)得出 CONVRATEDIV=0,以及ADC 转换时间 = 131/ (ADC转换时钟)= 13(1/ 2MHz)
30、=6.5us(3)对采样和保持时间进行设置,这个值必须大于40。ADC采样保持时间=(1/(ADC时钟))/(2(CONVRATEDIV+1+SAMPTIMEDIV)= (1/(4MHZ)/(2(0+1+SAMPTIMEDIV)= 250NS(2SAMPTIMEDIV)=40 由此得出SampTimeDiv=79(4)整个转换时间为: 40(采样保持时间)+6.5(转换时间)= 46.5us, 采样率 = 1/46.5= 21.5kHz。(2)如果采样频率和滤波程序执行时间有关,请比较采用C语言滤波子程序, 参数采用整形变量int型、float型滤波速度的比较;采用汇编语言滤波子程序滤波速度的
31、比较;答:采用C语言滤波子程序时,float型数据时,实际采样频率只能达到大约5KHz,而相同的程序采用int变量时采样频率可以达到15KHz。采用汇编语言的滤波子程序时采样频率可以近似达到开发板的最高采样频率21.5KHz。(3)若要精确设定采样频率,如采样频率为12KHz,如何实现?答:通过C55x 芯片提供了两个20位的定时器,在TIN/TOUT引脚上产生一个采 样频率为12KHz的时钟。假定DSP的CPU时钟为144MHz定时器初始化定时器由三个寄存器组成:TIM:定时器寄存器 ,减1计数器(地址0024H)PRD:定时器周期寄存器,存时间常数(0025H)TCR:定时器控制寄存器,含
32、有定时器的控制位和状态位 (地址0026H)它对于CLKOUT信号计数,先将PSC减1,直到PSC为0,然后用TDDR重新装载PSC,同时将TIM减一,直到TIM为0,这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致。然后用PDR重新装入TIM,重复下去一直到系统或定时器复位。因而定时器中断得频率由一下的公式决定:TINT的频率其中tc表示CLKOUT的周期。定时器当前的值可以通过读取TIM寄存器和TCR寄存器的PSC比特位得到。程序举例下面时本实验中初始化定时器得程序片段:stm #10h,TCR ;停止定时器stm #11999,PDR ;设置PD
33、R寄存器值为11999,;TINT中断频率为;Foutclk/(11999+1)=;144MHz/12000=12KHzstm #20h,TCR ;重新装入TIM和PSC,然后启动定时器七、心得体会通过这次课程设计,让我认识到理论知识的重要性,实践的成功的前提就是扎实的理论知识,没有了理论知识这个基础,实践就无从谈起,也就不懂得该如何进行实践。在今后的学习生活中,一定要注重对课本知识、理论知识的学习,一定要学好理论,为以后的实践打下坚实的基础,为以后的学习做好铺垫。实践是检验真理的标准,这句话就表明先找到真理,掌握住真理才能用实践来检验,而我首先要做的就是将理论知识学好,才能做好实践。经过此次
34、DSP课设,我了解到了理论知识的重要,在今后的学习中一定要加强对理论知识的学习。八、参考文献1. TMS320C55x DSP 应用系统设计 (第2版) 赵洪亮等 编著 北京航空航天大学出版社 2.TMS320C55x DSP 原理及应用 汪春梅(第3版 ) 电子工业出版社3. ICETEK DSP 教学实验箱使用手册4. ICETEK-VC5509-A指导书电子工程系数字信号处理与DSP课程设计成绩评定表专业: 通信工程 班级:学号:姓名: 课题名称数字滤波器设计与基于TMS320C5509A的实现设计任务与要求本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。指导教师评语 建议成绩: 指导教师:课程小组评定评定成绩: 课程负责人: 年 月 日word文档 可自由复制编辑