DigiKey“智造万物,快乐不停”创意大赛】DSP
[复制链接]
本帖最后由 wenyangzeng 于 2023-12-18 20:15 编辑
要实现FFT运算,需要使用ST的浮点运算单元,添加ST的DSP相关文件和设置
在main()添加代码:#include <arm_math.h>
在c++中添加__ARM_FEATURE_DSP,__ARM_FEATURE_DSP
添加ST的DSP相关文件
FFT_read()是基于arm_cfft_radix4_f32的1024个点的傅里叶运算函数。该函数读取ADC1转换的1024个正弦波数据进行FFT运算。
void FFT_read(void)
{uint16_t i;
arm_cfft_radix4_instance_f32 scfft;
arm_cfft_radix4_init_f32(&scfft,ADC_CONVERTED_DATA_BUFFER_SIZE,0,1);
for(i=0;i<ADC_CONVERTED_DATA_BUFFER_SIZE;i++)
{ inputbuf[2*i]=(uint16_t)(aADCxConvertedData[i]);
inputbuf[2*i+1]=0;
}
arm_cfft_radix4_f32(&scfft,inputbuf);
arm_cmplx_mag_f32(inputbuf,outputbuf,ADC_CONVERTED_DATA_BUFFER_SIZE);
}
STM32H7B3I可以很轻松的完成这个FFT运算任务了。
|