如何使用如何使用STM32提供的提供的DSP库进行库进行FFT
前些日子,因为需要在STM32F103系列处理器上,对采集的音频信号进行FFT,所以花了一些时间来研究如何
高效并精确的在STM32F103系列处理器上实现FFT。在网上找了很多这方面的资料做实验并进行比较,最终选
择了使用STM32提供的DSP库这种方法。本文将以一个实例来介绍如何使用STM32提供的DSP库函数进行
FFT。
1.FFT运算效率
使用STM32官方提供的DSP库进行FFT,虽然在使用上有些不灵活(因为它是基4的FFT,所以FFT的点数必须是4^n),但其
执行效率确实非常高效,看图1所示的FFT运算效率测试数据便可见一斑。该数据来自STM32DSP库使用文档。
图1FFT运算效率测试数据
由图1可见,在STM32F10x系列处理器上,如果使用72M的系统主频,进行64点的FFT运算,仅仅需要0.078ms而已。如果是
进行1024点的FFT运算,也才需要2.138ms。
2.如何使用STM32提供的DSP库函数
2.1下载STM32的DSP库
大家可以从网上搜索下载得到STM32的DSP库。
2.2添加DSP库到自己的工程项目中
下载得到STM32的DSP库之后,就可以将其添加到自己的工程项目中了。
其中,inc文件夹下的stm32_dsp.h和table_fft.h两个文件是必须添加的。stm32_dsp.h是STM32的DSP库的头文件。
src文件夹下的文件可以有选择的添加(用到那个添加那个即可)。因为我只用到了256点的FFT,所以这里我只添加了
cr4_fft_256_stm32.s文件。添加完成后的项目框架如图2所示。
2.3模拟采样数据
评论0