概述
①rfft实数傅里叶变换
uint16_t fftSize = 2048; //定义rfft的长度
uint8_t ifftFlag = 0; //表示fft变换为正变换,1则为逆变换
arm_rfft_fast_instance_f32 S; //定义rfft的结构体
arm_rfft_fast_init_f32 (&S, fftSize); //例化fft结构体,确定fft点数
arm_rfft_fast_f32(&S,data_frame_left, fr_left,ifftFlag); //1024点实序列FFT
②cfft复数傅里叶变换
#include "arm_math.h"
#include "arm_const_structs.h"
在使用cfft时会报错arm_cfft_sR_f32_lenXXX未定义,需要incluarm_const_structs.h”
arm_cfft_f32(&arm_cfft_sR_f32_len2048, c_real, 1, 0);
函数描述:
这个函数用于单精度浮点复这个函数 用于单精度浮点复这个函数 用于单精度浮点复这个函数 用于单精度浮点复这个函数用于单精度浮点复这个函数 用于单精度浮点复FFT 。
函数参数:
◆ 第1个参数是封装好的浮点FFT例化,支持的参数如下:
⚫ arm_cfft_sR_f32_len16,16点FFT ⚫ arm_cfft_sR_f32_len32,32点FFT ⚫ arm_cfft_sR_f32_len64,64点FFT ⚫ arm_cfft_sR_f32_len128,128点FFT ⚫ arm_cfft_sR_f32_len256,256点FFT ⚫ arm_cfft_sR_f32_len512,512点FFT ⚫ arm_cfft_sR_f32_len1024,1024点FFT ⚫ arm_cfft_sR_f32_len2048,2048点FFT
⚫ arm_cfft_sR_f32_len4096,4096点FFT
◆ 第2个参数是复数地址,存储顺序是实部,虚部,实部,虚部,依次类推。
◆ 第3个参数用于设置正变换和逆变换,ifftFlag=0表示正变换,ifftFlag=1表示逆变换。
◆ 第4个参数用于设置输出位反转,bitReverseFlag=1表示使能,bitReverseFlag=0表示禁止。
③幅值计算
arm_cmplx_mag_f32(testInput_f32, testOutput_f32, TEST_LENGTH_SAMPLES);
对于输入数据求解其幅度,即sqrt(x^2+y^2).
参考文献:
【1】安富莱 STM32-V7 开发板数字信号处理教程
最后
以上就是冷酷可乐为你收集整理的STM32中arm_math.h库中fft的相关使用的全部内容,希望文章能够帮你解决STM32中arm_math.h库中fft的相关使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复