1、音频信号的FFT分析音频信号的FT分析一、实验目的:2二、实验内容: 三、实验程序功能与结构说明: 3四、实验流程图: 五、实验步骤:41、实验演示:4六、实验主要程序: 5、主函数:52、中断程序:23、异步串口初始化程序: 14、D初始化:1七、实验结果:15、SEEDDEC212单元的D灯由闪烁变成常暗。52、可以看到失真比较大的FT波形,如下图所示: 151)、失真信号及频域图: 52)、期信号时域和频域曲线图: 6八、实验心得:6一、实验目的:1、熟悉CCS集成开发环2、熟悉SED-TK实验环境3、加深对T算法原理和基本性质的理解4、学习用FT对连续信号和时域信号地频谱分析的方法5、
2、熟悉FFT的算法原理和FF子程序的算法流程和应用6、了解DP处理FF算法的特殊寻址方式二、实验内容:1、S的初始化2、A/D采样3、FT的位倒序程序4、FT的蝶形运算程序5、求功率谱的程序6、串口发送与接收三、实验程序功能与结构说明:在数字滤波器实验中,主要包含以下文件:1、TKBPD_FFT.c:这是实验的主程序,包含了包含定时器中断程序、AD中断程序、FFT参数的初始化,完成与SEED-MMI540的系统的异步通讯、信号采集与FF计算。2、DSP8_Si.c:包含量了异步串口初始化程序。3、DS8Adc.:包含了AD初始化。4、DP28_efaultlrc:包含了异步串口接收中断服务程序。
3、5、Cftc.as、fftis、rft32b.sm、rfft32m.asm、ff32s.am、rff32.asm:I源代码。6、SRA.cmd:声明了系统的存贮器配置与程序各段的链接关系。7、DTK_BD_FFT.u:DSP上可执行的程序,即实验程序。四、实验流程图:五、实验步骤:1、实验演示:在脱机(不接CS)的情况下,可以首先进行实验的演示。在实验选项的菜单下,选择FF实验一项。先择不使用CCS,确定后,L显示屏将显示“程序装载中,请稍侯”,并且用状态条显示程序装载进度,等待装载程序后,SEEDDC81单元的D3灯由闪烁变暗。LCD显示屏将显示“FF实验装载成功”。一段时间后,可以看到在L
4、CD上显示FFT前的原始信号与实验后的功率谱图,如下图(a与b)所示:2、实验的调试:1)、将DSP仿真器与计算机连接好:2)、将DSP仿真器的JTA插关与EEDC2812单元的1相连接3)、启动计算机,当计算机启动后,打开S-DK BD的电源。观察SEE-DTK_O单元的+5V、+.3V、+15V、-5V的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源。4)、在实验选项的菜单下,选择定时器实验一项,选择使用CS。5)、打开CCS,进入CCS的操作环境。6)、装入_B_FFT.wks调试环境。7)、进行调度,通过Probe oins来观察FT的结果。六、实验主要程序:1、主函数:void
5、mn(void) /*初始化系统*IniSysCt();*关中断 DN; ER = x00; FR 0x000; *初始化PE中断*/ IitPeCtr();初始化PIE中断矢量表InPeVetTbl(); /*初始化CI寄存器*/ InitSi(); /初始化cputimr IntCpTimers(); or(i=; i004;+) a x55; urtsi=0x555;for(i=0;iType ATCMAN;psenData0 = TOVER;psed-Mutul = ATCO; art_send(); for(;;) f(Cmmnd=FTDASEND) ComandSae0; /*不满
6、buffer的数据* i(aasendengt =26) o( 0;iDai= A_dtaisendcunt*25; psn-ength = aaselng; pen-ye = URTDAT; psen-Mtl UARTCONT; uat_send(); le /*满bufe数据*/ for(k = 0;kDaak=Adda+sendount*26; psend-Legth=256; psnd-Tye = UATDTA;psed-Mutu =UARTMUT; uart_nd(); datsendlengh= dataendlnth - 256; sdcou+; art_ =uart_c();/
7、* 返回值 0:接受完成 / 1:数据未准备好 */* 3:较验出错 */ f(urt_s=1) ontue; /数据较验出错f(rt_ = 3) fr(i= ; iLengthRAMLONGH; psed-Type = ACOMMAD; psedDt0 = RECIVEEROR; sn-Mtl=ARTCONT; tsnd(); oie; /*接收完成*/if(ar_s =0) /*不是命令帧/ if(preciev-Tpe ! UARTCOMMAND) /*无效命令*/ pend-Lent = RAMH; psed-Tpe= UOMND; sed-Data0 = OMMANDNODO; d-
8、Mtul = URTCON; uar_send(); preie-Typ= UARTCMMD; conne; /*接收从主机的数据*/prce= (uartFrD56)(&uart); wtch(ecieve-D0) /FT设置/ cae FFTET: or(i=0;iDatai+1; /设置数据发送长度 datsendong=padstSmpleng; daaselengh= 3*datasendlong/; precieveData =0; break; 启动A采样和ft计算*/ cas FFSRT: concount=0; adconvoer=; sendcn=0; conirstN=10; *AD采样率*/ sitch( padet-SampRe) cae DSMLK: /0xd /采样率为8k DIT; /设置CPU/ onigCpuTim(&CTimr2,1,125); SaCpuTme2(); /开中断*/ IE |=M_INT14; EIN; InitAdc(); break; cae DSAMPL44K: / 0x/采样率为44k DIN; /设置CPU/ ConfCpuTimer(&CpuTimer2, 150, 22); StrCpuTme2();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1