硬汉嵌入式论坛

 找回密码
 立即注册
查看: 541|回复: 4
收起左侧

[DSP] 已实现加速度计对数据采集,想要完成实时的FFT分析,可采用什么具体方法

[复制链接]

6

主题

10

回帖

28

积分

新手上路

积分
28
发表于 2023-5-29 17:49:26 | 显示全部楼层 |阅读模式
已实现加速度计对数据采集,想要完成实时的FFT分析,可采用什么具体方法
以下代码可否完成FFT完成数据最高峰及次高峰的频率提取

        int i;
        uint16_t max;
  int fmax,f2max;
        for(i=0;i<1024;i++)
        {        
                acc_data();
                input=(d+e+f)/2048;//式中d、e  f的实现方法为        for(i=0;i<1024;i++){        d=aa;e=ab;f=ac;}
               
        }
        /* 计算1024点FFT
output:输出结果,高16位是虚部,低16位是实部。
input :输入数据,高16位是虚部,低16位是实部。
第三个参数必须是1024。
        */        
        cr4_fft_1024_stm32(output,input,1024);
        /*求幅值*/
        PowerMag(1024);
//        /*打印输出结果*/
//        for(i=0;i<1024;i++)
//        {
//                printf("%d\r\n",Mag);
//        }
        max=Mag[0];
        for(i=0;i<512;i++)
        {
                if(Mag>max)
                {max=Mag;}
        }
        for(i=0;i<512;i++)
        {
                if(Mag==max)
                {
                        fmax=i;
                        f2max=fmax*2;               
                }break;
        }

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
发表于 2023-5-30 10:31:26 | 显示全部楼层
采样周期多少,打算每多少点计算一次FFT
回复

使用道具 举报

6

主题

10

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2023-5-30 15:30:44 | 显示全部楼层
eric2013 发表于 2023-5-30 10:31
采样周期多少,打算每多少点计算一次FFT

采样周期为1kHz 打算每1024个点进行FFT
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
发表于 2023-5-30 15:35:30 | 显示全部楼层
gcpwd123 发表于 2023-5-30 15:30
采样周期为1kHz 打算每1024个点进行FFT

实时处理处理完全没问题。直接调用ARM的实数FFT,或者ST早年的汇编FFT均可。
回复

使用道具 举报

6

主题

10

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2023-5-30 17:47:29 | 显示全部楼层
eric2013 发表于 2023-5-30 15:35
实时处理处理完全没问题。直接调用ARM的实数FFT,或者ST早年的汇编FFT均可。

好的       非常谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 00:44 , Processed in 0.174743 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表