如何将 8 个 N/8 个 FFT 组合成一个 N FFT

信息处理 fft 自由度
2022-02-11 00:08:47

我需要在 FPGA(使用 Verilog)中制作 FFT。输入数据在 1 GSPS 时 N=8192 点。然而,FPGA 以 125 MHz 运行,因此数据被分成 8 个通道(每个通道为 125 MHz)。这种数据拆分和计算 N/8 FFT 对我来说没有问题,它已经完成了。

我不明白的是如何组合 N/8 个 FFT 的输出来创建一个 N FFT。我创建了一个显示数据流的示意图,其中蓝色块代表已完成的内容,绿色块代表我不理解的内容。

我一般理解 Cooley-Tukey FFT 算法和蝴蝶图,因为它们与 8 点或 16 点数据相关,但我不明白如何将这些扩展为 8192 输入序列。

非常感谢有关如何实现绿色块背后的理论、数学或 FPGA 实现的任何帮助!

信号流示意图

1个回答

经过一番思考,我想我已经想出了答案。我很困惑,因为大多数蝴蝶图都以 4 个单独的 n/4 DFT 开头,如下图所示(添加了注释)。

而在我的问题中,我从 8 个单独的 N/8 DFT 开始。我对如何连接每个 N/8 DFT 的输出以重新创建 N DFT 感到困惑。

然而,现在,我相信附上的蝴蝶图和我的问题之间没有任何真正的变化。我认为我的 N/8 FFT 的每个输出都直接馈送到所附图表上的每个输入。然后旋转因子在每次迭代后增加 8 倍。

这听起来正确吗?在此处输入图像描述