首页 > 其他分享 >基于GD32F303,CMSIS-DSP支持包,实现FFT,得到频率,还原单一频率的波形

基于GD32F303,CMSIS-DSP支持包,实现FFT,得到频率,还原单一频率的波形

时间:2024-03-22 10:00:24浏览次数:31  
标签:radix2 CMSIS FFT cfft LENGTH 频率 include arm

        一般情况下M33 M4的内核是支持DSP包的,用户只需要自己添加支持包,并添加相应的头文件即可,比如#include "arm_math.h",#include "arm_const_structs.h" 等等。

(1)main.c

#include "gd32f30x.h"
#include "stdio.h"
#include "string.h"
#include "arm_math.h"
#include "arm_const_structs.h"

#define FFT_LENGTH 				512              //做512个点的FFT
#define SAMPLING_RATE 			640              //计算final_value_a 数组的采样率      
#define TARGET_FREQUENCY	    1.25f            //要IFF还原的目标频率

float32_t fft_output_a[FFT_LENGTH];
float32_t final_value_a[FFT_LENGTH * 2]; //采集到的数据,按照复数的形式保存
float32_t ifft_output_a[FFT_LENGTH];


arm_cfft_radix2_instance_f32  Ua_cfft_config;    //声明fft变换结构体
arm_cfft_radix2_instance_f32  Ua_ifft_config;    //声明ifft变换结构体

int main(void)
{

arm_cfft_radix2_init_f32(&Ua_cfft_config, FFT_LENGTH, 0, 1);      //配置正变换
arm_cfft_radix2_init_f32(&Ua_ifft_config, FFT_LENGTH, 1, 1);      //配置逆变换

标签:radix2,CMSIS,FFT,cfft,LENGTH,频率,include,arm
From: https://blog.csdn.net/buyingyouheni/article/details/136928838

相关文章

  • 卡码java基础课 | 16.出现频率最高的字母
    学习内容:哈希表:数组重点归纳:哈希表:根据关键码key的值而直接进行访问的数据结构。重点是哈希函数(散列函数),是一种对应关系f,根据关键字找到对应存储位置。大致分为3种,数组、set集合、map映射。本节主要学习数组作为哈希表的使用。例题:解:点击查看代码importjava.util.Scan......
  • 基于51单片机的波形发生器(4种,振幅,频率,相差)原理图、流程图、物料清单、仿真图、源代码
    基于51单片机的波形发生器(4种,振幅,频率,相差)双通道信号发生器1、可通过串口设置波形灯参数2、输出正弦波、方波、三角波或锯齿波3、波的类型、振幅、频率可调4、波的相位差可调#include<reg51.h>#include"absacc.h"#include"intrins.h"#include"lcd1602.h"......
  • s2fft库介绍:可微分和加速球谐变换
    一、说明        科学和工程的许多领域都会遇到在球体上定义的数据。对此类数据进行建模和分析通常需要傅里叶变换的球面对应物,即球面谐波变换。我们简要概述了球谐变换,并提出了一种新的可微分算法,该算法专为GPU上的加速而定制[1]。该算法在最近......
  • FFT
    这东西对初中生挺友好的。引入设\(F(x)=\sum_{i=0}^n{a_ix^i},G(x)=\sum_{i=0}^m{b_i}x^i\)。显然,如果要求这两个多项式的积,需要\(\mathcalO(n^2)\)的复杂度。但\(\text{FFT}\)能通过\(\mathcalO(n\logn)\)的复杂度求出。前置知识复数形如\(z=a+bi(a,b\in\m......
  • 考虑功率均分与电压频率的事件触发分布式二次控制MATLAB模型
    微❤关注“电气仔推送”获得资料(专享优惠)模型简介此模型是在《基于事件触发机制的孤岛微电网二次电压与频率协同控制MATLAB仿真模型》上进一步创作的,之前的模型只考虑了二次电压与频率控制,并没有考虑均分这一项点。因此此模型在事件触发机制的基础上,继续创作了基于事件触发......
  • 频率组件 LL
    1、throttle"""系统:1)AnonRateThrottle:对同一IP游客的限制2)UserRateThrottle:对同一IP登录用户的限制必须在settings.py中'DEFAULT_THROTTLE_RATES':{'user':'10/min',#登录的用户一分钟可以访问10次'anon':'3/min',#......
  • [AH2017HNOI2017] 礼物(fft)
    [AH2017/HNOI2017]礼物(fft)题目描述我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她。每个手环上各有\(n\)个装饰物,并且每个装饰物都有一定的亮度。但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且......
  • 基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,
    1.算法运行效果图预览    2.算法运行软件版本matlab2022a 3.算法理论概述        在信号处理领域,正弦信号是一种常见且重要的信号形式。然而,在实际应用中,由于各种噪声和失真的影响,正弦信号的幅度、频率和相位可能会发生偏差。为了准确地恢复和分析这些信......
  • Python报错symbol lookup error: xxx.so: undefined symbol: cufftxxx解决办法
    技术背景在上一篇文章中介绍过如何实现本地MindSpore的CUDA算子,那么在算子编译和使用的过程中可能会出现一些小问题,这里介绍的是编译成功为so动态链接库之后,在python中调用,提示找不到xxx函数/字符的报错。这里使用的编译指令为:$nvcc--shared-Xcompiler-fPIC-oxxx.soxxx.c......
  • [转帖]AMD首次公布Zen4c频率!果然不是“小核心”
    https://www.mydrivers.com/ 快科技1月22日消息,Intel大小核混合架构采用了截然不同的架构和规格,小核无论频率还是技术特性都差得远,AMDZen4、Zen4c的组合虽然也可以算作大小核,但后者只是精简了三级缓存容量、降低了频率,本质上并无差异。正因为如此,AMD一再强调,Zen4c并不是小......