1、2、熟悉 FFT 算法原理和 FFT 子程序的应用;3、学习用 FFT 对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用 FFT。二、 实验原理与步骤:(一)实验原理:1、 离散傅立叶变换 DFT 的定义:将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称 DFT。2、 FFT 是 DFT 的一种快速算法,将 DFT 的 N2 步运算减少为(N/2)log2N 步,极大的提高了运算的速度。3、 旋转因子的变化规律。4、 蝶形运算规律。5、 基-2FFT 算法。(二)实验步骤:1、复习
2、DFT 的定义、性质和用 DFT 作谱分析的有关内容;2、复习 FFT 算法原理与编程思想,并对照 DIT-FFT 运算流程图和程序框图,分析本实验提供的 FFT 样例子程序;3、运行 CCS 软件,对样例程序进行跟踪,分析结果;记录必要的参数。4、填写实验报告。5、样例程序实验操作说明A、实验前准备:1) 正确完成计算机、E300 的连接;2) 用音频线连接音源和 E300 板的 MIC_IN,系统上电;B、实验启动 CCS,Project/Open 打开“. Algorithm02 FFTexample.pjt”工程文件; 双击“example.pjt” 及“Source”可查看各源程序;
3、加载“example.out”;在主程序中,k+处设置断点;单击“Run”运行程序,程序将运行至断点处停止;用 View / Graph / Time/Frequency 打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为 x 和 mo,长度为 1024,数值类型为 32 位有符号浮点变量,如图所示;数组 x 和 mo 分别存放的是经 A/D 转换后的语音信号和对该信号进行 FFT 变换的结果;单击“Animate” 或按 F10 运行程序;调整观察窗口并同步观察输入语音信号波形及其 FFT 变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束。三、 实验
4、内容及结果:(一)内容:单击“Animate”或按 F10 运行程序;调整观察窗口并同步观察输入语音信号波形及其 FFT 变换结果。(二)实验结果:a. 源程序:#include Config1cfg.h/定义包含的库#include #include #include c6211dsk.h #include csl.he300_codec.hmath.h#define Length 1024/宏定义#define Len 10/=int in;float xLength,moLength;float prLength,piLength,frLength,fiLength;/定义数组int x
5、m,i,n,k;/定义变量/ Left and right signal samples unsigned int xL, xR;void main()/主函数unsigned int dat;init_sys(); initial_aic23(); delay_SYS(1);initial_mcbsp1();/子函数声明i=0;/初始化变量k=0;n = Length;for (;)/死循环for (i=0; i=n-1; i+)mcbsp1Rx_ready();dat = (*(unsigned int *)0x1900000);/DRR1; in = (int short) dat;/x
6、m =xi= (float) in;/32768.0; pri= xi;pii=0;kfft(pr,pi,Length,Len,fr,fi,0,1);ii+)moi = sqrt(fri*fri+fii*fii);/快速傅里叶变换k+;b. 图:下图是输入两个不同的音频信号得到的波形:改变 length 的值: 当 length=512 时:当 length=128 时:五、思考题:1、对于不同的 N,幅频特性会相同吗?为什么?答:对于不同的 N,幅频特性不相同,因为他们函数表达式不相同,模不相同。2、FFT 进行谱分析,可以应用在什么方面?FFT 只是 DFT 的一种快速算法,所以 FFT
7、的运算结果必然满足 DFT的基本性质。可以应用在对周期信号频谱分析和对模拟信号频谱分析。3、结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用 FFT 作谱分析时有关参数的选择方法。误差主要来自于用 FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一些。对信号进行谱分析的重要问题是频谱分辨率 D 和分析误差。频谱分辨率直接和 FFT的变换区间 N 有关,因为 FFT 能够实现的频率分辨率是 2/ND。可以根据此时选择FFT 的变换区间 N。4、总结实验所得主要结论。给的输入信号不同,得到的结果也不同。只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一些。对信号进行频谱分析时,数据样本应有足够的长度, 一般 FFT 程序中所用数据点数与原含有信号数据点数相同,这样的频谱图具有较高的质量,可减小因补零或截断而产生的影响。周期信号的频谱是离散谱,只有用整数倍周期的长度作 FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对模拟信号的频谱时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1