1 / 49

§6.7.4

N 是组合数的 FFT 算法. §6.7.4. 对 N 不是 2 的整数幂的情况,有两种处理方法。. 方法一:将 x ( n ) 补零,使 N 成为 2 的整数幂。例 N  =30. 可以加 2 点, N =32=2 5 ; N  =1000 可以加 24 点,即. N =1024=2 10 。. 如果要获得准确的 N 点 DFT ,可以用任意基的 FFT 算法。. 其基本思路还是将大点 DFT 尽可能分解为小点的 DFT ,. 充分利用小点 DFT 的周期性。. 1 、. N 是组合数的 FFT 算法.

junior
Download Presentation

§6.7.4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. N是组合数的FFT算法 §6.7.4 对N不是2的整数幂的情况,有两种处理方法。 方法一:将x (n)补零,使N成为2的整数幂。例N=30 可以加2点, N =32=25 ;N=1000可以加24点,即 N =1024=210。 如果要获得准确的N点DFT,可以用任意基的FFT算法。 其基本思路还是将大点DFT尽可能分解为小点的DFT, 充分利用小点DFT的周期性。

  2. 1、 N是组合数的FFT算法 以时间抽取法为例,讨论N是组合数的FFT算法。 pi ——均为素数 设 N=p1p2pm 令 q1=p2pm N=p1q1 先将N点DFT分解为p1个q1点的DFT。即将x(n)分为 p1组,每组q1个元素。

  3. 将分组后的 一般式 r= 0,1, q11 l= 0,1, p11 (共有p1个 ,对每个k值有(p11)次复乘)

  4. 有(p11)次复乘 其中 q1点的DFT

  5. 计算量: p1个q1点的DFT复乘 p1(q1)2 每一个X(k)值有(p11)次复乘,N个X(k)值有N (p11) 次复乘 总的合成X(k)的复乘次数 (6-103) 继续对 再分 令: 每 个点DFT又可以分解为 个 点的DFT。

  6. 合成q1点的DFT复乘 代入(6-103) 一直分解到最后一个素数

  7. 最后总的计算量(类推) 计算效率:

  8. 可分为三组,每组5点,即 则 举例 p=3、q=5 一般项为

  9. 将x(n)分解为p=3组、q=5点的DFT,再利用Gl(k)的 周期性将3个5点的DFT合成一个15点的DFT, 其示意 图如图6-41 所示。

  10. 其中:

  11. 合成时, Gl(k)为5点, X(k)为15点,所以k5。对 Gl(k)有Gl((k))5(模运算)。 k=0 k=1 k=9 k=14

  12. 5点 DFT 5点 DFT 5点 DFT

  13. 2、 组合数为N=pM的FFT算法 将N=pM点DFT分解为p个pM1点DFT ; p M1点DFT 二次分解为p个pM2点的DFT ;……。 仍以时间抽取法为例,一次分解X(k)为p个pM1点的DFT 式中 为第l个pM1点DFT

  14. 继续分解 为p个pM2点DFT ,得 式中 为第l个pM2点DFT。 以此类推,最终分解最短为p点的DFT,即 式中Xlp(k)是第l个p点DFT。

  15. 经M次分解后以p为基的FFT复数乘法的计算量,利经M次分解后以p为基的FFT复数乘法的计算量,利 用(6-105)式得到: mF=N(p+ p+ p+ p+pM) M个 =N(p1) M= N(p1)logpN 特别的,当p=2 mF=N(p1) M =NM= N(p1)log2N

  16. 2 3 4 5 6 7 1 1.2681 1.5 1.7226 1.9342 2.1372 计算量与基2相比 可见,随着p效率 。

  17. 不过,当N=4M ,即以4为基(类推基8,基16)的 情况时,实际的计算量比上述计算量要小得多。下面 讨论基4 FFT算法。 首先将N=4M点DFT分解为四个N/4点的DFT

  18. Xl(k) N/4点的DFT 式中X0(k), X1(k) ,X2(k) ,X3(k)均为N/4点的DFT。 由四个N/4点的DFT合成N点DFT,要利用N/4点 DFT的周期性,即

  19. X0(k)= X0(k +N/4) =X2(k +N/2) =X3(k +3N/4) X1(k)= X1(k +N/4) =X1(k +N/2) =X1(k +3N/4) X2(k)= X2(k +N/4) =X2(k +N/2) =X2(k +3N/4) X4(k)= X4(k +N/4) =X4(k +N/2) =X4(k +3N/4) 这样, N点DFT为

  20. 基4的基本蝶形如图6-42所示

  21. 基4计算式中的乘法系数与 有关,注意到 具有 的对称性,即 ,且 的对 而±j , ±1都不必作乘法运算,所以利用 称性,上式简化为

  22. 简化后基4的蝶形如图6-43所示。

  23. -j -1 j -1 -1 j -1 -j

  24. 上式是N=4M一级分解的结果。以此类推,后面的各级上式是N=4M一级分解的结果。以此类推,后面的各级 分解会有相同的运算量减少。与基2一样N越大,效率 越高。比较后,可知基4计算量比基2还少。同理,基8、 基16有类似的结果。例N =4096=212时,比较基2、 4、 8、16运算量 基 实乘数 实加数 2 89,924 139,266 4 57,348 126,978 8 49,156 126978 16 48,132 125,442

  25. 由表6-4可见,随着基数上升运算效率提高并不多。而基由表6-4可见,随着基数上升运算效率提高并不多。而基 数的增加会使算法结构复杂。并且基越大,蝶形结构越 复杂。运算量的减少是以程序(或硬件)复杂为代价, 基太大往往得不偿失。所以有人认为取大于8的基数没有 多大实际意义。上世纪八十年代法国人提出了将基2分解 与基4分解结合的分裂基算法,其运算量比基2少,运算 流图与基2FFT接近,运算程序也不长,是一种实用高效 算法,有兴趣的读者可以参考有关教材。

  26. §6.8 线性调频z变换算法 在利用DFT作频率分析时,会遇到以下几种希望频率分 辨率得到改善的情况。 (1)求短序列DFT时,把较短序列的点均匀分布在单 位圆上,得到的频率分辨率是2 /N很低的。采用 补零的方法增加点数,可以提高频谱密度,但N的增 加意味着计算量的增加,是低效的算法。

  27. (2)实际问题中往往会遇到包括两个或两个以上分段的(2)实际问题中往往会遇到包括两个或两个以上分段的 频谱,由于对各分段的兴趣不同,所以对各分段的采 样率要求并不一样。例如我们需要对 =  ~之间 128点窄带信号频谱进行分析,按常规方法是计算1024 点的离散傅里叶变换,然后取出需要128点频谱采样值。

  28. (3)由第五章频响函数的几何作图得知,极点离单位圆(3)由第五章频响函数的几何作图得知,极点离单位圆 越近,谐振峰越明显。而如图所示,当极点离单位圆较 远时,往往很难确定极点所对应的频率。 很难确定峰值频率 希望这样

  29. 如果不是在单位圆上采样,而是沿着如图所示靠近这些如果不是在单位圆上采样,而是沿着如图所示靠近这些 极点的弧线进行,那么在极点对应的频率上会出现明显 的尖峰,有利于谐振峰频率的识别。 总之,为了在不增加计算量的情况下,解决频率分辨率 的问题,人们提出了线性调频z变换算法。

  30. 式中 是数字频率 1、CZT定义(奥本海姆——CTA) 设x(n)为已知时间序列,时宽为N,其zT (6-109) 为实数

  31. 按上式频谱的计算必然是从z平面的实轴开始,以A=1按上式频谱的计算必然是从z平面的实轴开始,以A=1 为半径的圆上。但如果希望得到任意起始点和以螺线规 律变化的z值,可以设: (6-110) k=0,1,2,,M1 式中A0,W0为正实数。将k=0,1,2,,M1代入上式, 得到

  32. 是z平面上相邻 之间的夹角 ; 随着 螺线外伸趋向 单位圆。 0是A的起始角,由A可以确定频谱采样的起点; 随着 螺线内缩 趋向原点;

  33. 螺线采样如图6-45所示。

  34. 将zk代入z变换公式,得到 CZT定义 CZ[x(n)]=X(zk) k=0,1,2,,M1 M不需要等于N 由上式可以看到每计算一个 X(zk)值需要有N次复数乘 法,一共有M个 X(zk) ,所以直接计算CZT的计算量 为: mz=NM

  35. 当N 、M较大时,可以利用FFT减少运算量,提高 运算速度。 2、利用FFT的CZT算法 利用恒等式 (6-113)

  36. 则 (6-114) 是(6-113)式的一部分 即 k=0,1,2,,M1

  37. k=0,1,2,,M1 上式的计算可以用图6-46的流图表示,即可以用一线 性系统实现。

  38. CZT计算(算法)具体步骤 (1)加权 其中 ,为一 点序列; 按对应的 相乘得到 计算出 并与 (2)补零、位移 点循环卷积计算 为了用 的线性卷积,并得 点的正确结果,要对 到 作处理,变为

  39. 补零后为L点的 其中 一般取 ,为了利用FFT可以取 为一无限长序列,为了用循环卷积得到 前M点的正确值,要用 中的 点(当 时,在M-1的右侧补零)。

  40. 时有)

  41. (3)FFT计算 、 的L点FFT得 、 (L点) 分别作 (4)相乘 L点 L点 IFFT (5)IFFT 只取k=0,1,2,,M1 (6)加权 k=0,1,2,,M1 一般 、 是事先计算做表存储好的(不必实时 计算) 。

  42. 补零L点 L点FFT 加权N点 (1) 补零L点 L点FFT L点IFFT 加权M点 L点相乘 取M点 CZT计算流图 (1)

  43. 计算量:两次加权 N+M次复乘; L次复乘; FFT、IFFT各一次 或 若 总共 计算量比较:直接计算M点的X(zk) mz=NM

  44. 例6-9 N =9、M=8 直接计算 mz=NM=72 用线性系统实现CZT的计算量 取 L =16=24 比直接计算量大。

  45. 例6-10 N =1024、M=128 ,比较CZT的两种方法 计算量。 mz=NM=131072 直接计算 用线性系统实现CZT的计算量 取 L =2048=211 mF=1024+128+2048+4096×11=48256

  46. 由两例可见,当N 、M不大时,最有效的方法是直接 算法。只有当N 、M较大时,FFT算法在速度上才有 较大的改进。 3、CZT的优点 (1)序列的长度可以随意,即原来时序为N点的序列经 CZT后可得到M点的X(zk) ,并不要求N与M具有某种 关系。

  47. (2) X(zk)的频率分辨率可以随意选定,zk与zk+1之间的等 角间隔0是可以任意选定的,起始频率0也是可以任 意选定的。这样可以使窄带信号在频域中的M个点集中 在0 ~0 +(M1)0这一范围内,从而增加频率分辨率。 例如,(M1)0=/4,如果用一般的DFT要得到同样的 点才可以得到 分辨率,则需要计算 的相同效果。

  48. (3)CZT不仅适用计算围线在单位圆(A0 =1)上的z变换, 也适用位于螺线上的z变换的情况,可使原本平缓的谐 振峰突出。

More Related