DSP原理与应用课程设计-2013010981-李岩_第1页
DSP原理与应用课程设计-2013010981-李岩_第2页
DSP原理与应用课程设计-2013010981-李岩_第3页
DSP原理与应用课程设计-2013010981-李岩_第4页
DSP原理与应用课程设计-2013010981-李岩_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、信号采集和滤波DSP程序设计课 程 设 计 报 告名 称 DSP原理与应用课程设计 题 目 信号采集和滤波DSP程序设计 指导教师 潘建军/沈冰夏 设计起止日期 2015.11.16至2015.12.18学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 李岩 班级/学号 电信1301/20130109 成 绩 目 录目 录第一章 概述11.1 课程设计目的11.2 课程设计所用设备1第二章 课程设计原理12.1 A/D原理12.1.1 模数转换器结构和时序12.1.2 模数转换器的寄存器32.2 FIR 滤波器设计原理62.3 FIR滤波的DSP程序设计6第三章FIR数字低通滤波器的

2、MATLAB设计8第四章 ADC信号采集和滤波DSP程序设计94.1 采集信号频率94.2 课设结果截图94.2.1. AD采集两路信号的时频图94.2.2. 两路信号混合后波形图104.2.3. 滤波后波形图11第五章 结束语13信号采集和滤波DSP程序设计第一章 概述1.1 课程设计目的 l 掌握TMS320VC5509A片内模数转换器(ADC)的控制方法。l 掌握TI DSP 系统的软件开发。l 设计TMS320VC5509A DSP系统的AD采集程序。l 设计FIR滤波器系数l 对采集的信号进行FIR滤波1.2 课程设计所用设备l 计算机:安装软件开发工具CCStudio v3.3,完

3、成系统的软件开发,进行硬件仿真调试,MATLAB。l ICETEKVC5509-AG-EDU 实验箱:包括p 信号源p 实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统状态和数据的开发系统(ICETEK 5100-USB 仿真器模块)p 提供软件运行和调试的平台和用户系统开发的参照的评估模块(ICETEK VC5509-A)l 示波器:观察DSP输入输出信号的波形和频率。第二章 课程设计原理2.1 A/D原理2.1.1 模数转换器结构和时序在数字信号处理器的具体应用中往往需要采集一些模拟信号量,如电池电压、面板旋钮输入值等,模数转换器就是用来将这些模拟量转化为数字量来供DSP使用。TMS

4、320VC5507/5509片内模拟-数字转换器(ADC)方框图如图1所示。TMS320VC5509A有三种封装,本次课程设计所用瑞泰创新公司生产的TMS320VC5509A DSP系统的评估板上焊接了144管脚薄型四方扁平封装的TMS320VC5509A(PGE 后缀)。本课程设计所使用的TMS320VC5509A DSP只能同时支持两路的信号采集。TMS320VC5509APGE的片内模数转换器支持两路输入,管脚分别为AIN0和AIN0。片内ADC具有如下特性:l 带内置采样和保持的10 位模数转换模块ADCl 最小转换时间为500nsl 最大采样率为21.5kHz (最小采样周期:103

5、/21.5=46.51163s) 图1 ADC方框图 模数转换器采用连续逼近式结构,在模数转换器内部用了三个可编程分频器来灵活地产生用户需要的采样率。整个模数转换过程分为两个周期采样/保持周期及转换周期,如图2所示。(1)采样/保持周期是采样/保持电路采集模拟信号的时间,这个周期大于或等于40s;(2)转换周期是RC比较网络在一次采样中完成逼近处理并输出A/D转换结果的时间,这需要13个转换时钟周期。ADC转换时钟的最大频率为2MHz。图2 转换时序图l 模数转换模块接到启动转换信号后,按照设置开始进行相应通道的数据采样转换。l 经过一个采样时间的延迟后,将采样结果放入AD 数据寄存器中保存。

6、l 转换结束,设置标志。l 等待下一个启动信号。由于TMS320VC5509A DSP 片内的A/D 转换精度是10 位的,ADC数据寄存器(16 位)的最高位(第15 位)表示转换值是否有效(0 有效),第14-12 位表示转换的通道号,第11-10位为保留字段,低10 位为转换数值,所以在保留时应注意取出结果的低10 位,再根据高4 位进行相应保存。2.1.2 模数转换器的寄存器 模数转换器的寄存器包括ADC控制寄存器(ADCCTL)、ADC数据寄存器(ADCDATA)、ADC时钟分频寄存器(ADCCLKDIV)和ADC时钟控制寄存器(ADCCLKCTL)。表1 模数转换器 (ADC) 的

7、寄存器WORD ADDRESSREGISTER NAMEDESCRIPTION RESETVALUE0x6800ADCCTL15:12ADC Control Register0111 0000 0000 00000x6801ADCDATA15:0ADC Data Register0111 0000 0000 00000x6802ADCCLKDIV15:0ADC Function Clock Divider Register0000 0000 0000 11110x6803ADCCLKCTL8:0ADC Clock Control Register0000 0000 0000 0111 Hard

8、ware reset; x denotes a “dont care.”l ADC控制寄存器(ADCCTL):发送转换通道号和启动命令,然后循环等待转换结果,最后将结果保存。表2 ADC控制寄存器ADCCTL位字段数值说明15ADCSTART01转换开始位无效转换开始。在转换结束后,如果ADCSTART位不为高,模数转换器自动进入关电模式14-12CHSELECT000001010011100-111选择模拟输入通道选择AIN0通道选择AIN1通道选择AIN2通道(BGA封装)选择AIN3通道(BGA封装)所有通道关闭11-0Reserved保留,读时总为0l ADC数据寄存器(ADCDATA

9、):只读寄存器,显示AD转换是否正在进行中以及通道号,存放采样数据。表3 ADC数据寄存器ADCDATA位字段数值说明15ADCBUSY01模数转换标志位:采样数据已存在正在转换之中,在ADCSTART置为1后,ADCBUSY变为1,直到转换结束14-12CHSELECT000001010011100-111标志采集数据的通道AIN0通道AIN1通道AIN2通道(BGA封装)AIN3通道(BGA封装)保留11-10Reserved保留,读时总为09-0ADCDATA模数转换数据字段。存放模拟信号的10位转换结果l ADC时钟分频寄存器(ADCCLKDIV):显示转换时钟的分频值和采样保持时间。

10、表4 ADC时钟分频寄存器ADCCLKDIV位字段数值说明15-8SAMPTIMEDIV0-255采样和保持时间分频字段。该字段同CONRATEDIV字段一起决定采样和保持周期ADC Sample and Hold Period =(ADC Clock Period) (2( CONRATEDIV + 1 + SAMPTIMEDIV)7-4Reserved保留3-0CONRATEDIV0000-1111转换时钟分频字段,该字段同SAMPTIMEDIV字段一起决定采样和保持周期ADC Conversion Clock = (ADC Clock) / (2 (CONRATEDIV + 1)l AD

11、C时钟控制寄存器(ADCCLKCTL):存放CPU时钟分频数,并确定是否将ADC置于低功耗状态。表5 ADC时钟控制寄存器ADCCLKCTL 位字段数值说明15-9Reserved保留8IDLEEN01模数转换器时钟使能位时钟使能在运行休眠指令时时钟停止7-0CPUCLKDIV0-255系统时钟分频字段ADC Clock = (CPU Clock) / (CPUCLKDIV + 1)本设计中DSP系统CPU时钟为144MHz。(1)首先对CPU时钟分频,产生模数转换器时钟(ADC Clock),该时钟应尽量运行在较低频率下,以降低功率消耗,在本例中模数转换器时钟是通过对系统主时钟36分频产生的

12、,则此时模数转换器时钟=144MHz/36=4MHz,根据公式 ADC Clock = (CPU Clock) / (CPUCLKDIV + 1) 得出CPUCLKDIV =35;(2)对模数转换器时钟分频产生模数转换器转换时钟(ADC Conversion Clock),该时钟最大值为2MHz,为了获得2MHz的模数转换器转换时钟,则需要对模数转换器时钟2分频,由 ADC Conversion Clock = (ADC Clock) / (2 (CONVRATEDIV + 1) 得出CONVRATEDIV=0 ADC 转换时间 = 13 (1 / ADC Conversion Clock)

13、ADC 转换时间 = 13 (1 / (2 MHz) = 6.5s;(3)对采样和保持周期进行设置,这个值必须大于或等于40s ADC Sample and Hold Period = (1 / (ADC Clock) (2 (CONRATEDIV + 1 + SAMPTIMEDIV) = (1 / (4 MHz) (2 (0 + 1 + SAMPTIMEDIV) = 250 ns (2 (0 + 1 + 79) = 40s SAMPTIMEDIV =79;(4)ADC整个转换时间(ADC Total Conversion Time)为40s的采样和保持时间加上6.5s的转换时间等于46.5s

14、,采样率=1/46.5s =21.5 kHz。2.2 FIR 滤波器设计原理设计FIR低通。低通滤波器的幅度响应和性能如图3所示。图3 低通滤波器的幅度响应和性能p为 通带截止频率,s为阻带截止频率,c为截止频率。p峰值通带波纹。s为最小阻带衰减。2.3 FIR滤波的DSP程序设计FIR滤波器输出y(n)是输入数据和系数的卷积和。任何时候进行计算,都需要把数据和相对应的系数相乘,再累加到输出结果中。 FIR滤波器中,输入信号在每个采样时间T过后都发生改变。也就是说,x(n)将在T时候过后,成为x(n-1),然后是x(n-2),直到该数据被抛弃。本程序设计将采用MATLAB设计的FIR滤波器系数

15、导入到DSP程序中。对信号的FIR滤波函数可以采用设计FIR滤波的浮点实现C函数和两种方法调用德州仪器的TMS320C55x DSPLIB的FIR滤波函数,实现对A/D采集的输入信号进行滤波处理。详细FIR滤波程序设计实现方法见DSP原理与应用讲义。(1) 设计FIR 滤波的浮点实现C函数(2) 调用德州仪器的TMS320C55x DSPLIB的FIR滤波函数德州仪器的TMS320C55x DSPLIB是专门针对TMS320C55x系列处理器开发的数字信号处理函数库,它包括50个经过汇编级优化的数字信号处理函数,这些函数可由C调用。数字信号处理库由头文件dsplib.h,目标库55xdsp.l

16、ib(小模式)、 55xdspx.lib(大模式) ,源文件55xdsp.src等组成。数字信号处理库可以从网站下载,下载的文件是一个压缩文件sprc100.zip (最新版本日期: Apr-10-2007 ),解压之后生成一个dsplib_2.40.00目录,用户可以把这个目录及目录下的全部内容复制到c5500目录下。例子程序在examples子目录下。 库函数中主要的数据类型是Q.15(Q15, 16位字),其他数据类型还包括Q.31(Q31, 32位双字)和Q.3.12( Q12,3位整数,12位小数)。函数中参数的传递大多采用数组的形式,其中数组成员都在内存中连续保存。当存放的是复数时

17、,则以实部虚部的格式存放。 为了节省存储器的空间,源操作数和目的操作数可以使用相同的地址。如果在函数运行时发生了溢出,函数可以返回溢出标志,但是由于C55x的寄存器为40位,其中有8位的保护位,因此在运算中可能发生了32位溢出但结果仍然正确,在这种情况下,溢出标志代表报警而不是一个错误。调用DSPLIB库需要包含dsplib.h,并在工程中加入55xdsp.lib或55xdspx.lib库或在工程中加入包含调用函数的汇编源代码的汇编文件。TMS320C55x DSPLIB的FIR 滤波的函数说明如下。 fir2 FIR2 Filter FIR direct form (Optimized to

18、 use DUALMAC)Function ushort oflag = fir2 (DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx, ushort nh)Argumentsxnx Pointer to input vector of nx real elements.hnh Pointer to coefficient vector of size nh in normal order.For example, if nh=6, then hnh = h0, h1, h2, h3, h4, h5 where h0 resides at

19、the lowest memory address in the array.rnx Pointer to output vector of nx real elements. In-place computation (r = x) is allowed.dbuffernh+2 Pointer to delay buffer of length nh + 2nx Number of input samplesnh The number of coefficients of the filter. For example, if the filter coefficients are h0,

20、h1, h2, h3, h4, h5, then nh= 6. Must be a minimum value of 3. For smaller filters, zero pad the coefficients to meet the minimum value.oflag Overflow error flag (returned value) If oflag = 1, a 32-bit data overflow occurred in an intermediate or final result. If oflag = 0, a 32-bit overflow has not

21、occurred.Benchmarks 基准测试Cycles Core: nx * (3 + nh/2) Overhead: 25Code size 107 (in bytes)Assumes all data is in on-chip dual-access RAM (provided linker command file reflects thoseconditions).第三章FIR数字低通滤波器的MATLAB设计 本设计选用Kaiser窗设计FIR低通滤波器,采样频率Fs=21500Hz, 与AD采集部分计算出的采样频率一致,通带截止频率Fpass=1000Hz, 阻带截止频率Fs

22、top=2550Hz,阻带最小衰减Astop=40dB,滤波器如下图: 图3.1 低通滤波器图第四章 ADC信号采集和滤波DSP程序设计4.1 采集信号频率 fs=21.5KHz4.2 课设结果截图4.2.1. AD采集两路信号的时频图图4.2.1 AD采集两路信号时频图 4.2.2. 两路信号混合后波形图 图4.2.2 Q15定点混合时域图图4.2.3 Q15定点混合频域图图4.2.4 浮点混合时域图图4.2.5 浮点混合频域图4.2.3. 滤波后波形图 图4.3.1 Q15定点滤波后时域图 图4.3.2 Q15定点滤波后频域图 图4.3.3 浮点滤波后时域图图4.3.4 浮点滤波后频域图第

23、5章 结束语感悟: 通过本次课程设计,我学到了很多知识,同时也认识到自己编程技术的薄弱,我会在以后的学习中加强编程知识的学习。本次试验中我对CSS软件开发环境有了较深的认识和理解。通过完整的实验我对本专业的知识体系有了系统性的理解,使我受益匪浅。滤波器设计中我理解了滤波器参数的实际意义,让我对课程中的知识有了更深入的理解。 试验中遇到不少问题都是在老师和同学的帮助下解决的,谢谢老师的帮助。 参考文献1 汪春梅, 孙洪波. TMS320C55x DSP原理及应用(第 3 版). 北京: 电子工业出版社, 2011.2 Texas Instruments Incorporated. TMS320V

24、C5507/5509 DSP Analog-to-Digital Converter (ADC) Reference GuideOL. Texas Instruments Incorporated, SPRU586B, 2004. .3 Texas Instruments Incorporated. TMS320VC5509A Fixed-Point Digital Signal Processor. Texas Instruments Incorporated, SPRS205K, 2008. .4 DSP原理与应用课程讲义.5 瑞泰创新公司. ICETEKVC5509-A评估板硬件使用指导

25、. 北京:瑞泰创新公司, 2006.6 瑞泰创新公司. ICETEK-VC5509-A-USB-EDU教学实验系统使用指导. 北京:瑞泰创新公司, 2006.7 瑞泰创新公司. ICETEKVC5509-A-USB-EDU教学实验系统软件实验指导. 北京:瑞泰创新公司, 2006.8 谭浩强. C程序设计(第三版)M. 北京: 清华大学出版社, 2005.9 Texas Instruments Incorporated. Code Composer Studio Help. 10 Texas Instruments Incorporated. TMS320C55x DSP Programmer

26、s GuideOL. Texas Instruments Incorporated, SPRU376A, 2001. . 11 Texas Instruments Incorporated. TMS320C55x Optimizing C/C+ Compiler Users Guide OL. Texas Instruments Incorporated, SPRU281F, 2003. .12 Texas Instruments Incorporated. TMS320C55x DSP Peripherals Overview Reference Guide. Texas Instrumen

27、ts Incorporated. SPRU317H,2006. .13 Sen M. Kuo, Bob H. Lee. Real-Time Digital Signal Processing Implementations, 14 Applications and Experiments With the TMS320C55x M. 北京: 清华大学出版社, 2003.15 焦瑞莉等编著. 数字信号处理M. 北京: 机械工业出版社. 2011.附录:程序源代码main.c#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.

28、hvoid InitADC();void wait( unsigned int cycles );void EnableAPLL( );int nADC0256,nADC1256;int mixQ15256;float mixfloat256;int FIROUTQ15256;int DBBufferQ1534;float Bufferfloat32;float FIROUTfloat256;const int BhQ1532 = 98, 141, 138, 57, -117, -360, -604, -747, -671, -284, 451, 1490, 2700, 3888, 4838,

29、 5366, 5366, 4838, 3888, 2700, 1490, 451, -284, -671, -747, -604, -360, -117, 57, 138, 141, 98;const float Bhfloat32 = 0.002999524353, 0.004298123531, 0.004219199065, 0.001731093973,-0.003574917093, -0.01098363195, -0.01843946427, -0.02278480493, -0.02048166841,-0.008664992638, 0.01377640851, 0.0454

30、5684904, 0.08239003271, 0.1186456978, 0.1476465911, 0.163765952, 0.163765952, 0.1476465911, 0.1186456978, 0.08239003271, 0.04545684904, 0.01377640851,-0.008664992638, -0.02048166841, -0.02278480493, -0.01843946427, -0.01098363195,-0.003574917093, 0.001731093973, 0.004219199065, 0.004298123531, 0.002

31、999524353;main()int i;unsigned int uWork; EnableAPLL();SDRAM_init();InitADC(); PLL_Init(144);for (i=0;i34;i+) DBBufferQ15i=0;for (i=0;i32;i+) Bufferfloati=0;while ( 1 ) for ( i=0;i256;i+ )ADCCTL=0x8000;/ 启动AD转换,通道0douWork=ADCDATA; while ( uWork&0x8000 );nADC0i=uWork&0x0fff; for ( i=0;i256;i+ )ADCCTL=0x9000;/ 启动AD转换,通道1douWork=ADCDATA; while ( uWork&

温馨提示

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

评论

0/150

提交评论