DSP课设AD数据采集分析与语音分析设计.docx

上传人:b****1 文档编号:2300823 上传时间:2022-10-28 格式:DOCX 页数:20 大小:858.29KB
下载 相关 举报
DSP课设AD数据采集分析与语音分析设计.docx_第1页
第1页 / 共20页
DSP课设AD数据采集分析与语音分析设计.docx_第2页
第2页 / 共20页
DSP课设AD数据采集分析与语音分析设计.docx_第3页
第3页 / 共20页
DSP课设AD数据采集分析与语音分析设计.docx_第4页
第4页 / 共20页
DSP课设AD数据采集分析与语音分析设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

DSP课设AD数据采集分析与语音分析设计.docx

《DSP课设AD数据采集分析与语音分析设计.docx》由会员分享,可在线阅读,更多相关《DSP课设AD数据采集分析与语音分析设计.docx(20页珍藏版)》请在冰豆网上搜索。

DSP课设AD数据采集分析与语音分析设计.docx

DSP课设AD数据采集分析与语音分析设计

 

课程设计报告

(2012—2013年度第2学期)

 

名称:

DSP课程设计

题目:

AD数据采集分析与语音分析设计

院系:

电子与电气工程学院

班级:

电子1002班

学号:

学生姓名:

指导教师:

设计周数:

2周

成绩:

日期:

2013年07月11日

 

一、课设目的

⑴学习利用C5409和AD做数据采集和信号分析。

⑵熟悉CCS编程流程,并利用CCS查看芯片内存及数据。

⑶熟悉对信号采集分析这一系列流程。

⑷了解ICETEK–VC5509-A板上语音codec芯片TLV320AIC23的设计和程序控制原理。

⑸了解数字回声产生原理、编程及其参数选择、控制。

二、课设内容

1、通过查询法对DSP实验箱上信号源进行AD采样,同时在液晶上单点显示AD采样值,将采集结果用CCS的显示波形功能进行显示

2、对AD采样结果进行FFT分析和FIR滤波分析

3、利用板上语音codec芯片产生数字回声

三、系统硬件设计

3.1系统所需模块

为完成课设要求,需用实验箱上两片8038信号发生器,外扩键盘,12864液晶,AD模块,

TLV320AIC23语音模块

(信号源)

 

板上是以CPLD作为桥梁,对外扩设备进行控制

 

四、软件设计

4.1软件思想概述

根据课设要求,需要查询按键的键值,通过键值来确定dsp进行AD全周波采样、单点采样、数字回声、FFT、FIR滤波等。

为方便代码阅读,将按键查询封装为key_scan(),主函数一直查询按键状态,按下“1”,进行数字回声;按下“2”,进行全周波采样并FFT分析;按下“3”,进行FIR的信号滤波。

4.2程序流程图

五、结果分析

5.1全周波AD采样及FFT分析

利用nADC0通道对信号源1进行AD采样256点,波形为正弦波,下图为FFT分析

由图可知,系统能够比较好的采到信号;通过DATAS的fft显示于通过程序处理后得到的波形对比,整体波形趋势相对一致。

考虑到不可避免的噪声,得到的波形符合预期结果,程序正确。

5.2单点AD采样

选取AD的5位有效精度,按键一次,采取通道2信号的一个点。

5.3FIR的信号滤波

选用的FIR滤波器为带通滤波器,带通滤波500Hz-5kHz,增益40dB。

对AD进行连续采样,每次采样首先设置AD转换控制寄存器(ADCCTL),发送转换通道号和启动命令,然后循环等待转换结果,最后将结果保存。

由于需要进行实时混频,所以交替转换通道0和通道1(ICETEK-VC5509-A实验箱上ADCIN2和ADCIN3)。

混频的波形通过FIR滤波器,得到输出波形。

5.4数字回声

通过调整uDelay和uEffect的取值可以调节回声的间隔及音效强度,取值在0-1023范围内。

六、系统评估

从实现效果上说,系统能较好的完成课设要求。

通过配置AD寄存器,查询按键,对采样结果进行实时处理。

从性能上说,系统的CPU利用率很高,几乎不存在任务等待的情况。

程序运行的稳定性强,不容易跑飞。

从系统的时序上,条理清晰,代码可读性强。

七、设计历程及心得

为期两周的DSP设计结束了。

感谢老师的不断点播和细心讲解,不仅让我在设计过程中有了明确的设计方案和目的,又使我在程序设计这方面有了长足的提高。

从开始慢慢接触已经快忘光的信号算法,到最后慢慢综合一个个算法案例。

对数字信号处理有了更深的理解。

刚开始,遇到的堆栈分配、向量表错误,导致课设进度停滞不前,后来在修改cmd文件中DDRAM后,程序才得以编译无错。

在设计过程,对实验箱上外扩设备有了一定了解,比如板上液晶为慢速扫描,一旦系统时钟过快,便有可能导致液晶乱码。

设计过程中遇到了不少大大小小的问题,最终在老师的帮助和自己的努力下,把麻烦一一解决。

不仅在期终学到许多新方法,而且在程序设计思路上又有不少的提高。

我觉得此次课程设计是大学三年来最有价值的一次课程设计了。

源程序

#defineLCDDELAY1

#include"myapp.h"

#include"ICETEK-VC5509-EDU.h"

#include"scancode.h"

#include"stdio.h"

#include"fir.h"

#include

#defineKEYDIR(*(unsignedint*)0x602800)

#defineCOL(*(unsignedint*)0x600803)

#defineROW(*(unsignedint*)0x600804)

#defineTEST(*(unsignedint*)0x600801)

#definePI3.1415926

#defineSAMPLENUMBER256

/*********************************************************************/

intINPUT[SAMPLENUMBER],DATAS[SAMPLENUMBER];

floatfWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER];

floatsin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER];

/********************************************************************/

voidInitForFFT();

voidFFT();

voidMakeWave();

voidFLYT();

voidInitADC();

voidADC1();

voidADC2();

voidwait(unsignedintcycles);

voidEnableAPLL();

voidInitMcBSP();

voidkey_scan();

voidFIR();

voidLCD_Init();

intSmenu_Disp();

/*******************************************************************/

unsignedintnADC0[256],nADC1,nADC10[NX],nADC00[NX];

inti=0;

unsignedintdbReturn;

unsignedcharflag=0;//转换完成标志

unsignedtable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

main()

{

//unsignedcharm;

//unsignedintuWork;

EnableAPLL();

PLL_Init(20);

SDRAM_init();

InitADC();

InitCTR();

InitMcBSP();

LCD_Init();

AIC23_Init();

while

(1)

{

key_scan();

}

}

/****************LCDInitial****************************/

voidLCD_Init()

{

wr_lcd(comm,0x30);/*30---基本指令动作*/

wr_lcd(comm,0x01);/*清屏,地址指针指向00H*/

wr_lcd(comm,0x06);/*光标的移动方向*/

wr_lcd(comm,0x0c);/*开显示,关游标*/

clrram();/*清DDRAM*/

Smenu();

Delay(2000);

wr_lcd(comm,0x01);

}

/*****************KEY_SCAN*********************************/

voidkey_scan()

{

for(i=0;i<4;i++)

{

COL=~(0x0001<

Delay(40);

dbReturn=ROW;

if((dbReturn&0x00f0)!

=0x00f0)

{

Delay(10);

if((dbReturn&0x00f0)!

=0x00f0)

{

dbReturn=dbReturn&0x00ff;

switch(dbReturn)

{

case0xee:

wr_lcd(dat,'D');break;//

case0xde:

wr_lcd(comm,0x01);break;

case0xbe:

wr_lcd(dat,'0');break;

case0x7e:

wr_lcd(dat,'*');break;

case0xed:

wr_lcd(dat,'C');break;//

case0xdd:

wr_lcd(dat,'9');break;

case0xbd:

wr_lcd(dat,'8');break;

case0x7d:

wr_lcd(dat,'7');break;

case0xeb:

wr_lcd(dat,'B');break;//

case0xdb:

wr_lcd(dat,'6');break;

case0xbb:

wr_lcd(dat,'5');break;

case0x7b:

//FIR对信号滤波

wr_lcd(comm,0x01);

wr_lcd(comm,0x30);

wr_lcd(comm,0x90);

wr_lcd(dat,0xA3);

wr_lcd(dat,0xC6);//"F"

wr_lcd(dat,0xA3);

wr_lcd(dat,0xC9);//"I"

wr_lcd(dat,0xA3);

wr_lcd(dat,0xD2);//"R"

wr_lcd(dat,0xC2);

wr_lcd(dat,0xCB);//"滤"

wr_lcd(dat,0xB2);

wr_lcd(dat,0xA8);//"波"

FIR();

asm("nop");

break;

case0xe7:

printf("A\n");break;

case0xd7:

//显示通道1单点采样值

wr_lcd(comm,0x01);

wr_lcd(comm,0x30);

wr_lcd(comm,0x80);//90表示0格91表示1格

wr_lcd(dat,0xB5);//"单"

wr_lcd(dat,0xA5);

wr_l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

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

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