音频信号的FFT分析Word格式.docx
- 文档编号:14255001
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:20
- 大小:92.18KB
音频信号的FFT分析Word格式.docx
《音频信号的FFT分析Word格式.docx》由会员分享,可在线阅读,更多相关《音频信号的FFT分析Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
2)、期信号时域和频域曲线图:
16
八、实验心得:
ﻩ16
一、实验目的:
1、熟悉CCS集成开发环
2、熟悉SEED-DTK实验环境
3、加深对DFT算法原理和基本性质的理解
4、学习用FFT对连续信号和时域信号地频谱分析的方法
5、熟悉FFT的算法原理和FFT子程序的算法流程和应用
6、了解DSP处理FFT算法的特殊寻址方式
1、DSP的初始化
2、A/D采样
3、FFT的位倒序程序
4、FFT的蝶形运算程序
5、求功率谱的程序
6、串口发送与接收
三、实验程序功能与结构说明:
在数字滤波器实验中,主要包含以下文件:
1、DTK_BPD_FFT.c:
这是实验的主程序,包含了包含定时器中断程序、AD中断程序、FFT参数的初始化,完成与SEED-MMI5402的系统的异步通讯、信号采集与FFT计算。
2、DSP28_Sci.c:
包含量了异步串口初始化程序。
3、DSP28_Adc.c:
包含了AD初始化。
4、DSP28_Defaultlsr.c:
包含了异步串口接收中断服务程序。
5、Cfft32c.asm、cfft32i.asm、rfft32br.asm、rfft32m.asm、rfft32s.asm、rfft32w.asm:
TI源代码。
6、SRAM.cmd:
声明了系统的存贮器配置与程序各段的链接关系。
7、DTK_BPD_FFT.out:
DSP上可执行的程序,即实验程序。
在脱机(不接CCS)的情况下,可以首先进行实验的演示。
在实验选项的菜单下,选择FFT实验一项。
先择不使用CCS,确定后,LCD显示屏将显示“程序装载中,请稍侯”,并且用状态条显示程序装载进度,等待装载程序后,SEEDDEC2812单元的D3灯由闪烁变暗。
LCD显示屏将显示“FFT实验装载成功”。
一段时间后,可以看到在LCD上显示FFT前的原始信号与实验后的功率谱图,如下图(a与b)所示:
2、实验的调试:
1)、将DSP仿真器与计算机连接好:
2)、将DSP仿真器的JTAG插关与SEED-DEC2812单元的J1相连接
3)、启动计算机,当计算机启动后,打开SEED-DTKBPD的电源。
观察SEEK-DTK_IO单元的+5V、+3.3V、+15V、-15V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。
4)、在实验选项的菜单下,选择定时器实验一项,选择使用CCS。
5)、打开CCS,进入CCS的操作环境。
6)、装入DTK_BPD_FFT.wks调试环境。
7)、进行调度,通过ProbePoints来观察FFT的结果。
六、实验主要程序:
1、主函数:
void main(void)
{
/*初始化系统*/
ﻩInitSysCtrl();
ﻩ/*关中断*/
DINT;
IER=0x0000;
IFR=0x0000;
/*初始化PIE中断*/
InitPieCtrl();
ﻩ/*初始化PIE中断矢量表*/
ﻩInitPieVectTable();
ﻩ
ﻩ/*初始化SCIA寄存器*/
InitSci();
//初始化cputimer
InitCpuTimers();
for(i= 0;
i<
0x104;
i++)
{
ﻩuart[i]=0x5555;
ﻩuarts[i] = 0x5555;
ﻩ}
ﻩfor(i=0;
i<
32;
i++)
{
ﻩﻩsys_statbuff[i]=0;
//系统标志buff清0
}
CommandSave=0;
/*设置中断服务程序入口地址*/
EALLOW;
//Thisisneeded to writeto EALLOWprotectedregisters
PieVectTable.TXAINT= &
SCITXINTA_ISR;
PieVectTable.RXAINT =&
SCIRXINTA_ISR;
ﻩPieVectTable.TINT2=&ISRTimer2;
ﻩPieVectTable.ADCINT=&
ad;
ﻩEDIS;
//Thisisneededtodisable writetoEALLOWprotectedregisters
//
/*开中断*/
ﻩIER|=M_INT9;
//SCI中断
IER|= M_INT1;
//ADC中断
EINT;
//EnableGlobalinterruptINTM
ﻩERTM;
ﻩ//EnableGlobalrealtimeinterrupt DBGM
ﻩLED1_ON;
*LED3=0;
ﻩ/*实验主控程序*/
psend = (PuartForDec5416)(&
uarts[0]);
precieve = (PuartForDec5416)(&
uart[0]);
ﻩpadset=(PAdConfig)(&adset[0]);
/*通知主机,系统准备好*/
ﻩpsend->Length =FRAMLONGTH;
psend->
Type=UARTCOMMAND;
ﻩpsend->
Data[0]=INITOVER;
ﻩpsend->
Mutul=UARTCONT;
uart_send();
for(;
;
)
ﻩ{ﻩ
if(CommandSave==FFTDATASEND)
ﻩ{
ﻩCommandSave=0;
/*不满buffer的数据*/
ﻩﻩif(datasendlength<
= 256)
ﻩ{
ﻩfor(i=0;
datasendlength;
ﻩﻩ{
ﻩﻩpsend->
Data[i] =Ad_data[i+sendcount*256];
ﻩﻩ
ﻩﻩ}
ﻩpsend->
Length=datasendlength;
ﻩﻩpsend->
Type=UARTDATA;
ﻩﻩpsend->
Mutul=UARTCONT;
ﻩuart_send();
ﻩﻩ
ﻩ}
ﻩelse
ﻩﻩ{
ﻩﻩ/*满buffer数据*/
ﻩfor(k=0;
k<
256;
k++)
ﻩ {
ﻩﻩ ﻩpsend->
Data[k] = Ad_data[k+sendcount*256];
ﻩ
}
ﻩﻩ psend->
Length = 256;
ﻩﻩﻩpsend->
Type=UARTDATA;
ﻩﻩﻩﻩpsend->
Mutul= UARTMUTL;
uart_send();
datasendlength=datasendlength-256;
ﻩﻩﻩ sendcount++;
ﻩ}
ﻩ}
ﻩuart_s=uart_recive();
ﻩ/*返回值 0:
接受完成 ﻩﻩ */
ﻩ/* 1:
数据未准备好 */
ﻩ/* 3:
较验出错 */
if(uart_s==1)
ﻩﻩ{
ﻩﻩcontinue;
ﻩ}ﻩﻩ
ﻩ/*数据较验出错*/
ﻩﻩif(uart_s==3)
ﻩ{
ﻩfor(i=0;
0x104;
ﻩﻩ{
ﻩﻩuart[i] = 0x5555;
ﻩﻩﻩ
ﻩ}
ﻩﻩ/*通知主机程序通讯出错,准备重发*/
ﻩﻩpsend->
Length = FRAMLONGTH;
ﻩpsend->Type=UARTCOMMAND;
ﻩpsend->
Data[0]=RECIEVEERROR;
ﻩﻩpsend->Mutul = UARTCONT;
ﻩuart_send();
ﻩﻩ
ﻩﻩcontinue;
}
ﻩ/*接收完成*/
ﻩﻩif(uart_s==0)
ﻩ/*不是命令帧*/
ﻩif(precieve->
Type!
=UARTCOMMAND)
ﻩﻩ/*无效命令*/
ﻩﻩpsend->Length=FRAMLONGTH;
ﻩpsend->
Type =UARTCOMMAND;
ﻩﻩﻩpsend->
Data[0]= COMMANDNODO;
ﻩpsend->
Mutul=UARTCONT;
ﻩﻩuart_send();
ﻩﻩﻩprecieve->
Type =UARTCOMMAND;
ﻩ
ﻩﻩcontinue;
}
ﻩﻩ
/*接收从主机的数据*/
ﻩﻩprecieve =(PuartForDec5416)(&
uart[0]);
switch(precieve->
Data[0])
ﻩ{
ﻩﻩ/*FFT设置*/
ﻩﻩcaseFFTSET:
ﻩﻩﻩfor(i=0;
3;
i++)
ﻩ{
ﻩadset[i]=precieve->
Data[i+1];
ﻩﻩ}
ﻩﻩﻩﻩ/*设置数据发送长度*/
ﻩdatasendlong = padset->
SampleLong;
ﻩﻩdatasendlength=3*datasendlong/2;
ﻩﻩﻩ
ﻩﻩprecieve->
Data[0]= 0;
ﻩﻩbreak;
/*启动AD采样和fft计算*/
ﻩﻩﻩcaseFFTSTART:
ﻩﻩﻩconvcount=0;
ﻩadconvover=0;
ﻩsendcount=0;
ﻩconvfirstN=1000;
ﻩﻩﻩ
ﻩ/*AD采样率*/
ﻩﻩswitch(padset->
SampleRate)
ﻩﻩ{
ﻩcaseADSAMPL8K:
//0xdﻩ//采样率为8k
ﻩDINT;
ﻩﻩﻩﻩ/*设置CPU*/
ﻩﻩﻩﻩConfigCpuTimer(&
CpuTimer2, 150, 125);
ﻩﻩﻩﻩﻩStartCpuTimer2();
ﻩﻩ/*开中断*/
ﻩIER|= M_INT14;
ﻩﻩﻩEINT;
ﻩﻩInitAdc();
ﻩﻩﻩﻩbreak;
ﻩcaseADSAMPL44K:
// 0x23ﻩﻩ//采样率为44k
ﻩDINT;
ﻩﻩﻩ/*设置CPU*/
ﻩﻩﻩConfigCpuTimer(&
CpuTimer2,150,22);
ﻩﻩﻩStartCpuTimer2();
ﻩﻩ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音频 信号 FFT 分析