好文档 - 专业文书写作范文服务资料分享网站

DSP原理及应用课程设计—FFT基于DSP的实现

天下 分享 时间: 加入收藏 我要投稿 点赞

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

DSP原理及应用课程设计

—FFT基于DSP的实现

班级: 姓名; 学号:

1

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

FFT的DSP实现

一 实验目的

1了解FFT的TMS320C54x实现的编程方法

2掌握8-1024复数点FFT的TMS320C54x程序的使用方法. 3 用FFT的TMS320C54x程序分析方波和正弦波的功率谱. 4 加深对DFT算法原理和基本性质的理解;

5 熟悉FFT的算法原理和FFT子程序的算法流程和应用; 6 学习用FFT对连续信号和时域信号进行频谱分析的方法; 7 学习DSP中FFT的设计和编程思想;

8 学习使用CCS的波形观察器观察波形和频谱情况

二 实验条件

1 8-1024复数点TMS320C54x源程序fft.asm.

2 8-1024复数点TMS320C54x链接命令文件fft.cmd. 3正弦、余弦系数表coeff.inc.

4产生正弦波信号数据文件的高级语言程序,程序名为sin_fft.exe , 5向量文件vectors.asm.

三 设计内容

用DSP汇编语言及C语言进行编程,实现FFT运算、对输入信号进行频谱分析。

四 设计原理

快速傅里叶变换FFT

快速傅里叶变换(FFT)是一种高效实现离散傅里叶变换(DFT)的快速算法,是数字信号处理中最为重要的工具之一,它在声学,语音,电信和信号处理等领域有着广泛的应用。

1. 离散傅里叶变换DFT

对于长度为N的有限长序列x(n),它的离散傅里叶变换(DFT)为

nkX(k)??x(n)WN,n?0n?1k?0,1,?N?1 (1)

?j2?/NW?e式中, N ,称为旋转因子或蝶形因子。

从DFT的定义可以看出,在x(n)为复数序列的情况下,对某个k值,直接按(1)式计算X(k)

2

只需要N次复数乘法和(N-1)次复数加法。因此,对所有N个k值,共需要N次复数乘法和N(N-1)次复数加法。对于一些相当大有N值(如1024点)来说,直接计算它的DFT所需要的计算量是很大的,因此DFT运算的应用受到了很大的限制。 2.快速傅里叶变换FFT

旋转因子WN 有如下的特性。

kk?N/2W??W。对称性: N Nkk?NW?W。周期性:NN

利用这些特性,既可以使DFT中有些项合并,减少了乘法积项,又可以将长序列的DFT分解成几个

2

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

短序列的DFT。FFT就是利用了旋转因子的对称性和周期性来减少运算量的。

FFT的算法是将长序列的DFT分解成短序列的DFT。例如:N为偶数时,先将N点的DFT分解为两个N/2点的DFT,使复数乘法减少一半:再将每个N/2点的DFT分解成N/4点的DFT,使复数乘又减少一半,继续进行分解可以大大减少计算量。最小变换的点数称为基数,对于基数为2的FFT算法,它的最小变换是2点DFT。

一般而言,FFT算法分为按时间抽取的FFT(DIT FFT)和按频率抽取的FFT(DIF FFT)两大类。DIF FFT算法是在时域内将每一级输入序列依次按奇/偶分成2个短序列进行计算。而DIF FFT算法是在频域内将每一级输入序列依次奇/偶分成2个短序列进行计算。两者的区别是旋转因子出现的

kWN位置不同,得算法是一样的。在DIF FFT算法中,旋转因子 出现在输入端,而在DIF FFT算法中

它出现在输入端。

假定序列x(n)的点数N是2的幂,按照DIF FFT算法可将其分为偶序列和奇序列。 偶序列:

x(0),x(2),x(4),?x(N-2),即x1?x(2r),r?0,1,?N/2?1 奇序

列:

x(1),x(3),x(5),?x(N-1),即x2?x(2r?1),r?0,1,?N/2?1x(n)的DFT表示为

X(k)??x(n)Wn?0N/2?1N?1nkNnk??x(n)WNn?0N?1n为偶数

n为奇数2rkNN/2?1???x(2r)Wr?0??x(2r?1)WN(2r?1)kr?0kNN/2?1r?02rkx(r)W?2N

N/2?1r?0?x1(r)W2rkN?W(2)由于

W?eX(k)?2N??j(2?/N)2N/2?1r?0???erkN/2?j2?/(N/2)N/2?1r?0??WN/2 ,则(3)式可表示为

?x(r)W1?WkN?x2rk(r)WN/2

k?X1(k)?WNX2(k)k?0,1,?N/2?1式中, X1(k)和X2(k)分别为x1(n)和x2(n)的N/2的DFT。

(3)

由于对称性,

k?N/2KkWN??WN,则X(k?N/2)?X1(k)?WNX2(k)。因此,N点X(k)可分为两

部分:

k前半部分:X(k)?X1(k)?WNX2(k)k后半部分:X(k?N/2)?X1(k)?WNX2(k)k?0,1,?N/2?1 (4)

k?0,1,?N/2?1 (5)

从式(4)和式(5)可以看出,只要求出0~N/2-1区间X1(k)和X2(k)的值,就可求出0~N-1区间X(k)的N点值。

以同样的方式进行抽取,可以求得N/4点的DFT,重复抽取过程,就可以使N点的DFT用上组2点的 DFT来计算,这样就可以大减少运算量。

基2 DIF FFT的蝶形运算如图(a)所示。设蝶形输入为xm?1(p)和xm?1(q),输出为xm(p)和xm(q),则有

kxm(p)?xm?1(p)?xm?1(q)WN (6)

kxm(q)?xm?1(p)?xm?1(q)WN (7)

3

DSP原理及应用课程设计—FFT基于DSP的实现

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.DSP原理及应用课程设计—FFT基于DSP的实现班级:姓名;学号:1文档来源为
推荐度:
点击下载文档文档为doc格式
9jpc78rym57u3cm9b9nu86wqu5roxb0037f
领取福利

微信扫码领取福利

微信扫码分享