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

2018年ti杯多省联赛落下帷幕。看了赛题,觉得还是蛮有意思的,第一个题目,是进行电流幅度的计算,需要用到fft运算。我这里是在intel cyclone v soc上进行了一次实验,使用12位有符号的高速adc(ad9226),通过控制采样设置采样率为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。

一名工程师在谷歌无人车组的职场生涯
哪种充电宝质量好又耐用,双十二最划算的充电宝推荐
北美是最大的LiDAR市场 亚太地区潜力最大成长率达28.2%
京东多款配送机器人参与运营,每天至少提升一千单!
TL494的引脚功能/配置/额定值/操作条件/布局图
关于Linux下做FFT运算的一疑惑
如何五金模架出现这些问题如何处理
单轴机器人和多轴机器人那个好?
MIPS联手SySDSoft在MIPS 架构上实现LTE技术
雷柏V500S合金版游戏机械键盘评测 金属氧化喷砂工艺经久耐用不易磨损
Xilinx ZYNQ双核ARM通信开发实例
轻舟已过万重山:华为之路,平板PC之变
应用于智能网联汽车的触摸屏技术
2.4GHz与5GHz频段Wi-Fi的优点和局限性对比
未来电视三大主攻方向,激光电视能否突破高昂价格这只市场拦路虎?
国家电网:站址规划藏高招 “螺蛳壳里做道场”
蓝牙技术的特点
springboot启动流程
如何借助于无人机数据采集技术实现BIM模型的建立
智能汽车能否成为下一个汽车时代?