本帖最后由 jinyi7016 于 2025-12-30 11:47 编辑
DSP库使用的是STM32Cube_FW_H7_V1.12.1\Drivers\CMSIS\DSP\Source中的源码,添加到工程中进行编译的。
软件是cubeide1.17
信号 生成,相同的信号
[C] 纯文本查看 复制代码 for (i = 0; i < 1024; i++) {
adc_buf[i] = 5
* arm_sin_f32(2 * PI * FREQ_50HZ / SAMPLE_RATE * (float) i)
+ 10;
fft_buf[i] = adc_buf[i];//rfft
testInput_f32[2 * i] = adc_buf[i];//cffg
testInput_f32[2 * i + 1] = 0;
}
对同一信号 ,分别进行:rfft与cfft
[C] 纯文本查看 复制代码 arm_rfft_fast_f32(&fft_instance, fft_buf, fft_out, 0);
// 计算幅值
for (i = 0; i < NPT / 2; i++) {
fft_out[i] = sqrt(
fft_out[i] * fft_out[i]
+ fft_buf[i + NPT / 2] * fft_buf[i + NPT / 2]);
}
//cFFT
arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput_f32, 0, 1);
arm_cmplx_mag_f32(testInput_f32, testOutput, fftSize);
结果rfft是正确的
但cfft的就差很多,是我使用错了吗?
|