文档详情

数字信号处理器(基于DSP的FFT算法实现).doc

发布:2017-04-13约2.92千字共9页下载文档
文本预览下载声明
数字信号处理器 课 程 报 告 题目:基于DSP的FFT算法实现 姓 名: 学 号:130405100xx 专 业:测控技术与仪器 任课教师:陈晓龙 二 〇 一 六 年 十 二 月 快速傅里叶变换(FFT)的用途 快速傅立叶变换(FFT)广泛用于数字信号处理系统当中,特别是电力仪器仪表行业,FFT 是早期最为广泛使用的一种算法。快速傅立叶变换(FFT)是将信号从时域变换到频域的一种方法,广泛运用于各种信号分析领域,提高了系统的数据处理能力。 快速傅里叶变换(FFT)的基本原理 FFT并不是一种新的傅立叶变换,只是DFT的一种快速算法。首先,我们来简单说明下DFT。 假设k=1,则 需要进行N次复数乘法、 (N-1)次复数加法。这样的话,整个DFT运算量就是N*N次复数相乘+N*(N-1)次复数加法。这对实时性很强的信号处理(如雷达信号处理)来讲,显然不能满足要求,FFT则很好地解决这一问题。 FFT就是不断地把长序列的DFT分解成几个短序列的DFT,并利用周期性和对称性来减少DFT的运算次数。 (1)周期性: 对称性: 最常用的是基2-FFT算法。 FFT上可分为2类:时域抽取法(DIT-FFT)与频域抽取法(DIF-FFT)。以时域抽取法(DIT-FFT)为例说明, 假定N=2M,将序列x(n)按n的奇偶分解为两组,一组为偶数项,一组为奇数项:x1(n)=x(2r) ,r=0,1,…,N/2-1 x2(n)=x(2r+1) ,r=0,1,…,N/2-1 将DFT运算也相应分为两组: 由于X1(k)和X2(k)均以N/2为周期,且由于DFT的周期性() X(k)可表示为 可见,一个N点的DFT被分解为两个N/2点的DFT。将X1(k)和X2(k) 合成X(k)运算可归结为:a+bw与a-bw, 用流图表示,如下图,称为蝶形运算符号。 完成一次蝶形运算需要一次复数乘和两次加法。 经过一次分解后,计算N点DFT共需计算两个N/2点的DFT和N/2个蝶形运算,而计算一个N/2点的DFT需要(N/2)*2次复数乘和(N/2)*(N/2-1)次复数加法。所以计算N点DFT总共需要: 2(N/2)2+N/2=N(N+1)/2≈N2/2(N1) 次复乘 N(N/2-1)+2N/2= N2/2次复数加法 由此可见,仅经过一次分解,就使运算量减少仅一半。 对于N=,总是可以通过M次分解最后成为2点的DFT运算。这样构成从x(n)到X(k)的M级运算过程。每一级运算都由N/2个蝶形运算构成。因此每一级运算都需要N/2次复乘和N次复加,这样,经过时间抽取后M级运算总共需要的运算: 一般而言,DIT-FFT和DIF-FFT两种FFT算法的区别是旋转因子出现的位置不同,DIT-FFT中旋转因子在输入端,DIF-FFT中旋转因子在输出端,除此之外,两种算法是一样的。在本处中实现的是时间抽取FFT算法。 DIF-FFT它有三个运算规律,(1)原位计算:利用同一存储单元存储蝶形计算输入、输出数据的方法称为原位(址)计算。它可节省大量内存。(2)旋转因子的变换规律:在N点DIT-FFT运算流图中,称其为旋转因子,p称为旋转因子的指数。用L表示从左到右的运算级数(L=1,2,…,M)。第L级共有个不同的旋转因子。对N=的一般情况,第L级的旋转因子为 蝶形运算的规律:同一个旋转因子对应着间隔为点的个蝶形。 快速傅里叶变换(FFT)的硬件结构 对信号进行FFT变换,首先要对模拟信号采样将其转换为数字信号。输入的连续模拟信号经信号调理电路后输出到DSP的ADC模拟输入通道,经过ADC数据采集,模数转换的结果存放于ADC结果寄存器中。信号调理电路主要是为了信号的抗混叠滤波以及电路阻抗的匹配。信号调理电路对输入信号进行调理处理,包括信号的滤波、跟随输出以及信号的稳定。DSP对采集的数字信号进行FFT运算处理, 同时对运算结果进行相应的数据显示和数据存储。 电路设计时要考虑数字信号处理存在的信号完整性问题、信号线之间的串扰及电磁干扰、模数信号间的相互影响。主要包括进行合理走线、适当的板层数和去耦电容、完整的地层及必要的终端匹配。一般来说有以下的措施: 采用多层板,电源与地都可以考虑采用专门的层,尽量用大面积地。电源与地换层时,过孔的孔径要足够大,或者多留几个过孔,合理布放去耦电容。(2)
显示全部
相似文档