0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Linux下做FFT运算的一疑惑

lPCU_elecfans 来源:未知 作者:李倩 2018-08-01 10:01 次阅读

2018年TI杯多省联赛落下帷幕。看了赛题,觉得还是蛮有意思的,第一个题目,是进行电流幅度的计算,需要用到FFT运算。我这里是在Intel Cyclone V SoC上进行了一次实验,使用12位有符号的高速ADCAD9226),通过控制采样设置采样率为2048Hz,采样8192个点,然后执行FFT运算。

在网上找了一个成熟的FFT运算代码,加入工程中编译,结果发现计算的幅度值永远只有实际幅度值的1/4,而该代码在NIOS II CPU上运行却是正确的。一直没找到问题所在。特发代码出来,看有没有人能指点一二。

FFT.c

main文件里有些许冗余代码没有删掉,请直接看main函数中相关内容即可。

以下为完整的DS-5工程文件源码。

ADC_FFT.rar(83.11 KB, 下载次数: 999)(点击阅读原文下载)

在运行结果中,如果对FFT的运算结果乘以4,得到的结果就是正确的幅值。如下图是乘以4之后的结果,一个是10Hz频率时候,一个是100Hz频率时候:

再次说明下参数:2048Hz采样率,8192个点FFT,ADC是12位有符号ADC。使用的DMA完成数据的采集,DMA采集了2个通道共24位的数据,然后高16位存储通道1的数据,低16位存储通道0的数据,需要注意的是。每个16位的数据中,低12位为数据,高12位始终为0。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FFT
    FFT
    +关注

    关注

    15

    文章

    434

    浏览量

    59377
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68591

原文标题:【2018电赛A题】关于Linux下做FFT运算的一疑惑

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    有关fft相关运算问题,求大神帮帮

    我用fft相关运算,需要做fft结果的共轭复数相乘,我看复数乘法器IP好像没有共轭复数相乘,我想的是对
    发表于 12-23 21:14

    omap138+CCS平台下,有没有ARM9的fft运算库?

    omap138平台,想用ARM9FFT,但是自己写的fft效率又不高,CCS也没有找到ARM用于fft
    发表于 06-21 07:49

    【2018电赛A题】关于LinuxFFT运算疑惑

    `2018年TI杯多省联赛落下帷幕。看了赛题,觉得还是蛮有意思的,第个题目,是进行电流幅度的计算,需要用到FFT运算。我这里是在Intel Cyclone V SoC上进行了次实验
    发表于 07-28 12:41

    调用STM32的DSP库fft运算补零是为了补充虚部吗?

    在调用STM32的DSP库fft运算的时候发现,要进行fft运算的输入数据在运算之前,需要对数
    发表于 02-22 07:16

    在STM32F407上FFT运算

    在STM32F407上FFT运算:在对采集到的信号FFT运算之前,我们先要明确以下几个重要
    发表于 08-04 08:25

    怎样在STM32F407上FFT运算

    怎样在STM32F407上FFT运算?结果怎样?
    发表于 10-19 06:58

    利用FFT IP Core实现FFT算法

    利用FFT IP Core实现FFT算法 摘要:结合工程实践,介绍了种利用FFT IP Core实现FFT的方法,设计能同时对两路实数序
    发表于 01-16 10:04 6916次阅读
    利用<b class='flag-5'>FFT</b> IP Core实现<b class='flag-5'>FFT</b>算法

    FFT(快速傅里叶变换)运算器电路图

    FFT(快速傅里叶变换)运算器电路图
    发表于 07-16 11:49 4643次阅读
    <b class='flag-5'>FFT</b>(快速傅里叶变换)<b class='flag-5'>运算</b>器电路图

    DFT和FFT运算

    首先给大家提供DFT和FFT运算量的教程,内容有直接用DFT计算运算量与用FFT计算的运算量比较和多种DFT算法(时间抽取算法DIT算法,
    发表于 09-08 00:01 71次下载

    基于FPGA高精度浮点运算器的FFT设计与仿真

    提出种基2FFT的FPGA方法,完成了基于FPGA高精度浮点运算器的FFT的设计。利用VHDL语言描述了蝶形运算过程及地址产生单元,其仿真
    发表于 12-23 14:24 46次下载
    基于FPGA高精度浮点<b class='flag-5'>运算</b>器的<b class='flag-5'>FFT</b>设计与仿真

    如何使用stm32f4 dsp库fft运算

    FFT种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform),它根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。今天小编选择了使用STM32f4提供的DSP库这种方法来
    发表于 11-15 14:40 2.7w次阅读
    如何使用stm32f4 dsp库<b class='flag-5'>做</b><b class='flag-5'>fft</b><b class='flag-5'>运算</b>

    基4fft蝶形图运算单元解析

    蝶形运算,2点DFT运算称为蝶形运算,而整个FFT就是由若干级迭代的蝶形运算组成,而且这种算法采用塬位
    发表于 11-23 11:48 5.9w次阅读
    基4<b class='flag-5'>fft</b>蝶形图<b class='flag-5'>运算</b>单元解析

    关于Linux多线程编程技术学习总结

    Linux多线程编程技术 作为个IT人员,不断的学习和总结是我们这个职业习惯,所以我会将每个阶段的学习都会通过点的总结来记录和检测自己的学习效果,今天为大家总结了
    发表于 04-22 03:12 2206次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>Linux</b><b class='flag-5'>下</b>多线程编程技术学习总结

    基于Quartus II的综合仿真实现FFT IP核的FFT算法

    数字信号处理领域中FFT算法有着广泛的应用。目前现有的文献大多致力于研究利用FFT算法有关信号处理、参数估计、F+FT蝶形运算单元与地址单元设计、不同算法的
    的头像 发表于 01-07 09:33 1w次阅读
    基于Quartus II的综合仿真实现<b class='flag-5'>FFT</b> IP核的<b class='flag-5'>FFT</b>算法

    关于STM32浮点运算单元FPU的应用示例

    这里通过调用DSP库里的FFT相关函数实现1024点的FFT运算,样点数据及运算结果均为浮点数。 上图中A区代码是样点数据准备,B区代码完
    的头像 发表于 01-02 18:09 8490次阅读
    <b class='flag-5'>关于</b>STM32浮点<b class='flag-5'>运算</b>单元FPU的应用示例