傅里叶变换 ~ 基 2 时间抽取 FFT 算法

您所在的位置:网站首页 2点8-1点5 傅里叶变换 ~ 基 2 时间抽取 FFT 算法

傅里叶变换 ~ 基 2 时间抽取 FFT 算法

2024-07-05 14:09| 来源: 网络整理| 查看: 265

文章目录 1、基2时间抽取FFT算法原理2、基2时间抽取FFT算法流图2.1、示例1 ~ 4点的序列表示成两个2点的DFT2.2、示例2 ~ 8点的序列表示成两个2点的DFT2.3、实例演示 3、基2时间抽取FFT算法流图特点3.1、蝶形图的关系3.2、旋转因子的规律3.3、序列关系3.4、原位运算 4、基2时间抽取FFT算法的复杂度

1、基2时间抽取FFT算法原理

将一个长序列的DFT,表达为2个短序列的DFT。按照奇偶下标进行拆分,原理如下图所示: 在这里插入图片描述 注意:采用基 2 时间抽取方法的 N 必须是2的整次幂。

在这里插入图片描述 上面推导不仅使用了周期性,还使用了对称性: 在这里插入图片描述 所以就可以得到短序列合成长序列的DFT: 在这里插入图片描述 对于基2的时间抽取,分解到最后一级,就是两点的时域序列,两点序列求DFT,用下面的表达式: 在这里插入图片描述 然后再不断合成,2点合成4点,4点合成8点,不断向回推。对于基2的时间抽取,只有一级是实现时域到频域的转化,剩下的其他运算,都是利用短序列的 DFT 来合成长序列的 DFT 。 在这里插入图片描述上图的两个矩阵是一样的,为后面实现 DFT 的流图能够统一奠定了基础。右边的图是为了辅助理解的。

2、基2时间抽取FFT算法流图 2.1、示例1 ~ 4点的序列表示成两个2点的DFT

演示一个4点的序列 FFT 流图,如下图所示: 在这里插入图片描述在这里插入图片描述在上图中,只标注了-1的地方,凡是1的地方都没有标注,这样使得图更简洁。

2.2、示例2 ~ 8点的序列表示成两个2点的DFT

演示一个8点的序列 FFT 流图,如下图所示: 在这里插入图片描述然后再将 4 点序列的 DFT 分解为2 个 2 点序列的DFT。 在这里插入图片描述 在这里插入图片描述上图中只有 2点DFT 是实现从时域到频域的变换,后面都是短序列的DFT合成长序列的DFT。

由于时域上 2 点序列计算 DFT 和用两个短序列合成长序列的DFT的矩阵是一样的, 在这里插入图片描述 所以整个图看起来就非常对称,实际上就是完全对称的,如下所示: 在这里插入图片描述将这个图完整地表达出来,就是这样的: 在这里插入图片描述对于8点的序列来说,一共分为3级; 在这里插入图片描述 第一级是把时域的序列转化为它对应的DFT的值; 第二级是两个2点序列DFT合成一个4点序列DFT; 第二级是两个4点序列DFT合成一个8点序列DFT;

库利-图基的这个基二时间抽取FFT算法是一个非常精妙之处就在于它的这个算法结构非常对称。这个算法效率高,而且易于硬件实现。

2.3、实例演示

在这里插入图片描述在这里插入图片描述 最终得出结果: 在这里插入图片描述

3、基2时间抽取FFT算法流图特点 3.1、蝶形图的关系

在这里插入图片描述第一级的时候,蝶形图的间隔都是1; 在这里插入图片描述在这里插入图片描述

3.2、旋转因子的规律

旋转因子到最后一级一定是N0,N1,N2,… N/2 - 1。

在这里插入图片描述旋转因子的规律如下: 在这里插入图片描述

3.3、序列关系

在这里插入图片描述这个图告诉我们,将原本的下标0,1,2,3,4,5,6,7二进制表示之后,将这个二进制序列倒一下个,就得到它对应的所要的下标。 所以FFT在实现的时候,我们都用这样倒序的方式来实现。 在这里插入图片描述

3.4、原位运算

FFT还有一个非常奇妙的地方,它可以实现原位运算。

在这里插入图片描述原位预算就是后面一级的数据会自动覆盖前面一级的数据。 输入序列是8点序列,在整个运算过程中始终占着8个位置,无需存储中间计算结果。

在这里插入图片描述

4、基2时间抽取FFT算法的复杂度

在这里插入图片描述 复数乘法的次数变化: 在这里插入图片描述 当然这要求N应该等于2的M次,如果不满足,那就补0,补到满足为止。

在这里插入图片描述

可以通过具体的数据直观展示:

在这里插入图片描述有了FFT算法之后,让本来难以实时完成的DFT运算,可以实时完成。

通过程序实际体验: 在这里插入图片描述在这里插入图片描述 FFT算法只占DFT算法不到它原来的0.04%。这个效率是非常可观的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3