数字信号处理与DSP课程设计_第1页
数字信号处理与DSP课程设计_第2页
数字信号处理与DSP课程设计_第3页
数字信号处理与DSP课程设计_第4页
数字信号处理与DSP课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 北 华 航 天 工 业 学 院课程设计报告(数字信号处理与DSP课程设计)设计课题:数字滤波器设计与基于TMS320C5509A的实现专业班级: 通信工程 学生姓名: 指导教师: 李 利 刘培培 设计时间: 2014年 6 月 北华航天工业学院电子工程系 数字信号处理与DSP课程设计 课程设计任务书姓 名:专业:通信工程班 级:指导教师:李利 刘培职称:教授 助教课程设计题目:数字滤波器设计与基于TMS320C5509A的实现设计要求:本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号

2、。(1)信号:调节实验箱信号源的波形频率(波形输出波形选择调为方波或三角波,频率调整调至100-1KHz档)。(2)AD采集程序设计和实现编写和调试AD采集程序,实现信号的AD采集。注意采样率的确定、控制方法。用CCS图形显示信号波形。(3)FIR滤波器系数、IIR滤波系数的设计 使用MATLAB来设计FIR 数字滤波器、IIR数字滤波器。(4)DA程序设计和实现了解ICETEKVC5509-A 板扩展数模转换方式;掌握数模转换程序设计方法。(5)系统集成,在实验箱上由硬件实现信号的实时滤波整合前三个工程,实现信号的实时滤波;将滤波后的信号通过DAC转换后输出,在示波器上观察输出信号。*(6)

3、基于现有ICETEKVC5509-A开发板及实验箱资源,自由拓展。(比如,利用键盘或拨码开关控制选择滤波器的类型,液晶显示屏显示采集信号、滤波后输出信号波形等)。所需仪器设备:电脑,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数模芯片的使用及数模转换程序设计方法。教师进行辅导答疑。(二)第二

5、周的工作安排(2014年6月16日-2014年6月20日):1各小组宣讲小组设计方案(阶段验收)(周一、周二)针对课题涉及到各部分,各小组宣讲设计方案,其他组同学可以向该小组成员提问,并给该小组成员打分。教师提问点评,给小组成员打分。(特别是3个思考题,各小组要给出设计结果或实施方案)2指导学生完成整个设计任务:整合前三个工程,实现信号的实时滤波;将滤波后的信号通过DAC转换后输出,在示波器上观察输出信号。(周三、周四)。3.最后一天验收学生的课程设计成果(周五)。指导教师: 教研室主任: 2014年 6月 9 日内 容 摘 要随着科学技术的飞速发展,数字信号处理技术广泛的应用在各种领域中,而

6、数字滤波技术在数字信号处理中占有极其重要的地位。数字信号处理由于具有精度高、灵活性强等优点,已广泛应用于图像处理、数字通信、雷达等领域。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。索引

7、关键词: DSP FIR数字滤波器 AD DA 目 录一 概 述 6二 方案设计6三 参数计算6 四 程序清单7五 结果展示11六 思考题15七 心得体会17八 参考文献 17一、概述 DSP芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速地实现各种数字信号处理算法。数字信号处理由于具有精度高、灵活性强等优点,已广泛应用于图像处理、数字通信、雷达等领域。数字滤波技术在数字信号处理中占有极其重要的地位,数字滤波器根据其单位脉冲响应可分为IIR(无限长冲激响应滤波器)和FIR(有限长冲激响应滤波器)两类。IIR滤波器可以用较少的阶数获得很高的选择特性,但在有限精度的运算中,可能出现

8、不稳定现象,而且相位特性不好控制。数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。本次课设的任务是输入方波或三角波信号,经过AD采集后,由DSP对信号进行处理,得到与方波相同频率的正弦波,通过DAC转换后输出,在示波器上观察输出的正弦波信号。二、方案设计本次课设主要研究了

9、数字滤波器的基本理论和实现方法。接着研究分析了如何利用MATLAB仿真软件来设计出符合各种要求的数字滤波器,并对所设计的滤波器进行仿真得到系数,本文还应用DSP集成开发环境CCS调试汇编程序,为后面在DSP上实现提供必要的数据。本课题选择在TM320C5509DSP综合实验开发系统平台上进行开发。最后采用窗函数法在CCS环境下,利用MATLAB仿真得到的滤波器系数,编程实现fiR数字滤波器,得出滤波结果波形,并对结果进行分析与总结。由实验箱信号发生器产生1KHz的模拟方波信号,然后进行AD转换,存放在内存单元中观察这些数据的波形,然后通过DA转换后输出,在示波器上观察输出方波信号。三、参数计算

10、FIR数字滤波器是一种非递归系统,其传递函数为:H(z)=Y(z)/X(z)=b(n)z-n由此可得到系统的差分方程为: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),使其逼近

11、这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲击响应序列h(n)的各个参数值。具体步骤:(1)根据对过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N。窗函数类型可根据其阻带最小衰减As的条件独立选择,因为其长度N对阻带最小衰减没有影响。在确定窗函数类型后,就可以根据过渡带宽小于给定指标的条件,确定所拟用的窗函数长度N,设待求滤波器的过渡带为w,它近似与窗口长度N成反比。窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的长度还要在计算中逐步修

12、正。原则是在保证阻带最小衰减满足要求的情况下尽量选择较小的N。在N和窗函数类型确定后即可用MATLAB中的窗函数求出wd。 (2)根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)。如果给出待求滤波器的频率响应为hd(eW),那么其单位脉冲响应用傅立叶反变换求出。在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法,从w=0到w=2pi采样N点,靠IDFT求出。对于分段为常数的理想幅频特性,可以利用MATLAB编出一个计算理想低通滤波器频率特性的子程序。其他选频滤波器特性都可以由低通特性合成。FIR数字滤波器是一种非递归系统,其传递函数为: H(z)=Y(z)/X(z)=b(n

13、)z-n由此可得到系统的差分方程为: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),再将所设计滤波器的幅频响应、相频响应曲

14、线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲击响应序列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.

15、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四、程序清单滤波程序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_w

16、idth) %滤波器长度wc=(ws+wp)/2/pi;hn=fir1(N-1,wc,hanning(N)subplot(2,2,1)freqz(hn,1,512,Fs);整型代码:#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

17、.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 ;void InitADC();

18、void wait( unsigned int cycles );void EnableAPLL( );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

19、=fxj-1;fx0=fIni;y_out=0;for(j=0;j16;y_out=(int)y32;fOuti=y_out; yyi=(int)( fOuti);yyi=(yyi3)+20;DA_DATA_1= yyi; /-asm( nop);/ break point实型代码:#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.0

20、034,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.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.00

21、00,-0.0004,-0.0003,-0.0002,-0.0000 ;void 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

22、=fxj-1;fx0=fIni;y_out=0.0;for(j=0;j3)+20;DA_DATA_1= yyi; /-asm( nop);/ break point汇编代码:#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.0

23、038 ,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.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

24、.0002,-0.0000 ;void InitADC();void 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

25、(i=0;i3)+20;DA_DATA_1=fOuti; asm( nop);/ break point五、结果展示matlaB 程序与设计参数整型的图:方波频率940hz 正弦波频率950hz采样频率大约为15khz 滤波器设计参数 通带截止400 阻带截止1000采样10khz 实际滤波器性能实型的图:方波频率188hz正弦波频率188hz 采样频率大约为5.4khz 滤波器设计参数 通带截止400 阻带截止1000采样10khz 实际滤波器性能汇编的图: 方波频率940hz 正弦波频率950hz实际采样频率大约为21.5khz 滤波器设计参数 通带截止400 阻带截止1000 采样10k

26、hz 实际滤波器性能DSP(digital signal 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+SAMPTIMED

28、IV)(必须大于等于40)。ADC总转换时间 = ADC采样保持时间+ (13(1/( ADC 转换时钟)ADC不能工作于连续模式下。每次开始转换前,DSP必须把ADC控制寄存器(ADCCTL)的ADCSTART位置1,以启动模数转换器转换。当开始转换后,DSP必须通过查询ADC数据寄存器(ADCDATA)的ADCBUSY位来确定采样是否结束。当ADCBUSY位从1变为0时,标志转换完成,采样数据已经被存放在数模转换器的数据寄存器中。 ADC的寄存器包括控制寄存器(ADCCTL)、数据寄存器(ADCDATA)、时钟分频寄存器(ADCCLKDIV)和时钟控制寄存器(ADCCLKCTL)。实例控制

29、ADC采样频率的例子:设DSP系统时钟为144MHz。(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/

30、 (ADC转换时钟)= 13(1/ 2MHz)=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型滤波速度的比较;采用汇编语言滤波子程序滤波速度的比较;答:采用C语言滤波子程序时,float型数据时,实际采样频率只能达到大约5KHz,而相同的程序采用int变量时采样频率可以达到15KHz。采用汇编语言的滤波子程序时采样频率可以近似达到开发板的最高采样频率21.5KHz。(3)若要精确设定采样频率,如采样频率为12KHz,如何实现?答:通过C55x 芯片提供了两个20位的定时器,在TIN/TOUT引脚上产生一个采 样频率为12KHz的时钟。假定DSP的CPU时钟为144MHz定时器初始化定时器由三个寄存器组成:TIM:定时器寄存器 ,减1计数器

温馨提示

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

评论

0/150

提交评论