如何使用STM32的DSP进行傅里叶

2022年5月15日 11点热度 0人点赞

       傅里叶是一位法国数学家。他所发表的傅里叶级数法,极大地推动了微分方程理论的发展。傅里叶级数拓宽了函数概念,从而推动了函数论的研究。傅里叶变换是数字信号处理领域一种很重要的算法。其表明任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。DSP即数字信号处理器,可以处理浮点型数据。在傅里叶中我们常常使用FFT(快速傅里叶变换), 那么如何使用STM32的DSP进行FFT呢?

工具/原料

  • STM32
  • DSP

方法/步骤

  1. 1

     资源配置:

    下载STM32官方的DSP库文件,这个大家需要从网上去下载,小编在这里就不多做介绍了。

  2. 2

    添加库文件:

    把自己下载的库文件添加到工程文件里面,在通过双击2或者点击1添加文件。

  3. 3

    第一步点击新建文件夹,第二步添加文件【add  files】,第三步选中要添加的文件,第四步点击【add】,最后点击【OK】就行了。

  4. 4

    第一步点击新建文件夹,第二步添加文件【add  files】,第三步选中要添加的文件,第四步点击【add】,最后点击【OK】就行了。

  5. 5

     添加完毕后,出现了两个文件,一个arm_fft_bin_example_f32.c是官方的例子 和官方的数据 arm_fft_bin_data.c

  6. 6

    调用DSP函数:

    1、 添加完毕后,就可以使用dsp函数了。接着 我介绍一下这几个函数的作用

     

      /* IniTIalize the CFFT/CIFFT module */

     

      status = arm_cfft_radix4_init_f32(&S, fftSize,

     

      ifftFlag, doBitReverse); //这里是FFT的初始化

     

      /* Process the data through the CFFT/CIFFT module */ //FFT计算的函数 注意 tesTInput_f32_10khz 这个数组 不能是const 因为计算值是覆盖在这里面的

     

      arm_cfft_radix4_f32(&S, tesTInput_f32_10khz);

     

      /* Process the data through the Complex Magnitude Module for // FFT出来的是复数 这里是把复数求模 得幅值

     

      calculaTIng the magnitude at each bin */

     

      arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,

     

      fftSize);

     

      /* Calculates maxValue and returns corresponding BIN value */ //这里是求FFT出来数据模的最大值

     

      arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);

    使用这些函数就能进行傅里叶变换了。

  7. 7

    根据不同的情况使用不同的函数,继续加油吧。

    END

注意事项

  • 函数调用及其理解
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论