我是靠谱客的博主 冷酷可乐,最近开发中收集的这篇文章主要介绍STM32中arm_math.h库中fft的相关使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

①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的相关使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部