实验二快速傅里叶变换实验指导.docx
- 文档编号:3758672
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:57
- 大小:2.46MB
实验二快速傅里叶变换实验指导.docx
《实验二快速傅里叶变换实验指导.docx》由会员分享,可在线阅读,更多相关《实验二快速傅里叶变换实验指导.docx(57页珍藏版)》请在冰豆网上搜索。
实验二快速傅里叶变换实验指导
实验二(快速傅里叶变换)实验指导
————————————————————————————————作者:
————————————————————————————————日期:
[实验2]快速傅里叶变换(FFT)实现
一、实验目的
1、掌握FFT算法和卷积运算的基本原理;
2、掌握用C语言编写DSP程序的方法;
3、了解利用FFT算法在数字信号处理中的应用。
二、实验设备
1。
一台装有CCS软件的计算机;
2.DSP实验箱的TMS320C5410主控板;
3.DSP硬件仿真器。
三、实验原理
(一)快速傅里叶变换
傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。
离散傅里叶变换(DFT)是傅里叶变换在离散系统中的表示形式。
但是DFT的计算量非常大,FFT就是DFT的一种快速算法,FFT将DFT的N2步运算减少至(N/2)log2N步.
离散信号x(n)的傅里叶变换可以表示为
,
式中的WN称为蝶形因子,利用它的对称性和周期性可以减少运算量。
一般而言,FFT算法分为时间抽取(DIT)和频率抽取(DIF)两大类。
两者的区别是蝶形因子出现的位置不同,前者中蝶形因子出现在输入端,后者中出现在输出端。
本实验以时间抽取方法为例。
时间抽取FFT是将N点输入序列x(n)按照偶数项和奇数项分解为偶序列和奇序列。
偶序列为:
x(0),x
(2),x(4),…,x(N—2);奇序列为:
x
(1),x(3),x(5),…,x(N-1)。
这样x(n)的N点DFT可写成:
考虑到WN的性质,即
因此有:
或者写成:
由于X1(k)与X2(k)的周期为N/2,并且利用WN的对称性和周期性,即:
可得:
对X1(k)与X2(k)继续以同样的方式分解下去,就可以使一个N点的DFT最终用一组2点的DFT来计算。
在基数为2的FFT中,总共有log2(N)级运算,每级中有N/2个2点FFT蝶形运算.
单个蝶形运算示意图如下:
以N=8为例,时间抽取FFT的信号流图如下:
从上图可以看出,输出序列是按自然顺序排列的,而输入序列的顺序则是“比特反转"方式排列的。
也就是说,将序号用二进制表示,然后将二进制数以相反方向排列,再以这个数作为序号。
如011变成110,那么第3个输入值和第六个输入值就要交换位置了。
一种比较常用有效的方法就是雷德算法。
(二)卷积运算
卷积是数字信号处理中经常用到的运算。
其基本的表达式为:
编写实现程序时需要注意两点:
(1)序列数组长度的分配,尤其是输出数组y(n)要有足够的长度;
(2)循环体中变量的位置,即n和m的关系。
(三)IDFT的FFT实现
IDFT与DFT的关系为
即
那么直接调用FFT子程序计算IDFT的方法是:
(四)线性卷积的FFT实现
当有限长序列x(n)与h(n)的圆周卷积长度L≥N+M时,其中N、M分别为x(n)和h(n)的长度,L点的圆周卷积能够代表它们的线性卷积,即x(n)
h(n)=x(n)*h(n)。
再利用DFT的圆周卷积性质
x(n)
h(n)=IDFT{X(k)H(k)}
就可以利用FFT计算两个有限长序列的线性卷积.
(五)分段卷积
直接利用DFT计算的缺点是:
(1)信号要全部输入后才能进行计算,延迟太多;
(2)内存要求大;(3)算法效率不高。
解决问题方法是采用分段卷积,分段卷积可采用重叠相加法和重叠保留法来实现。
1。
重叠相加(overlapadd)
将长序列x[k]分为若干段长度为L的序列
其中
记
,那么,
y0[k]的非零范围为
,y1[k-L]的非零范围为
。
序列y0[k]、y1[k]的重叠部分为
重叠的点数L+M-2-L+1=M—1。
依次将相邻两段的M—1个重叠点相加,即得到最终的线性卷积结果。
2.重叠保留法(overlapsave)
方法:
(1)将x[n]长序列分段,每段长度为L;
(2)各段序列xn[k]与M点短序列h[k]循环卷积;
(3)从各段循环卷积中提取线性卷积结果。
因yn[k]=xn[k]Lh[k]前M-1个点不是线性卷积的点,故分段时每段与其前一段有M—1个点重叠。
记yn[k]=xn[k]
h[k],y0[k]中的[M-1,L—1]点对应于线性卷积x[k]*h[k]中的[0,L-M]点,
y1[k]中的[M-1,L—1]点对应于线性卷积x[k]*h[k]中的[L-(M-1),2L—M—(M—1)]点。
依次处理即得到最终的线性卷积结果.
四、实验步骤
(以实验1。
1为例,参照§2。
3CCS的使用中的介绍进行实验操作)
1. 在CCS环境中新建本实验的工程;
2.将相关代码文件添加工程中;
3。
编译
并重建。
out输出文件,然后通过仿真器把执行代码(.out的文件)下载到DSP芯片中;
4。
运行程序
;
5.选择view-〉graph—〉time/frequency… .设置对话框中的参数:
其中“StartAddress”设为“x_re”,“Acquisitionbuffersize”和“DisplayDatasize”都设为“64",并且把“DSPDataType”设为“32-bitfloatingpoint”(如图),
设置好后观察输入信号序列的波形(单边指数函数,如图);
同样方法观察经DFT变换后的输出序列“y_re”的波形,“StartAddress”改为“y_re”,其余参数不变(如图);
5.在Watch窗口中添加i,j,k,m,n,a,b,c等变量,在Debug菜单中先“Restart”然后“Gomain",单步运行程序,跟踪FFT算法的过程;(可以跳过程序开始部分对各个数组的赋值代码,方法是在雷德算法的第一行代码前设置断点
,然后先单击运行
,待程序停在该断点后再单步执行后面的代码,见下图。
)
第一章实验平台说明
本实验箱以TI公司的TMS320C5410(可选配TMS320C5416)和TMS320LF2407两种DSP芯片为中心,附加开发了多个功能模块,可以使实验者方便有效地完成各种常用的DSP开发实验。
TMS320C5410是TI公司54系列DSP芯片中相当优秀的一个型号,除了有强大的运算能力外,还集成了丰富的片内资源。
基于该芯片的出色性能,它在各种DSP应用场合中发挥着重要作用。
本实验箱就提供了这样一个平台,使实验者能在最短的时间内了解并掌握该DSP芯片的基本开发技术。
TMS320C5416是TI公司54系列DSP芯片中另一款优秀的型号,片内资源比5410丰富,HPI(主机接口)提供16BIT模式,外设与5410相近。
实验者可以在5410主控板(或5416主控板)上进行各种指令实验和算法实验。
把5410主控板(或5416主控板)插接在实验箱主电路板上的接口后,实验者就可以借助已设计好的外部电路进行USB接口、A/D与D/A转换等实验。
本实验箱的USB模块主芯片采用功能强大的PHILIPSISP1362芯片,它支持USB2.0和最新的OTG(onTheGo点对点通信)协议,因此实验者可以充分学习到最先进的USB技术。
A/D与D/A转换是传统的实验内容,本实验箱配置了两个A/D与D/A模块,它们有不同的性能和特点,适合不同的应用场合。
把5410(或5416)与A/D与D/A模块配合起来,实验者甚至可以进行声音文件的MP3编解码实验。
本实验箱的另一块主控板采用TMS320LF2407DSP芯片,这也是一个应用非常广泛的型号.配合实验箱主电路板上的各个模块,实验者可以进行通用异步串行口(UART)的实验,电机控制实验,以太网卡实验,液晶显示屏实验,数码管控制实验,信号灯控制实验和键盘扫描实验。
另外实验箱上还有一个信号发生模块可供实验。
除了已设计好的实验之外,实验者还可以发挥创造性,充分利用实验箱的资源进行其它实验。
§1.1系统总览
一、实验箱资源分布
本实验箱采用模块化设计,直接与实验相关的,一共有13个模块,另有负责总线控制的CPLD模块和一个负责为各个部分供电的电源模块。
每一个模块都有独立的电源开关控制。
实验系统中有三个模块是采用外插形式的,在实验箱主电路板上预留了插槽,包括5410主控板(或5416主控板),2407主控板以及电机控制模块。
而其余各模块都设计在主电路板上.整个实验箱的资源分布如下图。
(图1-1-1)实验箱整体说明图
(1)TMS320C5410主控板(或5416主控板)位置(外插)
(2)TMS320LF2407主控板位置(外插)
(3)CPLD模块(复杂可编程逻辑器件)
(4)A/D与D/A转换模块一(普通语音数模转换)
(5)A/D与D/A转换模块二(高精度音频)
(6)信号发生模块
(7)USB2。
0OTG接口模块(USB2。
0点对点接口通信模块)
(8)UART接口模块(通用异步收发报机接口模块)
(9)以太网卡模块
(10)电机控制模块插槽
(11)4×4键盘模块
(12)液晶显示屏模块
(13)数码管模块
(14)信号灯模块
(15)电源模块
(16)双声道扬声器模块
DSPII+型模块及各部分控制图
§1。
2使用方法
1.电源
本实验箱内部自带变压器,使用时不需另配低压电源,可直接用普通三相插头接入220V电源。
接上电源后,由电源模块输出±12V,5V,3.3V和2。
5V,分别送至实验箱的各个模块。
另外为方便单独使用,两个主控板上都设有独立的电源输入端口,可以接入5V的直流电源。
2。
仿真器接口
在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到5410或2407芯片上.仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型;另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,在两块主控板上都可以找到。
仿真器连接好后才能对主控板上的DSP芯片进行读写控制。
3。
外插模块的使用
本实验箱有三个模块单独成板,以外插形式与主电路板连接。
其中两个DSP主控板在主电路板上留有专门的位置(请见资源分布图),使用时把主控板上的接口对准主电路板上的相应插槽插牢即可。
在做电机控制实验时,应先把电机控制模块的小电路板架在以太网卡模块的位置上,插好四个支脚,然后通过连接线把电机小电路板上的接口与主电路板上的电机模块插槽(请见资源分布图中的标号“10”)相连.
4。
计算机的配置
DSP实验中的代码编写,下载仿真和程序调试都必须在计算机上完成。
计算机上需要安装DSP集成开发环境软件CCS(推荐使用2.0版本)。
计算机应具备最少32M内存,100M硬盘空间和奔腾处理器,显示器分辨率不能低于800*600。
另外,部分模块的实验还要求计算机配有标准的USB接口,DB9串行接口以及RJ—45网卡接口。
5。
其它配件
包括USB连接线,串行口连接线,网线,排线,以及耳机。
§1.3模块说明
1.TMS320C5410主控板
该板上实现了一个最小系统,可以单独运行。
板上主要资源包括一个TMS320C5410型号的DSP芯片,一个CY7C1021型号的64K×16位的SRAM芯片,以及一个TE39LV800型号的8M容量FLASH芯片。
如图:
(图1—3-1)5410主控板硬件说明图
板上有一个14针的JTAG接口,是与DSP仿真器连接的.有一个6位拨码开关分别对应HPIENA(高性能并型接口始能),BIO(IO输出),MP/MC(工作模式),CLKMD3(时钟配置3),CLKMD2(时钟配置2),CLKMD1(时钟配置1),拨到”ON”位置为“1”,“OFF”位置为”0“,另外该主控板通过三排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。
各接口引脚的连接情况如下:
(图1-3-2)5410主控板接口说明
5410主控板实际各接口及扩展接口位置
TMS320C5416主控板
板上DSP芯片为TMS320C5416,一个CY7C1021型号的64K×16位的SRAM(静态存储器)芯片,以及一个TE39LV800型号的8M容量FLASH(闪存)芯片。
(图1-3-3)5416主控板说明图
2。
TMS320LF2407主控板
该板上实现了一个最小系统,可以单独运行。
板上主要资源包括一个TMS320LF2407型号的DSP芯片,以及一个CY7C1021型号的64K×16位的SRAM芯片.如图:
(图1-3-4)2407主控板说明图
板上有一个14针的JTAG接口,是与DSP仿真器连接的。
另外该主控板通过六排接口与实验箱的主电路板相连,在主电路板上设有相应的插槽。
各接口引脚的连接情况如下:
(图1-3-5)2407主控板接口说明
2407主控板各接口及其扩展接口实际位置
3.CPLD模块及其特点
该模块主要包含有一个Xilinx公司的XC95144可编程芯片。
本模块主要负责实验系统中的总线控制工作.其特点是CPLD由完全可编程的与/或门阵列以及宏单元构成。
与/或阵列是可重新编程的,可以实现多种逻辑功能。
宏单元则是可实现组合或时序逻辑的功能模块,同时还提供了真值或补码输出和以不同的路径反馈等额外的灵活性。
传统上,CPLD采用模拟感应放大器来提高结构性能。
这种性能提高的代价是需要较高的电流。
它采用了一种全新的全数字内核,能够以极低的功耗达到同样的性能水平。
这使得设计人员可同时在高性能和低功耗设计中使用同一种CPLD结构。
避免采用模拟感应放大器还使结构具有可扩展能力,使得随着工艺技术一代一代的进步成本可快速降低并可不断增强其功能。
CPLD部分管脚定义及扩展总路线位置图
4.USB2.0OTG(点对点通信)接口模块
该模块主要包含有一个USB主控芯片(IPS1362),一个USB通用端口(H-A),两个为实现OTG(点对点通信)协议而用的OTG(点对点通信)端口,分别是作Host(主机)时的OTG—B和作Device(驱动)时的OTG-A。
如下图:
(图1-3—6)USB模块说明图
模块中设置了一排接口,包含了该模块对外的所有数据和控制线,其引脚定义如下:
(图1-3-7)USB模块接口定义
模块接口也可以作调试时观察所用,除此之外,模块中还设置了其它若干探测点,如下:
CON302:
(1)D+(差分信号正向端)
(2)D-(差分信号反相端)(3)H_OC2(主指令1)
CON304:
(1)OTG_DP(点对点数据处理)
(2)OTG_DM(点对点设计模式)(3)H_OC1(主指令1)
CON306:
(1)OTG_D+(点对点信号正端)
(2)OTG_D-(点对点信号负端)(3)V_BUS(公共端)
TP301:
CLKOUT(时钟输出)
USB模块接口实图
5.高精度音频A/D与D/A转换模块
该模块上的主要芯片是AIC23,这是一个双通道的A/D与D/A转换芯片。
因此,在该模块上设有四个插口,一组是Line—In(线入)和Line—Out(线出),另一组是Mic-In(麦克风入)和Phone—Out(话音出)。
如下图:
(图1—3-8)音频模块说明图
模块接口的定义如下:
(图1-3-9)音频模块接口定义
除接口外,还有若干探测点定义如下:
TPb01:
SignalPower(信号源)TPb02:
VDD(芯片电源)TPb11:
CLKOUT(时钟输出)
TPb12:
Lineoutright(线出右声)TPb13:
Lineoutleft(线出左声)TPb14:
Phoneright(话音右声)
TPb15:
Phoneleft(话音左声)TPb16:
Lineinright(线入右声)TPb17:
lineinleft(线入左声)
6。
普通语音A/D与D/A转换模块
该模块所使用的主要芯片是AD50CDW。
该模块只提供一对信号输入/输出插口。
如下图:
(图1-3—10)语音模块说明图
该模块的探测点设置如下:
(图1-3-11)语音模块探测点定义
7。
UART接口模块
该模块主要包括两个芯片,其中进行UART控制的是SC16C550芯片,而完成电平转换的是MAX3232芯片.本模块带有一个9针的串行连接口。
如下图:
(图1—3-12)UART模块说明图
本模块的接口定义如下:
(图1-3-13)UART模块接口定义
本模块还有一个探测点是TP401:
CLK
UART模块接口实图
8。
以太网卡模块
本模块主要包括一个Ethernet(以太网)控制芯片RTL8019AS。
模块上设有一个RJ-45(交叉路45)的网线插口。
如下图:
(图1-3—14)以太网卡模块说明图
该模块的接口定义如下:
(图1-3-15)UART(通用异步收发机)模块接口定义
模块上还有7个探测点,其意义如下:
(图1—3—16)以太网卡模块探测点定义
1。
RW(读写)2。
CS(片选引脚)3。
IOR(I/O读)4.IOW(I/O写)
5.IOCHRDY(I/O准备信号)6。
INT0(中断0)7。
CLK(时钟)
网卡接口实图
9。
信号发生模块
本模块通过信号发生芯片ICL8038可以产生三种不同波形的音频信号,包括方波,三角波和正弦波。
欲产生的信号类型可用模块上的旋转按钮进行选择。
如下图:
(图1-3-17)信号发生模块说明图
该模块独立工作,不需与DSP的接口。
10。
4×4键盘模块
本模块上的键盘电路采用交叉扫描方式,即共有8个引脚.
11。
液晶显示屏模块
本模块主要器件是一个液晶显示屏,该LCD有16个引脚,都已引出,各引脚的信号意义如下:
(图1—3-18)LCD接口定义
本模块上也有一个独立的电源开关。
LCD模块接口实图
12。
数码管模块
本模块共有8个七段数码管。
另有独立的电源开关。
13。
信号灯模块
本模块共有8个发光二极管,分为四组,每组各有一个红灯和一个绿灯。
四组LED以东西南北的位置排布,模仿十字路口的交通信号灯。
该模块中用到一个锁存芯片,而且引出其片选引脚(CS)作为探测点。
如下图:
(图1—3—19)信号灯模块说明图
14。
电机控制模块
本模块设计在一块独立的小电路板上,该小电路板可以插在以太网卡模块位置的四个支脚上。
小电路板上有一16针接口,在使用时要用排线把这个接口与实验箱主电路板上的“电机接口总线”相连。
如下图:
(图1-3—20)电机模块与主电路板连接示意图
15。
双声道扬声器模块:
用户不仅可以通过耳机插孔来听发出的声音,同时也可以通过内置扬声器来实现。
扩展模块、主板、及CPLD的数据传递与控制关系
表示数据传递过程
表示控制关系
第二章开发软件(CCS)介绍
§2。
1CCS简介
CCS(CodeComposerStudio数据设计工作室)代码调试器是一种合成开发环境。
它是一种针对标准TMS320调试器接口的交互式方法。
CCS目前有CCS1。
1,CCS1。
2和CCS2.0等三个不同时期的版本,又有CC2000(针对C2XX),CCS5000(针对C54XX)和CCS6000(针对C6X)三个不同的型号。
我们所使用的是CCS50002。
0的版本。
CCS5000具有以下特性:
ØTI编译器的完全集成的环境:
CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。
Ø对C和DSP汇编文件的目标管理:
目标编辑器保持对所有文件及相关内容的跟踪。
它只对最近一次编译中改变过的文件重新编译,以节省编译时间。
Ø高集成的编辑器调整C和DSP汇编代码:
CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。
使用户能很容易地阅读代码和当场发现语法错误。
Ø编辑和调试时的后台编辑:
用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。
在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处.
Ø在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在Windows95和Windows—me中支持多处理.PDM(调试管理器)允许将命令传播给所有的或所选择的处理器。
Ø在任何算法点观察信号的图形窗口探针:
图形显示窗口使用户能够观察时域或频域内的信号。
对于频域图,FFT(快速傅立叶变换)在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码.图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。
Ø文件探针在算法处通过文件提取或加入信号或数据:
CCS5000允许用户从PC机读或写信号流。
而不是实时的读信号,这就可以用已知的例子来仿真算法。
Ø图形分析:
CCS5000的图形分析能力在其环境中是集成的.
Ø在后台(系统命令)执行用户的DOS程序:
用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。
且允许用户将应用程序集成到CCS5000。
Ø技术状态观察窗口:
CCS5000的可视窗口允许用户进入C表达式及相关变量.结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。
Ø代数分解窗口:
允许用户选择查看写成代数表达式的C格式,提高可读性。
Ø目标DSP上的帮助:
DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。
Ø用户扩展:
扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。
主要操作流程图
§2。
2CCS的安装与配置
一、CCS软件的安装
1、打开光驱,将带有DSP软件的光盘放入其中。
2、打开其中的“DSP软件”目录显示如下:
在C2000V2。
2目录下是CCS2000的安装软件;C5000V2。
2目录下是CCS5000的安装软件。
工具软件目录下是一些常用的工具软件;驱动程序目录下是EPP(并口)和USB接口的仿真器的驱动程序。
3、先安装CCS2000的软件,打开“C2000V2.2”目录,点其目录下的“SETUP”应用程序。
安装开始。
如下图:
在INSTALL下面有两个可选的安装项目,第一个是“CODECOMPOSERSTUDIO”(数据设计工作室)这是CCS2000软件的安装目录。
第二个是“ADOBE ACROBAT READER”(图形自动读取)是其帮助文件的应用软件.选第一项进行CCS2000软件的安装。
4、按照其安装提示进行安装,出现如下提示:
在下方选择“YES,IDOacceptalltheterm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 快速 傅里叶变换 指导