在 LPC5500 上使用 PowerQuad 和 CMSIS-DSP 计算 FFT
本应用笔记介绍了在相同计算案例中使用 CMSIS-DSP 软件和 PowerQuad 硬件进行 FFT 计算的用法。对于相同格式的输入和输出,PowerQuad 硬件可以替代 CMSIS-DSP 软件进行 FFT 计算。演示案例显示,PowerQuad 的运行速度远高于 CMSIS-DSP。
有关如何使用该软件的完整说明,请参阅 AN13496。https ://www.nxp.com/docs/en/application-note/AN13496.pdf
主板:LPCXpresso55S69
类别:工业
外设:UART、GPIO、FLASH
工具链:IAR
目录
1.软件
本应用笔记对所有演示计算案例采用通用计算流程。它运行从给定数组到预期输出数组的 512 点 FFT 变换。
输入
输入数组包含纯实数{1, 2, 1, 2, 1, 2, ..., 1, 2},长度为 512。
- 对于实数定点数,它们是整数 1 或 2。
- 对于实浮点数,它们是浮点数1.0f或2.0f。
- 对于复数定点数,它们是复数(1, 0)或(2, 0)。
- 对于复数浮点数,它们是复数(1.0f,0.0f)或(2.0f,0.0f)。
对于不同的计算情况,输入的值是相同的
输出
输出值数组除以下情况外全部为零:
- 第 0 个数字是 765。
- 第 256 个数字是 -256。
这个输出是合理的。从原始输入数组可以看出,输入数字的平均值是 1.5,简单开关波形的幅度是 0.5。这意味着原始输入可以表示为 1.5-0.5、1.5+0.5、1.5-0.5、1.5+0.5……开关周期为 2,频率为 ½。相位为负。没有其他频率因子。
在频率字段中,512 点 FFT 的步长为 1/512。只有第一项和 1/2(第 256 项)的位置非零。第一项表示直流因子,第 256 项表示简单开关波形。非零位置的值是幅度:结果 [0] = 1.5,结果 [256] = -0.5。
输出结果时,使用通用数学计算器(例如 Matlab)可以简化 1/N 的步骤,即直接输出结果乘以 N。本文案例中,实际结果为:result[0] = 768,result[256] = -256
软件版本信息:
2.硬件
- Micro USB 线缆
- LPCXpresso55S69 LPC55S69-EVK 修订版 A1
- 个人电脑
硬件使用LPCXpresso55S69 EVK板,硬件设置与SDK的hello world项目相同。
3. 设置
在运行示例之前,请设置硬件环境。
- 准备一个LPCXpresso55S69。
- 使用 micro USB 线连接 PC 主机和开发板上的 Jlink USB 端口(P6)
- 使用以下设置打开串行终端:
- 115200波特率
- 8个数据位
- 无奇偶校验
- 一个停止位
- 无流量控制
- 将程序下载到目标板。
- 在 IDE 中启动调试器以开始运行演示。
4.结果
为了获得结果,还支持使用 FreeMat 软件(类似 MabLab 的数学计算器 FreeMat 的开源版本)和以下脚本进行计算。
--> for (i = 1:512); x(i) = mod(i-1,2) + 1; end % create the input array in x.
--> y = fft(x) % run the fft and keep result in y
--> plot([1:1:512], y) % display the diagram of fft result
结果显示在终端上。
y =
1.0e+002 *
Columns 1 to 6
7.6800 + 0.0000i 0 0 0 0 0
Columns 7 to 12
0 0 0 0 0 0
...
Columns 253 to 258
0 0 0 0 -2.5600 + 0.0000i 0
Columns 259 to 264
0 0 0 0 0 0
...
Columns 505 to 510
0 0 0 0 0 0
Columns 511 to 512
0 0
本应用笔记介绍了在相同计算案例中使用 CMSIS-DSP 软件和 PowerQuad 硬件进行 FFT 计算的用法。对于相同格式的输入和输出,PowerQuad 硬件可以替代 CMSIS-DSP 软件进行 FFT 计算。演示案例显示,PowerQuad 的运行速度远高于 CMSIS-DSP。
常见问题解答
6. 支持
项目元数据
来源:恩智浦appcodehub
791
