logo资料库

四个关于DSP实验的报告包括源码.docx

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
一、单路,多路模数转换(AD)
一、实验目的
二、实验内容
三、实验步骤
四、实验主要源程序
五、实验结果及分析
二、有限冲击响应滤波器(FIR)算法实验
一、实验目的
二、实验内容
三、实验步骤
思、实验主要源程序
五、实验结果及分析
三、无限冲激响应滤波器(IIR)算法实验
一、实验目的
二、实验内容
三、实验步骤
四、实验主要源程序
五、实验结果及分析
四、快速傅立叶变换(FFT)算法实验
一、实验目的
二、实验内容
三、实验步骤
四、实验主要源程序
五、实验结果及分析
DSP 原理实验报告 中南大学信息科学与工程学院 专业班级: 电子信息 1002 班 学 姓 号: 0909100821 名: 邝 昀 指导老师: 陈 宁 2013 年 6 月 4 日星期二
目录 一、单路,多路模数转换(AD) .................................................................................................. 3 实验目的 .................................................................................................................... 3 一、 二、实验内容 ............................................................................................................................ 3 三、实验步骤 ............................................................................................................................ 4 四、实验主要源程序................................................................................................................ 6 五、实验结果及分析................................................................................................................ 8 二、有限冲击响应滤波器(FIR)算法实验..................................................................................9 一、实验目的 ............................................................................................................................ 9 二、实验内容 ............................................................................................................................ 9 三、实验步骤 .......................................................................................................................... 10 思、实验主要源程序.............................................................................................................. 11 五、实验结果及分析.............................................................................................................. 13 三、无限冲激响应滤波器(IIR)算法实验 ......................................................................................15 一、实验目的 .......................................................................................................................... 15 二、实验内容 .......................................................................................................................... 15 三、实验步骤 .......................................................................................................................... 16 四、实验主要源程序.............................................................................................................. 17 五、实验结果及分析.............................................................................................................. 19 四、快速傅立叶变换(FFT)算法实验 ............................................................................................ 21 一、实验目的 .......................................................................................................................... 21 二、实验内容 .......................................................................................................................... 21 三、实验步骤 .......................................................................................................................... 22 四、实验主要源程序.............................................................................................................. 23 五、实验结果及分析.............................................................................................................. 26
一、单路,多路模数转换(AD) 一、 实验目的 1.通过实验熟悉 F2812A 的定时器。 2.掌握 F2812A 片内 AD 的控制方法。 二、实验内容 1.TMS320F2812A 芯片自带模数转换模块特性 - 12 位模数转换模块 ADC,快速转换时间运行在 25mhz,ADC 时钟或 12.5MSPS。 -16 个模拟输入通道(AIN0—AIN15)。 -内置双采样-保持器 -采样幅度:0-3v,切记输入 ad 的信号不要超过这个范围,否则会烧坏 2812 芯片的。 2.模数模块介绍 ADC 模块有 16 个通道,可配置为两个独立的 8 通道模块以方便为事件管理器 A 和 B 服务。两个独立的 8 通道模块可以级连组成 16 通道模块。虽然有多个输入通道和两个序列 器,但在 ADC 内部只有一个转换器,同一时刻只有 1 路 ad 进行转换数据。 3.模数转换的程序控制 模数转换相对于计算机来说是一个较为缓慢的过程。一般采用中断方式启动转换或保存 结果,这样在 CPU 忙于其他工作时可以少占用处理时间。设计转换程序应首先考虑处理过 程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地 保存结果。 关于 TMS320F2812A DSP 芯片内的 A/D 转换器的详细结构和控制方法,请参见文档 spru060a.pdf。 4.实验程序流程图 开始 初始化 CPU 时钟、AD 采样时钟 启动 AD0 和 AD1 通道采集 中断中对 AD0 和 AD1 通道采集数据依次存入 缓冲区 Voltage1Voltage2
三、实验步骤 1.实验准备 (1)连接实验设备。 (2)准备信号源进行 AD 输入。 ①取出 2 根实验箱附带的信号线(如右图,两端均为双声道语音插头)。 ②用 1 根信号线连接实验箱左侧信号源的波形输出 A 端口和“A/D 输入”模块的 “ADCIN0”插座注意插头要插牢、到底。这样,信号源波形输出 A 的输出波形即可 送到 ICETEK–F2812-A 板的 AD 输入通道 0。 ③用 1 根信号线连接实验箱左侧信号源的波形输出 B 端口和“A/D 输入”模块的 “ADCIN1”插座注意插头要插牢、到底。这样,信号源波形输出 B 的输出波形即可 送到 ICETEK–F2812-A 板的 AD 输入通道 1。 正弦波 波 形 输 1K-10K 正弦波 1K-10K 波形频率选 幅值调 波 形 输 出 波 形 频 率 幅值调 ④设置波形输出 A: 图 3.2.3.3 - 向内侧按波形频率选择旋钮,直到标有正弦波的指示灯点亮。 - 上下调节波形频率选择旋钮,直到标有 1KHz-10KHz 的指示灯点亮。 - 调节幅值调整旋钮,将波形输出 A 的幅值调到最大。 ⑤设置波形输出 B: - 向内侧按波形频率选择旋钮,直到标有三角波的指示灯点亮。 - 上下调节波形频率选择旋钮,直到标有 1KHz-10KHz 的指示灯点亮。 - 调节幅值调整旋钮,将波形输出 B 的幅值调到最大。
2.设置 Code Composer Studio 3.3 在硬件仿真(Emulator)方式下运行 3. 启动 Code Composer Studio 3.3 选择菜单 Debug→Reset CPU。 4.打开工程文件 -工程目录:C:\ICETEK\F2812\DSP281x_examples\Lab0305-AD\ ADC.pjt。 -在项目浏览器中,双击 adc.c,打开 adc.c 文件,浏览该文件内容,理解各语句作 用。 5.编译、下载程序。 6.打开观察窗口 -选择菜单“View”、“Graph”、“Time/Frequency…”做如下设置,然后单击“OK” 按钮; -选择菜单“View”、“Graph”、“Time/Frequency…”做如下设置,然后单击“OK”按钮; 图 3.2.3.4 观察窗口设置 1 图 3.2.3.4 观察窗口设置 2 -在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。
通过设置,我们打开了两个图形窗口观察两个通道模数转换的结果。 7. 设置信号源 由于模数输入信号未经任何转换就进入 DSP,所以必须保证输入的模拟信号的幅 度在 0-3V 之间。必须用示波器检测信号范围,保证最小值 0V 最大值 3 V,否则容易 损坏 DSP 芯片的模数采集模块。 8. 运行程序观察结果 -单击“Debug”菜单,选择“Real–time Mode”,然后选择 Continuous Refresh 再单击 “Run”项,运行程序; -停止运行,观察“ADCIN0”、“ADCIN1”窗口中的图形显示; -适当改变信号源,按 F5 健再次运行,停止后观察图形窗口中的显示。注意:输入 信号的频率不能大于 10KHz,否则会引起混叠失真,而无法观察到波形,如果有兴 趣,可以试着做一下,观察采样失真后的图形。 四、实验主要源程序 #include "DSP281x_Device.h" #include "DSP281x_Examples.h" // DSP281x Headerfile Include File // DSP281x Examples Include File // Prototype statements for functions found within this file. interrupt void adc_isr(void); // Global variables used in this example: Uint16 LoopCount; Uint16 ConversionCount; Uint16 Voltage1[1024]; Uint16 Voltage2[1024]; main() { InitSysCtrl();//初始化 cpu DINT;//关中断 InitPieCtrl();//初始化 pie 寄存器 IER = 0x0000;//禁止所有的中断 IFR = 0x0000; InitPieVectTable();//初始化 pie 中断向量表 // Interrupts that are used in this example are re-mapped to // ISR functions found within this file. // This is needed to write to EALLOW protected register // This is needed to disable write to EALLOW protected registers EALLOW; PieVectTable.ADCINT = &adc_isr; EDIS; AdcRegs.ADCTRL1.bit.RESET = 1; asm(" RPT #10 || NOP"); reset to take effect AdcRegs.ADCTRL3.all = 0x00C8; // first power-up ref and bandgap circuits // Reset the ADC module // Must wait 12-cycles (worst-case) for ADC
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // Power up bandgap/reference circuitry // Power up rest of ADC // Enable ADCINT in PIE PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; // Enable CPU Interrupt 1 EINT; ERTM; LoopCount = 0; ConversionCount = 0; // Enable Global interrupt INTM // Enable Global realtime interrupt DBGM // Configure ADC AdcRegs.ADCMAXCONV.all = 0x0001; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA3 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; // Setup ADCINA2 as 2nd SEQ1 conv. AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable EVASOC to start SEQ1 // Enable SEQ1 interrupt (every EOS) // Setup 2 conv's on SEQ1 // Configure EVA // Assumes EVA Clock is already enabled in InitSysCtrl(); EvaRegs.T1CMPR = 0x0080; EvaRegs.T1PR = 0x10; EvaRegs.GPTCONA.bit.T1TOADC = 1; EvaRegs.T1CON.all = 0x1042; // Setup T1 compare value // Setup period register // Enable EVASOC in EVA // Enable timer 1 compare (upcount mode) // Wait for ADC interrupt while(1) { LoopCount++; } } interrupt void { adc_isr(void) Voltage1[ConversionCount] = AdcRegs.ADCRESULT0 >>4; Voltage2[ConversionCount] = AdcRegs.ADCRESULT1 >>4; // If 40 conversions have been logged, start over if(ConversionCount == 1023) { ConversionCount = 0; } else ConversionCount++; // Reinitialize for next ADC sequence AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; return; } // Reset SEQ1 // Clear INT SEQ1 bit // Acknowledge interrupt to PIE
五、实验结果及分析 1、输出 A 口为 1~10KHZ 频率的正弦波,输出 B 口为频率为 1~10KHZ 的三角波 2、输出 A 口的频率为 1~10KHZ 的三角波,输出 B 口为频率为 1~10KHZ 的正弦波
分享到:
收藏