DSP-AD采集与显示

上传人:daj****de 文档编号:51488233 上传时间:2022-01-26 格式:DOCX 页数:13 大小:42.42KB
收藏 版权申诉 举报 下载
DSP-AD采集与显示_第1页
第1页 / 共13页
DSP-AD采集与显示_第2页
第2页 / 共13页
DSP-AD采集与显示_第3页
第3页 / 共13页
资源描述:

《DSP-AD采集与显示》由会员分享,可在线阅读,更多相关《DSP-AD采集与显示(13页珍藏版)》请在装配图网上搜索。

1、AD 采集与示波器显示AD 采集与示波器显示摘 要: 是将信号以数字方式表示并处理的理论和技术。这次实验 将正弦波、 方波、三角波经过 AD转换,将采集的数据通过 LCD显示出来。 通过 AD采集模块,将正弦波、方波、三角波由模数转换成数 据,经 FFT程序对其进行傅里叶变换,得到采集数据的频谱, 再经过 LCD模块。关键词 : DSP; AD采集; LCD显示; FFT一 设计任务和要求A. 通过 AD进行信号采集B. 信号显示在 LCD上,实现示波器的效果说明:信号采集:通过 AD进行信号采集处理:把采集到的信号转换为可以显示的数据输出 / 显示:显示在 LCD上二 实验开发环境1通用 P

2、C机一台,安装 Windows2000 或 WindowsXP 操作系统且已安装 常用软件 (如: WinRAR等 。2TMS320C55xx 评估板及相关电源。本实验采用 ICETEK-VC5509-A评估 板。3通用 DSP 仿真器一台及相关连线。本实验采用 ICETEK-5100USB仿真 器。4控制对象 (选用。本实验采用 ICETEK-CT控R 制板。5TI的 DSP 开发集成环境 Code Composer Studio。本实验采用 CCS2.21 for C5000。6仿真器驱动程序。7实验程序及相关文档。三 实验设备通用计算机一台, ICETEK-VC5509-ED实U验 箱。

3、四 实验原理1.将从信号源获取的模拟信号经过 A/D 转换后,再进行 FFT变换,然后输出。2.TMS320VC5509A 模 数 转 换 模 块 特 性 : 内置采样和保持的 10 位模数转换模块 ADC,最小转换时间为 500ns,最大采样率 为 21.5kHz 。 有 2 个 模 拟 输 入 通 道 ( AIN0AIN1 ) 。 采样和保持获取时间窗口有单独的预定标控制。3. 模 数 转 换 工 作 过 程 : 模数转换模块接到启动转换信号后,开始转换第一个通道的数据。 经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存。 转换结束,设置标志。 等待下一个启动信号。4. 模 数

4、转 换 的 程 序 控 制 : 模数转换相对于计算机来说是一个较为缓慢的过程。 一般采用中断方式启动转换或保存结果,这样在 CPU 忙于其他工作时可以少占用处理时间。设 计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需 要选择适当的触发转换的手段,也要能及时地保存结果。由于 TMS320VC5509A DSP芯片内的 A/D 转换精度是 10 位的,转换结果的低10 位为所需数值,所以在保留时应注意将结果的高 6 位去除 ,取出低 10 位 有效数字。5. FFT 的 原 理 和 参 数 生 成 公 式FFT 并不是一种新的变换,它是离散傅立叶变换( DFT)的一种快速算法。

5、由于我 们在计算 DFT 时一次复数乘法需用四次实数乘法和二次实数加法; 一次复数加法 则需二次实数加法。每运算一个X( k)需要 4N 次复数乘法及 2N+2(N-1) =2( 2N-1)次实数加法。所以整个 DFT 运算总共需要 4N2 次实数乘法和 N*2(2N- 1=2N(2N-1次实数加法。如此一来,计算时乘法次数和加法次数都是和 N2 成正比 的,当 N很大时,运算量是可观的,因而需要改进对 DFT 的算法减少运算速度。根据傅立叶变换的对称性和周期性,我们可以将DFT 运算中有些项合并我们先设序列长度为 N=2L,L 为整数。将 N=2L 的序列 x(n(n=0,1,, N-1,按

6、 N 的奇偶分成两组,也就是说我们将一个 N 点的 DFT 分解成两个 N/2 点的 DFT,他 们 又 重 新 组 合 成 一 个 如 下 式 所 表 达 的 N 点 DFT :一般来说,输入被假定为连续的。当输入为纯粹的实数的时候,我们就可以利用左 右 对 称 的 特 性 更 好 的 计 算 DFT我们称这样的 RFFT 优化算法是包装算法:首先 2N 点实数的连续输入称为“进 包”。其次 N点的 FFT 被连续运行。最后作为结果产生的 N 点的合成输出是“打 开 ” 成 为 最 初 的 与 DFT 相 符 合 的 2N 点 输 入 。使用这一思想,我们可以划分 FFT 的大小,它有一半花

7、费在包装输入 O( N)的操 作和打开输出上。这样的 RFFT 算法和一般的 FFT 算法同样迅速,计算速度几乎都 达到了两次 DFT的连续输入。6. 液晶显示屏的结构实验箱左上方有一个长方形液晶屏,由 64128 个点阵构成。显示时,每 个点阵对应一个 2 进制数,数为 0,显示一点;为 1,则不显示。通过不同位置 显示与不显示,可以显示数字、图形、汉字等。每个点阵对应的 2 进制数, 64128个点阵,则对应 64128bit 空间1)将液晶分为两块:左半屏和右半屏,每块 64642)每列 64 个点阵, 8 个点阵为一部分,分为 8 部分,用一个 byte 控制一个 部分,这个 byte

8、 中哪个 bit 为 1,则显示;为 0,则不显示。3)每个半屏分为 8 页, 64 列。4)通过向某行的相邻 8 列输入显码,则可以显示数字五总体设计方案1.【系统总体设计思路】 本系统实现对输入的方波、正弦波、三角波等信号采集,经过 AD 转换后,对这些数字信号处理,最后通过 LCD 显示出来,达到基 本的示波器的效果。总体设计思路如图所示。系统包括信号源、 控制器模块 TMS320VC5509A 、信号检测采集模块、显示模块四部 分。1.2【功能描述】 通过信号源输入的方波、正弦波、三角波等信号采集,经过AD 转换后,对这些数字信号处理,最后通过 LCD 显示出来,达 到基本的示波器的效

9、果。之后,通过对信号进行 FFT 变换,将其 显示出来,同时显示 波形的最大值 /峰峰值,以及 XY 坐标网格。1.3【模块操作】AD采集部分 :1设置通道 0 信号源类型为正弦波,采集通道 0 的 128 个数据,并用 Graph 图形窗口观察。2对采集到的 128 个数据进行 FFT,得到其幅频特性数据,并用 Graph 图形 窗口观察。(额外验证的内容)3分别改变波形类型为:三角波和方波,重复步骤 1,2。4 设置波形类型为正弦波,改变波形的频率和振幅,重复步骤1、2,至少实验3 个不同频率和 3 个不同振幅。显示部分 :1将采集到的 128 列数据进行处理,进行运算。2将二维数组显示在

10、 64*128 的 LCD 上,显码数组。1.4 【结构框图】系统由 TMS320VC5509为A CPU的控制器、 LCD显示模块、信号源输入、 AD 采集 转换等模块构成。六 实验结论1.三角波2.正弦波七相关代码AD 采集命令:void InitADC(;void wait(unsigned int cycles;void InitADC(ADCCLKCTL=0x23; / 4MHz ADCLKADCCLKDIV=0x4f00;void wait( unsigned int cyclesint i;for ( i = 0 ; i cycles ; i+ LCD 显示左半屏:LCD 是 6

11、4*128 的点阵,通过对 LCD 显示阵列的分析,由于输入信号的幅度范围 是 01024,故用 1024/16,得到 1 个点阵代表 64个幅度值,记为 buffer,然后用 buffer%8,得到该列的页数,而用 buffer/8 得到余数就是在页数上的具体点阵位buffer=nADCj/16; m=buffer/8;n=buffer%8;LCD 显示右半屏:对数据个数进行判断,若个数大于等于 64,则设置起始列的位置为 CTRLCDCMDR=LCDCMDVERADDRESS+j-64;选择显示 FFT 的频谱图 将采集到的信号进行 FFT 变换后,得到 FFT 频谱图 void Init

12、ForFFT(int i;for ( i=0;i sin_tabi=sin(PI*2*i/SAMPLENUMBER; cos_tabi=cos(PI*2*i/SAMPLENUMBER;void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER 得到的 FFT 频谱图,送入 LCD 显示,显示方法同 ADC-LCD 显示。 3.3程序代码:#include myapp.h#include ICETEK-VC5509-EDU.h#include scancode.h#include#define PI 3.1415926 #define SAM

13、PLENUMBER 128 #define LCDDELAY 1 void InitForFFT(; void lcd(;/int INPUTSAMPLENUMBER;int DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER; void InitForFFT(;void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER; void InitADC(;u

14、nsigned int nADC128;main(int j; unsigned int uWork;int i;InitForFFT(; CLK_init(;SDRAM_init(;InitCTR(;/ CloseCTR(; SetDSPPLL(SPEED144MHz;TurnOnLCD(; / 打开显示屏LCDCLS(; / 清除显示内存while ( 1/ADfor ( j=0;j128;j+ /采集 128个数据ADCCTL=0x8000; / 启动 AD 转换,通道 0douWork=ADCDATA; while ( uWork&0x8000 ; nADCj=uWork&0x0fff

15、;LCDCLS(; / 清除显示内存LCDCLS(;lcd(;for ( i=0;i fWaveRi=nADCi;fWaveIi=0.0f;wi=0.0f; FFT(fWaveR,fWaveI; /对采集到的数据进行 FFT 处理 for ( i=0;iDATAi=wi;asm( nop;void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER /FFT 处理函数int x0,x1,x2,x3,x4,x5,x6,xx;int i,j,k,b,p,L;float TR,TI,temp;for ( i=0;ix0=x1=x2=x3=x4=x5

16、=x6=0;x0=i&0x01; x1=(i/2&0x01; x2=(i/4&0x01; x3=(i/8&0x01;x4=(i/16&0x01; x5=(i/32&0x01; x6=(i/64&0x01;xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6; dataIxx=dataRi;for ( i=0;idataRi=dataIi; dataIi=0;for ( L=1;L0b=b*2; i-; /* b= 2(L-1 */for ( j=0;j0 /* p=pow(2,7-L*j; */p=p*2; i-;p=p*j;for ( k=j;k128;k=k+2*b

17、 /* for (3 */TR=dataRk; TI=dataIk; temp=dataRk+b; dataRk=dataRk+dataRk+b*cos_tabp+dataIk+b*sin_tabp; dataIk=dataIk-dataRk+b*sin_tabp+dataIk+b*cos_tabp; dataRk+b=TR-dataRk+b*cos_tabp-dataIk+b*sin_tabp; dataIk+b=TI+temp*sin_tabp-dataIk+b*cos_tabp; /* END for (3 */ /* END for (2 */ /* END for (1 */for

18、( i=0;iwi=sqrt(dataRi*dataRi+dataIi*dataIi;void InitForFFT(int i;for ( i=0;isin_tabi=sin(PI*2*i/SAMPLENUMBER; cos_tabi=cos(PI*2*i/SAMPLENUMBER;void InitADC(ADCCLKCTL=0x23; / 4MHz ADCLKADCCLKDIV=0x4f00;void lcd( /LCD 显示函数int j,buffer,m,n;设置显示起始行CTRLCDCMDR=LCDCMDSTARTLINE; /Delay(LCDDELAY;CTRLCDCR=0;D

19、elay(LCDDELAY;for (j=0;j128;j+ / 对 128 列数据进行显示buffer=nADCj/16; / 得到以 16 压缩后的信号幅值 m=buffer/8; / 得到页数 n=buffer%8; / 余数为具体页数内的点阵位置 if(j64CTRLCDCMDR=LCDCMDVERADDRESS+j; / 起始列 =0 Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY; CTRLCDCMDR=LCDCMDPAGE+7-m; / 设置操作页 =0 Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY;CTRLC

20、DLCR=ledkey0n; / 页内的点阵位置 Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY;Delay(512;elseCTRLCDCMDR=LCDCMDVERADDRESS+j-64; / 起始列 =0 Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY;CTRLCDCMDR=LCDCMDPAGE+7-m; / 设置操作页 =0 Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY;CTRLCDRCR=ledkey0n;Delay(LCDDELAY;CTRLCDCR=0;Delay(LCDDELAY;Delay(512;void LCDCLS( / 刷新清屏函数int i,j;LCDCMD(LCDCMDSTARTLINE;for ( i=0;i8;i+LCDCMD(LCDCMDPAGE+i;LCDCMD(LCDCMDVERADDRESS;for ( j=0;j64;j+LCDWriteLeft(0; / 左半屏刷新Delay(1;LCDCMD(LCDCMDPAGE+i; LCDCMD(LCDCMDVERADDRESS; for ( j=0;j64;j+LCDWriteRight(0; / 右半屏刷新Delay(1;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!