数字信号处理课程设计DFT的快速算法快速傅里叶变换FFT.doc
《数字信号处理课程设计DFT的快速算法快速傅里叶变换FFT.doc》由会员分享,可在线阅读,更多相关《数字信号处理课程设计DFT的快速算法快速傅里叶变换FFT.doc(17页珍藏版)》请在三一文库上搜索。
1、燕 山 大 学 课 程 设 计 说 明 书目录前言第一章 离散傅里叶变换DFT31.1 DFT定义31.2 DFT的快速算法快速傅里叶变换(FFT) 3第二章 基2 DIT-FFT算法42.1 按时域抽取的基2 DIT-FFT算法4第三章 基于C语言设计16点基2DIT-FFT程序及运行结果 63.1 按时间抽取的基2DIT-FFT程序 63.2 程序运行结果 15第四章 课程设计的总结 17参考文献 17 前 言信号(signal)是一种物理体现,或是传递信息的函数。而信息是信号的具体内容。模拟信号(analog signal):指时间连续、幅度连续的信号。数字信号(digital sign
2、al):时间和幅度上都是离散(量化)的信号。 数字信号可用一序列的数表示,而每个数又可表示为二制码的形式,适合计算机处理。数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。 其目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(
3、FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。 随着信息时代、数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。第一章 离散傅里叶变换DFT离散傅立叶变换(DFT)实现了信号首次在频域表示的离散化,使得频域也能够用计算机进行处理。并且这种DFT变换可以有多种实用的快速算法。使信号处理在时、频域的处理和转换均可离散化和快速化,因而具有重要的理论意义和应用价值。1.1
4、DFT定义设序列x(n)长度为M,定义x(n)的N点DFT为式中,N称为离散傅里叶变换区间长度,要求N M。为书写简单,令 ,因此通常将N点DFT表示为1.2 DFT的快速算法快速傅里叶变换(FFT)DFT使计算机在频域处理信号成为可能,但是当N很大时,直接计算N点DFT的计算量非常大。快速傅里叶变换(FFT,Fast Fourier Transform)可使实现DFT的运算量下降几个数量级,从而使数字信号处理的速度大大提高,工程应用成为可能。人们已经研究出多种FFT算法,它们的复杂度和运算效率各不相同。快速傅里叶变换就是不断地将长序列的DFT分解为短序列的DFT,并利用 的周期性和对称性及其
5、一些特殊值来减少DFT运算量的快速算法。FFT算法分类:1.时间抽选法 DIT:Decimation-In-Time2.频率抽选法 DIF:Decimation-In-Frequency时间域抽取:基2时间抽取(Decimation in time)DIT-FFT算法频率域抽取:基2频率抽取(Decimation in frequency)DIF-FFT算法第二章 基2 DIT-FFT算法2.1 按时间抽取的基2 DIT-FFT算法:1、按时间抽取的基2 DIT-FFT算法原理先设序列点数为N=2M,M为整数。如果不满足这个条件,可以人为地加上若干零值点,使之达到这一要求。这种N为2的整数幂的
6、FFT称基-2 FFT。设输入序列长度为N=2M (M为正整数) ,将该序列按时间顺序的奇偶分解为越来越短的子序列,称为按时间抽取(DIT )的FFT算法。 序列x(n)的N点DFT为 将上面的和式按n的奇偶性分解为 令x1(l)=x(2l),x2(l)=x(2l+1),因为 ,所以上式可写成上式说明,按n的奇偶性将x(n)分解为两个N/2长的序列x1(l)和x2(l),则N点DFT可分解为两个N/2点DFT来计算。用X1(k)和X2(k)分别表示x1(l)和x2(l)的N/2点DFT,即有上述公式,及X1(k)、X2(k)的隐含周期性得到:这样,就将N点DFT的计算分解为计算两个N/2点离散
7、傅里叶变换X1(k)和X2(k),再计算上式。蝶形图:2、 按时间抽选的FFT算法的特点:(1)原位运算由图4.2.4可以看出,DIT-FFT的运算过程很有规律。N=2M点的FFT共进行M级运算,每级由N/2个蝶形运算组成。同一级中,每个蝶形的两个输入数据只对计算本蝶形有用,而且每个蝶形的输入、输出数据结点又同在一条水平线上,这就意味着计算完一个蝶形后,所得输出数据可立即存入原输入数据所占用的存储单元。这样,经过M级运算后,原来存放输入序列数据的N个存储单元中便依次存放 的N个值。这种利用同一存储单元存储蝶形计算输入、输出数据的方法称为原位计算。原位计算可节省大量内存,从而使设备成本降低。(2
8、倒序规律按原位计算时,FFT的输出 是按正常顺序排列在存储单元中,但是这时输入x(n)却不是、按自然顺序存储的,而是按x(0),x(4),x(7)的顺序存入存储单元,看起来好象是“混乱无序”的,实际上是有规律的,我们称之为倒序。第三章 基于C语言设计16点基2DFT-FFT程序及运行结果设计参数及要求:本次试验要求利用C语言设计16点基2DIT-FFT程序,并对如下程序进行分析,给出输出结果并画出信号的幅值图和相位谱。n012345678910X(n)01.222.232.85 2.982.601.760.62-0.62-1.76-2.601112131415-2.98-2.85-2.23-
9、1.2203.1 按时间抽取的基2DFT-FFT程序:/*时间抽选基2 FFT算法C语言实现*/#include #include #include #include #define N 1000#include/*定义复数类型*/typedef struct double real; double img;complex;complex xN, *W; /*输入序列,变换核*/int size_x=0; /*输入序列的大小,在本程序中仅限2的次幂*/double PI; /*圆周率*/int z;float wN,pN;char strN;/*初始化变换核*/void initW() int
10、 i; W=(complex *)malloc(sizeof(complex) * size_x); for(i=0;ireal=a.real+b.real; c-img=a.img+b.img; /*乘法*/void mul(complex a,complex b,complex *c) c-real=a.real*b.real - a.img*b.img; c-img=a.real*b.img + a.img*b.real; /*减法*/void sub(complex a,complex b,complex *c) c-real=a.real-b.real; c-img=a.img-b.
11、img; /*除法*/void divi(complex a,complex b,complex *c) c-real=( a.real*b.real+a.img*b.img )/( b.real*b.real+b.img*b.img); c-img=( a.img*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img); /*变址计算,将x(n)码位倒置*/void change() complex temp; unsigned short i=0,j=0,k=0; double t; for(i=0;i0 ) j=j1; if(ji) temp=x
12、i; xi=xj; xj=temp; /*快速傅里叶变换*/void fft() int i=0,j=0,k=0,l=0; complex up,down,product; change(); for(i=0;i log(size_x)/log(2) ;i+) /*一级蝶形运算*/ l=1i; for(j=0;jsize_x;j+= 2*l ) /*一组蝶形运算*/ for(k=0;kl;k+) /*一个蝶形运算*/ mul(xj+k+l,Wsize_x*k/2/l,&product); add(xj+k,product,&up); sub(xj+k,product,&down); xj+k=
13、up; xj+k+l=down; /*快速傅里叶逆变换*/void ifft() int i=0,j=0,k=0,l=size_x; complex up,down; for(i=0;i (int)( log(size_x)/log(2) );i+) /*一级蝶形运算*/ l/=2; for(j=0;jsize_x;j+= 2*l ) /*一组蝶形运算*/ for(k=0;kl;k+) /*一个蝶形运算*/ add(xj+k,xj+k+l,&up); up.real/=2;up.img/=2; sub(xj+k,xj+k+l,&down); down.real/=2;down.img/=2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 课程设计 DFT 快速 算法 傅里叶变换 FFT
