我用的是STM32F103系列的,不带硬件DSP核心的。但是ST有官方的DSP库,我只是使用了DSP库其中的FFT函数。
FFT函数在很多地方都会用到这里面有64、256、1024个点的FFT子函数。具体代码使用汇编编写的,都是官方文件,为了算法的精简和优化。我之前做频谱分析的时候用到了FFT,频率不高。(具体多少忘了)
同时在程序中我也还写了ADC采集部分。由于很久之前做的项目,连线方式等等也忘了,不过相信能看到我这篇文章的,应该能看懂程序,能找到硬件连接方式。官方虽然只给出了1024个点的FFT DSP库函数,但是可以通过修改其中的旋转因子,来达到增加点数的目的。不过由于STM32硬件自身原因,添加不了很大,我弄过最大也就4096个点的。具体的旋转因子怎么修改添加,大家还请百度,这个到处都有。下面就吧我的代码贴上来,希望对大家有帮助。程序都由自己通过学习原子程序来修改的,但是原子没有教过使用DSP库,希望能让更多人看到吧。
|