数字信号处理EXPIII型教学实验系统 第 1 页
第七章 5402算法实验指导
实验一 快速傅立叶变换(FFT)算法实验
一.
实验目的
1. 加深对DFT算法原理和基本性质的理解; 2. 熟悉FFT算法原理和FFT子程序的应用;
3. 学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误
差及其原因,以便在实际中正确应用FFT。
二.
实验设备
计算机,CCS 2.0 版软件,实验箱,DSP仿真器。 三.
基本原理
1. 离散傅立叶变换DFT的定义:将时域的采样变换成频域的周期性离散函数,频
域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
2. FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极
大的提高了运算的速度。 3. 旋转因子的变化规律。 4. 蝶形运算规律。 5. 基2FFT算法。 四.
实验步骤
1. 复习DFT的定义、性质和用DFT作谱分析的有关内容;
2. 复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解
本实验提供的FFT子程序; 3. 阅读本实验所提供的样例子程序;
4. 运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。 5. 填写实验报告。
6. 提供样例程序实验操作说明 A.实验前准备:
1)启动CCS2.0,并打开“ALGORITHM\\EXP01_fft\\exp01.pjt”工程文件; 2)“A/D转换单元”的拨码开关如下设置:
数字信号处理EXPIII型教学实验系统 第 2 页
JP3拨码开关: 码位 1 2 3 4 5 6 备注 OFF: OFF: ON: OFF: OFF: ON: SW2拨码开关: SW2 1 2 3 4 备 注 码位 使用默认中断分配 OFF OFF OFF OFF S23拨码开关: 码位 1 2
备注 OFF OFF 3)用导线连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”模拟信号源左路调到3V,9KHz左右,正弦波。
正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。 B.实验
启动CCS 2.0,Project/Open打开“Algorithm”目录中“exp01_fft”子目录下“exp01.pjt”工程文件;双击“exp01.pjt” 及“Source”可查看各源程序;加载“exp01.out”;在中断子程序中,t=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
数字信号处理EXPIII型教学实验系统 第 3 页
用View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为0x1f00h和0x1f80h,长度为128的单元中数值的变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经A/D转换后的语音信号和对该信号进行FFT变换的结果;
数字信号处理EXPIII型教学实验系统 第 4 页
单击“Animate”运行程序,或按F10运行;调整观察窗口并观察输入信号波形及其FFT变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束。
实验结果:在CCS2.0环境,同步观察输入语音信号波形及其FFT变换结果。 五.
思考题
1. 对于不同的N,幅频特性会相同吗?为什么? 2. FFT进行谱分析,可以应用的什么方面? 六.
实验报告要求
1. 简述实验原理及目的;
2. 结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产
生的原因以及用FFT作谱分析时有关参数的选择方法。 3. 总结实验所得主要结论。 七.程序参数说明
void kfft(pr,pi,n,k,fr,fi,l,il):基2快速傅立叶变换子程序,n为变换点数,应满足2的整数 次幂,k为幂次(正整数);
数组x :输入信号数组,A/D转换数据存放于地址为1f00H~1f7fH存储器中,转为浮 点型后,生成x数组,长度128;
数组mo:FFT变换数组,长度128,浮点型,整型后,写入1f80H~1fffH存储器中。
数字信号处理EXPIII型教学实验系统 第 5 页
八. 子程序流程图:
初始化输入数组排序计算第一层中间值计算层数计算对应层步长计算计算各层中间结果计算层数=0?Y计算结果输出
N