captainliuy 发表于 2017-2-27 10:15:57

如何用STM32F429实现8192和16384点的实数FFT?

另外根据CMSIS-DSP 1.4.7的文档,
“Except the first complex number that contains the two real numbers X and X all the data is complex. In other words, the first complex sample contains two real values packed. ”
所以安富莱_STM32-V5开发板《数字信号处理教程V1.0》第391页末说计算直流分量的虚部有错误,可能不对。

eric2013 发表于 2017-2-27 10:17:30

8192点支持。
16384点不支持。

ysz0836 发表于 2017-3-10 19:29:05

用实数FFT时,得到的最终结果也是复数,假设128点的FFT,则得到128个结果,第一个结果如英文文档所说是X0和Xn/2,第2个数值是几波,接下来依次类推。。。。
但是当用 matlab得到256点的数据,在把这个数据做实数FFT时,得到的结果是:
X1为基波,X3为一次谐波,间隔了2个数。。。。
N=512时则X4为一次谐波,即间隔了4个数.。。。
屡试不爽!

ysz0836 发表于 2017-3-10 20:07:35

就是说实数FFT分析都没有问题,但是就是存在N=2565121024等数时,最后的结果不是连续的对应一次谐波 二次谐波。。。。,只有当N=128时:
X1----一次谐波;
X2----二次谐波;
X3----三次谐波;
X4----四次谐波;
且N=64时,FFT不准。。。。
以上结果均用matlab试验过。
不忽悠。。。。。
望高手能指点一下这个情况什么情况?

baonng 发表于 2017-3-20 13:52:10

回 eric2013 的帖子

eric2013:8192点支持。
16384点不支持。 (2017-02-27 10:17) images/back.gif

版主,使用ST公司的DSP库进行FFT运算,能增加汉宁窗吗?我按照你们介绍的,使用库函数进行FFT运算,同一输入,不同采样频率,得到的基波的幅值竟然不同。
arm_rfft_fast_init_f32(&S, 1024);
arm_rfft_fast_f32(&S, xdata, wdata, 0);
arm_cmplx_mag_f32(wdata, ydata, 512);

eric2013 发表于 2017-3-20 16:31:23

回 baonng 的帖子

baonng:版主,使用ST公司的DSP库进行FFT运算,能增加汉宁窗吗?我按照你们介绍的,使用库函数进行FFT运算,同一输入,不同采样频率,得到的基波的幅值竟然不同。
arm_rfft_fast_init_f32(&S, 1024);
arm_rfft_fast_f32(&S, xdata, wdata, 0);
arm_cmplx_mag_f32(wdata, ydata, 5 .. (2017-03-20 13:52) images/back.gif

这个是ARM的DSP库,不支持。

你可以采样率是基波的整数倍,降低下频谱泄露,效果好些。

baonng 发表于 2017-3-21 10:17:29

回 eric2013 的帖子

eric2013:这个是ARM的DSP库,不支持。

你可以采样率是基波的整数倍,降低下频谱泄露,效果好些。 (2017-03-20 16:31) images/back.gif

多谢,看来要把这块做好,还得好好研究下
页: [1]
查看完整版本: 如何用STM32F429实现8192和16384点的实数FFT?