想要进行FFT操作就得配置DSP环境,操作如下
STM32 keil极速配置DSP环境
关于FFT,先上操作再讲含义

操作

添加定义

#define fftsize  256   //对256个数据进行FFT
#define ifftFlag 0float32_t testInput_f32[256]={0};
float32_t testOutput_f32[256]={0};
float32_t testOutputMag_f32[256]={0};

while循环代码

  while (1){HAL_Delay(1000);HAL_GPIO_WritePin(Start_GPIO_Port,Start_Pin,GPIO_PIN_RESET);HAL_Delay(100);HAL_GPIO_WritePin(Start_GPIO_Port,Start_Pin,GPIO_PIN_SET);HAL_SPI_Receive(&hspi1,(uint8_t *)data2,260,0xff);
//SPI接收数据for(int i=2;i<258;i++){testInput_f32[i-2]=data2[i]*5.0/4096;}
/*---------------------FFT----------------------------- */  arm_rfft_fast_instance_f32 d;  arm_rfft_fast_init_f32(&d, fftsize); arm_rfft_fast_f32(&d, testInput_f32, testOutput_f32, ifftFlag); arm_cmplx_mag_f32(testOutput_f32, testOutputMag_f32, fftsize);for(int i=0;i<128;i++){printf("%f\r\n",testOutputMag_f32[i]);}    /* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

含义


#define fftsize  256   //对256个数据进行FFT
//0正变换  1逆变换
#define ifftFlag 0//定义结构体
arm_rfft_fast_instance_f32 d;
//初始化
arm_rfft_fast_init_f32(&d, fftsize);
//进行快速傅里叶变换
arm_rfft_fast_f32(&d, testInput_f32, testOutput_f32, ifftFlag);
//testInput_f32为输入的数据
// testOutput_f32 变换后生成复数域,即1实数1虚数  总数还为256//求模值,最后生成一半的点(128)
arm_cmplx_mag_f32(testOutput_f32, testOutputMag_f32, fftsize);

对方波进行FFT得到如下图像
数据含直流分量



横坐标 => 每一横坐标点代表 F S N / 2 \frac{F_S}{N/2} N/2FS​​的频率
比如采样率为256Hz,N为256个点,横坐标的分辨率为2Hz

STM32 实数FFT 极速配置相关推荐

  1. 【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第32章       STM32H7的实数FFT的逆变换(支 ...

  2. stm32定时器中断的配置步骤

    stm32定时器中断的配置步骤 1>TIM3 时钟使能 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上): RCC_APB1PeriphClockCmd(RCC_APB1Pe ...

  3. 极速配置VScode C++运行环境

    [VScode]极速配置C++环境及必备插件 Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮. ...

  4. STM32 HAL库 CUBEMX配置 ADC采集

    文章目录 STM32 HAL库 CUBEMX配置 ADC采集 软硬件型号 1.单通道不定时任意时刻采集信号 CUBEMX配置 代码添加 2.单通道ADC采集+DMA传输 CUBEMX添加配置 代码添加 ...

  5. 【STM32学习】时钟配置详解

    [STM32学习]时钟配置详解 看懂时钟图 结合代码 外部高速时钟修改 看懂时钟图 在刚开始学习32的时候,并不会在意这些,或者即使看了也看的不是很明白.随着学习的深入,我们发现看门狗.定时器.ADC ...

  6. 前端工程化掌握webpack极速配置技巧

    大家好,我是小庄,一个专心于互联网技术的深漂打工人. 我们都知道,现在属于前端工程化时代,前端工程化对于我们前端开发来说,是非常重要的.但是小庄觉得自己对于前端工程化了解还是不足的,还有很多需要学习的 ...

  7. 用STM32实现FFT

    前言 电子设计大赛已经过去很久了,一直想写一篇关于FFT的文章也没有来得及,现在写一下来记录分享一下. 本篇文章不讲复杂的FFT原理,只讲如何在stm32里面怎么实现FFT 一.FFT是什么,能干啥? ...

  8. STM32单片机外部中断配置讲解

    2019独角兽企业重金招聘Python工程师标准>>> 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平.低电平).边沿变化(上升沿. ...

  9. 【STM32】FreeRTOS中断配置

    00. 目录 文章目录 00. 目录 01. 概述 02. 中断管理 03. 优先级分组 04. 优先级设置 05. 特殊寄存器 06. FreeRTOS中断配置宏 07. FreeRTOS开关中断 ...

最新文章

  1. 概要讲述SMTP, POP3和IMAP之间的区别和联系
  2. 043_对象构造器和原型
  3. Web前端知识体系精简
  4. MFC_CFileDialog_选择单一文件
  5. oracle服务器文件路径,ORACLE 数据库如何通过修改数据文件路径进行数据迁移
  6. 家电智能化转型之下 长虹在挖什么“坑”?
  7. mysql数据库文件怎么用_mysql数据库文件怎么用
  8. php pdo 抛出异常模式,php实现的PDO异常处理操作分析
  9. xtu oj 1355
  10. uniapp 跳转到商品详情页
  11. Storj:A Peer-to-Peer Cloud Storage Network(点对点云存储网络)
  12. SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版
  13. 告诉你那里最受欢迎,python爬取全国13个城市旅游数据
  14. 天堂图片网的星空图片保存到电脑上方法步骤
  15. 今夏成为小葫芦娃的最后机会!
  16. Tomat 8005端口安全问题
  17. Office Open XML 文档格式
  18. 权证基础知识学习(二)
  19. 第 055 封 信 丨 硅 谷 成 功 的 秘 诀
  20. TV视频客户端的厂商分析

热门文章

  1. Android开发 屏蔽Button setClickable和setEnabled
  2. rem,em,px,rpx等
  3. 精品基于Uniapp+SSM实现的定制旅游APP
  4. 一个遮罩层怎么遮罩两个图层_遮罩效果全解(13种方法)
  5. C语言数据结构——环形队列
  6. 【小沐学C++】C++17实现文件操作<filesystem>
  7. 【计算机网络】IPv6
  8. shell脚本:遍历指定文件夹下.jar后缀的文件,并备份到目标文件夹
  9. 一个强悍的web性能测试工具--WebPageTest
  10. xp计算机硬盘东西不显示,WinXP系统电脑找不到硬盘怎么办 WinXP系统找不到硬盘的原因及解决方法...