第四章 离散傅里叶变换及其快速算法,4.1 离散傅里叶变换的定义和物理意义,N是离散傅里叶变换的区间长度,能够证明这种变换具有唯一性。序列x(n)的长度为N,其Z变换、DFT和傅里叶变换分别能够表示为;Z变换X(z)在单位圆上取N个等距点,就得到DFT的X(k);同样,傅里叶变换X(ejω)在某个区间内取N个等距点,也能得到X(k);这就是DFT的内在含义。根据前述研究,DFT的变换区间所含样本数量N存在差异,这表明对X(ejω)进行取样时,每个区间的取样密度和取样点数量不同,因此计算出的DFT结果也会有所区别。DFT具备线性特征,当两个序列x1(n)和x2(n)的长度分别为N1和N2时,若y(n)通过ax1(n)+bx2(n)组合而成,取N为N1与N2中的最大值,那么y(n)的N点DFT可以表示为;DFT还表现出周期特性,因为x(n)和X(k)都是有限长序列,它们都拥有周期性,且这个周期长度都是N。实际上,任何以N为周期的序列,都可以视为某个长度为N的序列x(n)的周期性重复,而x(n)本身就是一个周期;为了简化表达,这种周期序列与有限长序列x(n)的关联也可以用另一种方式展现;可以证明,一个周期为N的序列,其离散傅里叶级数的分析过程与综合方法,能够用特定公式描述,其中涉及;4.2 离散傅里叶变换的若干特性;2、时间域上的循环位移特性 设x(n)为长度为N的序列,y(n)是x(n)经过循环位移后的结果,即则;3、频率域上的循环位移特性 如果则;4.2.2 循环卷积特性 1、时间域上的循环卷积特性 若x1(n)和x2(n)的长度分别为N1和N2,取N为两者中的最大值,若X(k)= X1(k) ·X2(k),可以证明 上式所进行的运算,是x1(n)和x2(n)的循环卷积运算,简称循环卷积。仔细研究可以发现,这个公式还可以表述为,计算循环卷积的过程包括以下几个环节:首先,频域循环卷积定理表明,当信号x(n)等于x1(n)乘以x2(n)时,可以进行如下证明,巧妙地运用时域和频域循环卷积定理,能够有效避免繁琐的循环卷积计算,这对于提升系统运行速度,优化系统构造具有显著作用。复数序列的共轭形式,其离散傅里叶变换具备特定性质,这个性质可以通过相应推演得到,此外,还有其他类似性质可以推导出来;对于时间上有限的序列,存在一种对称关系和一种反对称关系,这两种关系的定义如下:当序列长度为偶数时,通过将公式中的时间变量替换为N/2减去该变量,可以得到相应结果;已经证实,任何时间上有限的序列都能够分解为其对称部分和反对称部分的总和,即;将序列分解为实数部分和虚数部分,即,能够导出相应结论;结合实数部分和虚数部分的离散傅里叶变换,可以分别用不同表达式表示;关于频率域的采样规则,离散傅里叶级数的系数与离散傅里叶变换存在关联kaiyun全站网页版登录,这个关联可以用公式表达,将X(k)代入该公式,可以验证其正确性,由此可以证明;能够从频率域的采样值X(k)恢复原始序列x(n)的条件是:在频率范围覆盖的区间内,采样点数N必须大于或等于序列长度M,否则就会在时间域上引发混叠现象。这就是所谓的频域采样定理。xN(n)等于逆离散傅里叶变换,即x(n),其中n的范围是0到N-1。4.3.2 利用频域采样信号可以复原原始信号。对于长度有限的序列x(n),只要符合频域采样定理,N个频域采样点X(k)就足够精确地描绘出序列的属性。换句话说,通过N个X(k)值,能够推算出X(z)或者X(ejω)。该序列x(n)的长度为M,在频域范围内等距选取N个点,N大于等于M,这符合频域采样条件,因此可以推出相应表达式;通过代入相关公式,可以得到进一步形式;这个表达式经过整理,其中涉及到内插函数的计算;只要X(z)的收敛范围包含单位圆,就能利用z=ejω的方式,从而求得x(n)的傅里叶变换X(ejω)的内插函数和内插公式;4.4部分关于快速傅里叶变换的说明;针对长度为N的序列x(n),其离散傅里叶变换可以表示为特定形式;当选择某个k值时,如果直接按照前述公式计算X(k),需要执行N次复数乘法运算和(N-1)次复数加法运算。要算出所有N个X(k)值,总共要乘N平方次复数,还要加N乘以N减一 次,复数加法。快速傅里叶变换算法的核心思路:先分成几个小段,再借助旋转因子,利用它的周期和对称特点来简化计算。4.4.2 时域分解方法基-2FFT算法 根据n的奇数偶数情况,将x(n)分为两个N/2长度的子序列;x(n)的离散傅里叶变换能够写成;基于此所以其中X1(k)与X2(k)分别是x1(r)和x2(r)的N/2点离散傅里叶变换,依据离散傅里叶变换的循环性质,则X1(k)等于X1(k+N/2),X2(k)等于X2(k+N/2),并且;因此X(k)能够表述为:前述两个等式的运算可以用流程图符号展现如下,中间以一个小圆圈代表加法运算,上方分支为相加后的结果,下方分支为相减后的结果。这种运算符在N等于23等于8的情况下,和初次分解一样,把x1(r)依照奇偶性分成两个长度为N/4的子序列x3(l)和x4(l);接着,X1(k)又可以表述为相同,依据X3(k)和X4(k)的周期特征和对称特征,最终能获得;接着,把x2(r)依照奇偶性分成两个长度为N/4的子序列x5(l)和x6(l),实施类似x3(l)和x4(l)的N/4点DFT运算,根据X5(k)和X6(k)的周期特征和对称特征,最终能获得;按照这种方式,持续进行M-1次分解,最终能把N点DFT分解为N/2个2点DFT。分频域提取方法基础上的二快速傅里叶变换算法,其DIF-FFT算法并非依据偶数和奇数来划分序列x(n),而是将序列x(n)前后进行均等拆分,从而能够将N个点的DFT表示为两个相互独立的部分。根据公式中k值的不同,可将X(k)拆分为偶数项与奇数项,当k为偶数情况下,当k为奇数情况下,接下来定义将x1(n)和x2(n)分别代入前述公式,由此能够推导出x1(n)和x2(n)同x(n)的关联性,这种关系同样可以通过蝶形运算流图来表示;通过结合蝶形运算流图,能够构建出N = 8的分解运算流图,由于N = 2M,因此N/2依然是偶数,可以继续将N/2点DFT进一步拆分为偶数项与奇数项,如此一来每个N/2点DFT都可以由两个N/4点DFT组合而成。计算一次乘法所需时间远超计算一次加法,因此分析运算量时仅统计乘法次数,2,某级蝶形运算结果能存入原输入数据存储单元,这种原位计算方式能节省大量内存,进而降低设备成本。序列的逆序安排,DIT-FFT算法的输入数据按位反序排列,DIF-FFT算法的输出数据按位反序排列;因为序列的长度N等于2的M次方,所以顺序编号可以用M位的二进制数(nM-1nM-2…n1n0)来指定。码位倒序指的是把二进制数从顶端到底端的位次调转过来排列,也就是把(n0n1…n M-2n M-1)这样,以此达成码位倒序的目的。旋转因子的排列顺序在DIT-FFT运算流图中从左至右呈现差异,用L标示从左向右的运算层级(L=1,2,……,M)。当N=2^3=8时,各级旋转因子呈现如下分布:L=1层级,L=2层级,L=3层级。相较之下,DIF-FFT算法的旋转因子从左至右的排列次序与DIT-FFT算法截然不同,当N=2^3=8且M=3时,各级旋转因子呈现如下分布:L=1层级,L=2层级,L=3层级。4.5.2 为实现计算量的进一步降低,可通过提升程序复杂度来实现。对于多类蝶形单元运算,全面来看,在FFT算法中,当旋转因子取±1和±j时,均无需进行乘法运算,这些旋转因子具体涵盖、和。FFT算法还包含一些特殊的复数运算,比如旋转因子为的情况。这种情况下,可以表示为,通过这种方式,一次复数乘法得以简化为两次实数加法和两次实数乘法运算,从而将运算量减少一半。如果囊括了所有旋转因子,也就是针对所有相关旋转因子的乘积kaiyun.ccm,都实施复乘运算,那么这个算法就属于一种蝶形单元运算;如果舍弃了某些旋转因子,那么这个算法就属于二种蝶形单元运算;如果舍弃了某些旋转因子,那么这个算法就属于三种蝶形单元运算;如果舍弃了某些旋转因子,那么这个算法就属于四种蝶形单元运算;一般会将二种、三种以及四种蝶形单元运算合称为多类蝶形单元运算。生成旋转因子时,一般会提前算好开yun体育app官网网页登录入口,然后存入一个因子表里,程序运行时直接从表中找到需要的因子,这种方式计算效率高,不过会占用更多内存空间。实序列的快速傅里叶变换算法 可以通过以下方式来提升运算效能:首先,运用一个N点的FFT处理两个N点实序列,其中一个序列充当FFT的实部,另一个序列则作为FFT的虚部,当FFT运算结束后,依据离散傅里叶变换的共轭对称特性,能够从输出X(k)中分别导出两个实序列的N点离散傅里叶变换结果用N/2点的快速傅里叶变换计算一个N点实序列的离散傅里叶变换,其方法是先把x(n)序列的偶数序号样本和奇数序号样本分开,偶数序号样本构成新序列y(n)的实部,奇数序号样本构成新序列y(n)的虚部,这样就可以利用较短的FFT算法来求解整个序列的DFT结果。对y(n)实施N/2次FFT运算,得出Y(k)即为DFT结果,依照DFT的对称特性,可以推出;遵循DIT-FFT方法,能够求得;鉴于x(n)属于实数序列,X(k)表现出对称性,其剩余N/2个点的值等于;如此一来,x(n)所代表的N点实数序列的DFT便全部求出。若将DFT计算中的系数进行相应调整,并在运算结束后再乘以一个系数1/N,这样所有FFT算法都能够用于执行IDFT运算。还有,因为1除以N等于1除以2乘以M,为了避免计算时出现数据溢出问题,常常把常数1除以N平均分配到各个计算步骤里,每个步骤都要额外乘上一个1除以2的系数,然后可以直接使用快速傅里叶变换的子程序,或者直接借助快速傅里叶变换的专用芯片来执行逆变换操作。详细说明如下,根据这一原因 对上式两端实施共轭运算,由此得到 计算方法:首先对X(k)执行共轭操作,接着直接运用FFT子程序,或者将其输入FFT芯片完成DFT运算,最终对计算所得结果再次进行共轭,同时乘以系数1/N即可获得X(k)的最终值。采用FFT技术求解线性卷积,当序列长度N数值显著增大时,频域运算的效率远超时域运算,因此经常借助FFT处理循环卷积问题;需要阐明线性卷积和循环卷积的内在联系,以及两者相等的特定条件;接下来将对此议题展开探讨;设定h(n)与x(n)为有限长序列,其长度分别为N和M它们通过线性叠加和循环叠加的方式呈现出来,其中yl(n)的长度是有限的;将前述公式代入其中,当循环叠加的周期L不小于N加M减一的值时,yl(n)会以L为基本单位展开周期性扩展,在时间轴上就不会出现信号失真的情况。将L设定为N与M相加再减去1,便可通过快速傅里叶变换来求解线性卷积,具体流程如图所示,其中离散傅里叶变换和逆离散傅里叶变换均直接借助快速傅里叶变换完成,这种借助快速傅里叶变换进行线性卷积的计算方式亦称作快速卷积。然而在具体运用时,常常会遇到一个序列的规模远远超出另一个序列的情形。假设序列h(n)的长度为N,而x(n)则是一个无限长的序列将x(n)等距划分,每份区间为M,那么;接下来,h(n)和x(n)的线性卷积能够写成前述公式,这说明,只要x(n)的各个片段分别和h(n)进行卷积运算,再把所有卷积值累加在一起,就能得到最终序列值。必须留意,各个片段卷积生成的yk(n)的规模要超出xk(n)的M和h(n)的N,具体为L=N+M-1。所以,前后两个yk(n)序列之间必然有N-1个位置需要相互交叠,这些交叠的片段必须合并在一起,才能形成最终的输出序列y(n) ;4.6.3 用DFT对信号进行频谱研究 信号的频谱研究就是通过求取信号的傅里叶变换,获得该信号的频率特性。离散傅里叶变换是对时间和频率都进行离散处理的数学方法,因为具备快速傅里叶变换的算法支持,所以运用快速傅里叶变换实现的离散傅里叶变换,成为处理离散信号和系统的有效手段。假设连续信号xa(t)的持续时间是Tp,最高频率为fc。连续信号xa(t)的傅里叶变换表达式为,对连续信号xa(t)按照间隔T≤1/2fc(也就是采样频率fs=1/T≥2 fc)进行采样,得到离散序列x(n) = xa(nT)。采集N个数据点,将Xa(jf)转化为由离散值构成的形式,即时间点为nT,时间间隔为T,可以表述为X(jf)依然随频率f呈现连续周期性变化,对X(jf)在某个区间内进行N次等距采样,采样间距为F,参数fs、Tp、N和F之间具备特定联系,通过基础推演能够获得Xa(jf)的采样结果,记作;依照此思路,同样能够导出;进行连续信号的频谱分析时,核心关注两个指标,即分析频带宽度与频率区分度。对真实信号实施频谱解析,需要频谱分辨率为每赫兹不超过十赫兹,信号最高频段为五千赫兹,必须计算最短记录时长,最大采样时间间隔,以及最少采样数据量。若fc固定,需使频谱分辨能力提升两倍,最少采样点数与最短记录时长为多少?因此最小记录时长为0.1秒,又因为,所以;为使频率分辨能力提升两倍,频率间隔F应为5赫兹,要求;为达此频谱分辨能力提升效果,时域采样必须符合采样定理,实际操作中通常将采样频率fs设定为信号最高频率fc的三至五倍。;感谢您的关注。

