ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:458.95KB ,
资源ID:16913605      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16913605.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(dsp课设报告姚晗.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

dsp课设报告姚晗.docx

1、dsp课设报告姚晗课 程 设 计 报 告名 称 DSP原理与应用课程设计 题 目 信号采集和滤波DSP程序设计 指导教师 潘建军/沈冰夏 设计起止日期 2015-11-16 至 2015-12-18 学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 姚晗 班级/学号 电信1303/2013011053 成 绩 目 录第一章 概述 3 1.1 课程设计目的和要求 3 1.2 课程设计所用设备 3第二章 课程设计原理7 2.1 A/D原理7 2.2 FIR滤波器设计原理8第三章 FIR数字低通滤波器的MATLAB设计9 3.1 采用MATLAB设计FIR滤波器9第四章 ADC信号采集和滤

2、波DSP程序设计 10 4.1 基本步骤10 4.2 实验结果10结束语13 参考文献14附录 程序源代码15第一章 概述1.1课程设计目的和要求1. 掌握TMS320VC5509A片内模数转换器(ADC)的控制方法2. 掌握TI DSP 系统的软件开发3. 设计TMS320VC5509A DSP系统的AD采集程序4. 采用MATLAB设计FIR滤波器5. 对采集的信号进行FIR滤波6. 掌握C语言和汇编语言的混合编程1.2课程设计所用设备 1. 计算机:安装软件开发工具CCStudio v3.3,完成系统的软件开发,进行硬件仿真调试,MATLAB。2. ICETEKVC5509-AG-EDU

3、 实验箱:包括a) 信号源b) 实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统状态和数据的开发系统(ICETEK 5100-USB 仿真器模块)c) 提供软件运行和调试的平台和用户系统开发的参照的评估模块(ICETEK VC5509-A)第二章 课程设计原理(一)A/D原理1模数转换器结构和时序在数字信号处理器的具体应用中往往需要采集一些模拟信号量,如电池电压、面板旋钮输入值等,模数转换器就是用来将这些模拟量转化为数字量来供DSP使用。TMS320VC5507/5509片内模拟-数字转换器(ADC)方框图如图1所示。TMS320VC5509A有三种封装,本次课程设计所用瑞泰创新公司生产

4、的TMS320VC5509A DSP系统的评估板上焊接了144管脚薄型四方扁平封装的TMS320VC5509A(PGE 后缀)。本课程设计所使用的TMS320VC5509A DSP只能同时支持两路的信号采集。TMS320VC5509APGE的片内模数转换器支持两路输入,管脚分别为AIN0和AIN1。片内ADC具有如下特性: 带内置采样和保持的10 位模数转换模块ADC 最小转换时间为500ns(最大ADC转换时钟为2MHz) 最大采样率为21.5kHz (最小采样周期:1000000/(21.5k)=46.51163s)图1 ADC方框图 模数转换器采用连续逼近式结构,在模数转换器内部用了三个

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

6、 位的,ADC数据寄存器(16 位)的最高位(第15 位)表示转换值是否有效(0 有效),第14-12 位表示转换的通道号,第11-10位为保留字段,低10 位为转换数值,所以在保留时应注意取出结果的低10 位,再根据高4 位进行相应保存。2. 模数转换器的寄存器 模数转换器的寄存器包括ADC控制寄存器(ADCCTL)、ADC数据寄存器(ADCDATA)、ADC时钟分频寄存器(ADCCLKDIV)和ADC时钟控制寄存器(ADCCLKCTL)。表1 模数转换器 (ADC) 的寄存器WORD ADDRESSREGISTER NAMEDESCRIPTION RESETVALUE0x6800ADCCT

7、L15: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 Hardware reset; x denotes a “dont care.” ADC控制寄存器(ADCCTL):发送转换通道号

8、和启动命令,然后循环等待转换结果,最后将结果保存。表2 ADC控制寄存器ADCCTL位字段数值说明15ADCSTART01转换开始位无效转换开始。在转换结束后,如果ADCSTART位不为高,模数转换器自动进入关电模式14-12CHSELECT000001010011100-111选择模拟输入通道选择AIN0通道选择AIN1通道选择AIN2通道(BGA封装)选择AIN3通道(BGA封装)所有通道关闭11-0Reserved保留,读时总为0 ADC数据寄存器(ADCDATA):只读寄存器,显示AD转换是否正在进行中以及通道号,存放采样数据。表3 ADC数据寄存器ADCDATA位字段数值说明15AD

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

10、同CONRATEDIV字段一起决定采样和保持周期ADC Sample and Hold Period =(ADC Clock Period) (2( CONVRATEDIV + 1 + SAMPTIMEDIV)7-4Reserved保留3-0CONRATEDIV0000-1111转换时钟分频字段,该字段同SAMPTIMEDIV字段一起决定采样和保持周期ADC Conversion Clock = (ADC Clock) / (2 (CONVRATEDIV + 1) ADC时钟控制寄存器(ADCCLKCTL):存放CPU时钟分频数,并确定是否将ADC置于低功耗状态。表5 ADC时钟控制寄存器AD

11、CCLKCTL 位字段数值说明15-9Reserved保留8IDLEEN01模数转换器时钟使能位时钟使能在运行休眠指令时时钟停止7-0CPUCLKDIV0-255系统时钟分频字段ADC Clock = (CPU Clock) / (CPUCLKDIV + 1)(二)FIR 滤波器设计原理本设计要求设计FIR低通或高通滤波器。低通滤波器的幅度响应和性能如图3所示。图3 低通滤波器的幅度响应和性能p为 通带截止频率,s为阻带截止频率,c为截止频率。p峰值通带波纹。s为最小阻带衰减。有限冲激响应数字滤波器设计详细的基础理论参考相关书籍。(三)FIR滤波的DSP程序设计FIR滤波器输出y(n)是输入数

12、据和系数的卷积和。任何时候进行计算,都需要把数据和相对应的系数相乘,再累加到输出结果中。 FIR滤波器中,输入信号在每个采样时间T过后都发生改变。也就是说,x(n)将在T时候过后,成为x(n-1),然后是x(n-2),直到该数据被抛弃。利用公式计算本次实验AD采样频率DSP的CPU周期选择为135MHz,采样/保持周期为45sADC Clock = (CPU Clock) / (CPUCLKDIV + 1)= 135MHz/36=3.75MHz,则CPUCLKDIV=35ADC Conversion Clock = (ADC Clock) / (2 (CONVRATEDIV + 1)=3.75

13、 MHz/2=1.875 MHzADC 转换时间 = 13 (1 / ADC Conversion Clock)= 13 (1 / (1.875 MHz) = 6.933sADC整个转换时间= 45s+6.933s=51.933s 采样率=1000000/51.933=19.255 kHz21.5kHz 满足设计要求第三章FIR数字低通滤波器的MATLAB设计1. 采用MATLAB设计FIR滤波器采用MATLAB设计FIR低通或高通滤波器并导出滤波器系数。技术指标按照1中的设计要求自行确定,应确定的设计指标包括:通带截止频率、阻带截止频率、峰值通带波纹、最小阻带衰减和采样频率。得到32位单精度

14、浮点和Q15格式的FIR滤波器系数。显示FIR滤波器的幅频响应,要求幅频响应满足设计指标。利用滤波器设计与分析工具设计滤波器,可以方便的得到所需的滤波器。该方法按照如下步骤来实现: 在MATLAB 的Command Window 下键入fdatool ,打开MATLAB的滤波器设计与分析工具。 在滤波器对话框中设置滤波器参数,Fs=19255Hz,Fpass=1000Hz,Fstop=2000Hz。 幅度规格分贝单位缺省Astop为80,相当于线性单位阻带波纹Dstop为0.0001,减小Astop可以减小滤波器的长度。 单击“Design Filter”按钮, 显示出滤波器的幅度响应。 在“

15、Targets”菜单,选择 “Generate C Header ”子菜单,在“Generate C Header” 对话框中设置变量名和数据类型,单击“Generate”按钮即可将滤波器参数输出到指定的文件中。 32位单精度浮点输出选择Single-precision float。 Q15定点格式输出选择Signed 16-bit interger。 图4 MATLAB设计出的低通滤波器的幅度响应第四章 ADC信号采集和滤波DSP程序设计1. 基本步骤将4中设计的32位单精度浮点FIR滤波器系数导入DSP程序。编写和调试DSP FIR 滤波的浮点实现C函数,对输入信号进行移位,通过卷积对输入

16、的信号。利用设计的滤波器系数,调用DSP FIR 滤波的浮点实现C函数,实现对输入的两路信号的滤波。加载程序,设置断点,选择菜单ViewGraphTime/Frequency显示采集信号和滤波后信号的时域和频域图形。将TI的DSPLIB fir2函数的汇编源代码文件fir2.asm添加到工程中。该函数为利用双MAC手工优化、Q15定点汇编实现FIR 滤波,效率大大提高。该函数输入信号、滤波器的系数均为Q15的定点,故需将4中设计的Q15定点格式FIR滤波器系数导入DSP程序。C语言程序调用fir2函数,实现对输入的两路信号的滤波。加载、调试程序,显示滤波结果。重新加载程序, 选择菜单命令Pro

17、fileSetup,开始新的剖析会话。鼠标点击“Enable/Disable Profiling” 按钮使能剖析,鼠标点击“Enable/Disable All Functions” 按钮使能所有函数。选择菜单ProfileViewer,按F5 运行程序,显示剖析结果,比较C语言的浮点实现。2. 实验结果 图5 AD信号采集两路正弦信号 图6 两路信号混叠时域图及32位单精度浮点输出频域图图7 两路信号混叠时域图及Q15定点格式输出频域图图8混叠信号低通滤波后时域图及Q15定点格式频域图图9混叠信号低通滤波后时域图及32位单精度浮点频域图 图9 nADC0,nADC1时域图显示参数设置 图10

18、 混叠信号Q15定点格式输出频域时域图显示参数设置结束语通过本次实验我掌握了TMS320VC5509A片内模数转换器(ADC)的控制方法,也初步掌握了TI DSP 系统的软件开发,本次实验成功采用MATLAB设计出了FIR数字低通滤波器,并且成功对采集的信号进行了FIR滤波。本次实验运用了C语言和汇编语言的混合编程,也复习了c语言中的相关知识。本次实验也暴露出了我在学习上的一些问题,首先是数字信号处理这门课程的学习不够到位,有许多知识点还未学到位,有很多地方只是似懂非懂,在实验的过程中很多时候需要问老师同学得到解决。同时c语言掌握的也不好,以后的学习过程需要脚踏实地一步一个脚印。参考文献1 汪

19、春梅, 孙洪波. TMS320C55x DSP原理及应用(第 3 版). 北京: 电子工业出版社, 2011.2 Texas Instruments Incorporated. TMS320VC5507/5509 DSP Analog-to-Digital Converter (ADC) Reference GuideOL. Texas Instruments Incorporated, SPRU586B, 2004. .3 Texas Instruments Incorporated. TMS320VC5509A Fixed-Point Digital Signal Processor. T

20、exas Instruments Incorporated, SPRS205K, 2008. .4 DSP原理与应用课程讲义.5 瑞泰创新公司. ICETEKVC5509-A评估板硬件使用指导V3.1. 北京:瑞泰创新公司, 2013.6 瑞泰创新公司. ICETEK-VC5509-A-USB-EDU教学实验系统使用指导V3.1. 北京:瑞泰创新公司, 2013.7 瑞泰创新公司. ICETEKVC5509-A-USB-EDU教学实验系统软件实验指导V3.1. 北京:瑞泰创新公司, 2013.8 谭浩强. C程序设计(第三版)M. 北京: 清华大学出版社, 2005.9 Texas Instr

21、uments Incorporated. Code Composer Studio Help. 10 Texas Instruments Incorporated. TMS320C55x DSP Programmers GuideOL. Texas Instruments Incorporated, SPRU376A, 2001. . 11 Texas Instruments Incorporated. TMS320C55x Optimizing C/C+ Compiler Users Guide OL. Texas Instruments Incorporated, SPRU281F, 20

22、03. .12 Texas Instruments Incorporated. TMS320C55x DSP Peripherals Overview Reference Guide. Texas Instruments Incorporated. SPRU317K,2011. .13 Texas Instruments Incorporated. TMS320C55x DSP Library Programmers ReferenceOL. Texas Instruments, SPRU422J, 2000, Revised 2013. .14 Sen M. Kuo, Bob H. Lee.

23、 Real-Time Digital Signal Processing Implementations, Applications and Experiments With the TMS320C55x M. 北京: 清华大学出版社, 2003.15 焦瑞莉等编著. 数字信号处理M. 北京: 机械工业出版社. 2011.附录 程序源代码Main.c#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.hvoid InitADC();void wait( unsigned int cycles );void EnableAP

24、LL( );int nADC0256,nADC1256;int mixQ15256;float mixfloat256;int FIROUTQ15256;int DBBufferQ1550;float Bufferfloat50;float FIROUTfloat256;const int BhQ1550 = 9, 22, 42, 69, 96, 115, 116, 85, 13, -107, -268, -456, -640, -781, -833, -752, -505, -77, 524, 1258, 2064, 2862, 3561, 4082, 4360, 4360, 4082, 3

25、561, 2862, 2064, 1258, 524, -77, -505, -752, -833, -781, -640, -456, -268, -107, 13, 85, 116, 115, 96, 69, 42, 22, 9;const float Bhfloat50 = 0.000287458417,0.0006711401511, 0.001296777162, 0.002095081378, 0.002920241794, 0.003516058903, 0.00353578967, 0.002599096159, 0.000384017796,-0.003258500714,

26、-0.008192501962, -0.01391467359, -0.01953443512, -0.02383529581, -0.02542546391, -0.02296281047, -0.0154193975,-0.002337040845, 0.01598187536, 0.03839777783, 0.06300126761, 0.08732704073, 0.1086880341, 0.124574326, 0.133045882, 0.133045882, 0.124574326, 0.1086880341, 0.08732704073, 0.06300126761, 0.

27、03839777783, 0.01598187536,-0.002337040845, -0.0154193975, -0.02296281047, -0.02542546391, -0.02383529581, -0.01953443512, -0.01391467359,-0.008192501962, -0.003258500714, 0.000384017796, 0.002599096159, 0.00353578967, 0.003516058903, 0.002920241794, 0.002095081378, 0.001296777162,0.0006711401511, 0

28、.000287458417;main() int i; unsigned int uWork; EnableAPLL(); SDRAM_init(); InitADC(); PLL_Init(135); for (i=0;i51;i+) DBBufferQ15i=0; for (i=0;i51;i+) Bufferfloati=0; while ( 1 ) for ( i=0;i256;i+ ) ADCCTL=0x8000; / 启动AD转换,通道0 do uWork=ADCDATA; while ( uWork&0x8000 ); nADC0i=uWork&0x0fff; ADCCTL=0x9000; / 启动AD转换,通道1 do uWork=ADCDATA; while ( uWork&0x8000 ); nADC1i=uWork&0x0fff; mixQ15i=(nADC0i+nADC1i-1024)*32; mixfloati=(float)(nADC0i+nADC1i-1024)/1024;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1