尊敬的先生:
我使用的是 MSP430FR5994的 Launchpad。 现在、我已经看到示例 BOOSTXL_AUDIO 项目 、它以汇编语言实现了 FFT。 是否有任何 LaunchPad/Evolution 板已在 C 语言中实现 FFT? 正在寻找您的建议
谢谢、此致、
Krunal Desai。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的先生:
我使用的是 MSP430FR5994的 Launchpad。 现在、我已经看到示例 BOOSTXL_AUDIO 项目 、它以汇编语言实现了 FFT。 是否有任何 LaunchPad/Evolution 板已在 C 语言中实现 FFT? 正在寻找您的建议
谢谢、此致、
Krunal Desai。
尊敬的 Peter:
感谢您的回复。 您已在回复中附上未打开的 pdf。 我对很少的 API 有疑问、
1) 1)我已下载 Benchmark Q15_CFFT_Fixed_256项目。 在示例代码中、 MSP_cmplx_FFT_fixed_Q15 (&fftParams、input); 此 API 正在使用。
使用此 API、它们将应用256个样本 FFT 算法。 我是对的吗? 我只需要放置参数输入和输入数据。
同样、我们可以为 FFT 算法应用512和128点样本。 我是对的吗?
请提供您的建议。
谢谢、此致、
Krunal Desai
您好 Krunal、
您要求 FFT 上的"C 代码";我在这里的建议不是这样。 我这样说有几个原因。 C 语言不是以高效方式对 FFT 进行编码的语言。
原因如下:
C 没有本机复数;您需要使用实部和虚部定义结构;但这些通常是通过引用而不是通过值传递的。 所有这些都会使事情变得更慢
C 也没有本机复数算术;对于 ADD、SUB、MPY、您需要具有小函数 (可能是内联类型);有点快、但不易读。 用于相同操作的更多时钟...
C 处理整数算术;小数的概念相当不寻常;一个小数 MPY 运算的结果需要从一个较大的数字类型中提取(430具有一个原生形式)。
- C 没有位反转指针的概念(位反转进位传播地址算术)。
我建议在这里使用一些已经在心理上被消化过且易于使用的东西。。 除非您想了解 FFT 内部的美丽(因此我建议使用 Google 和 Wikipedia)。
只是 FFT 基本函数之一"蝶形计算操作"的一些基准测试数据。
支持 LEA 的 MSP430采用8个周期/蝶形计算;采用汇编语言的 MSP430采用81个周期/蝶形计算;可读 C 代码设计的编译周期数不超过380个周期/蝶形计算。
这是我的50cts。
祝你度过美好的一天