[RISC-V MCU 创新应用比赛] 可用于CH32V103R8T6的快速傅里叶FFT变换库

[复制链接]
13282|67
xiaoyaodz 发表于 2021-10-2 11:43 | 显示全部楼层
 楼主| catnull 发表于 2021-10-8 00:47 | 显示全部楼层
hudi008 发表于 2021-10-2 11:38
fft变换之后怎么得到频率和幅值

这个涉及到细节了。实际上输入的是时域信号,经过FFT之后得到的是频域信号。这个库是以复数的形式来表示频域的结果。由详细的理论推导可以知道,结果里面是共轭对称的,相对于中间的点。时域获得的信号,其物理频率是等于ADC的采样频率 F_s 。由于是选择时域信号中的 N 个信号进行fft 变换,得到的频域结果,最高频率也是 F_s ,最低的频率是 0 , 分别是第N 项的复数和第0 项的复数。但是由于周期性的重复(奈奎斯特采样极限,采样频率F_s 所能获取的不产生失真的最高频率是 F_s /2 ),实际上频域中会出现第 N/2+1项到第 N-1 项和 第 1 项到 第 N/2 -1 项 关于第 N/2  项对称。所以,频域的信号的第 0 项,对应直流分量。第N-1项对应 F_s, 但是真正有用的是第0项到第N/2 项,对应的频率是 0 ~ Fs/2. 所以频域中的相邻两个之间的额频率差 delta_F = F_s/(N) 。 如果计算赋值,还需要注意, 对应于于直流分量,其复数的模除于 N 为直流分量赋值。其他项则是对应的复数的模处于N/2.

参考文献 :
1.FFT(快速傅里叶变换)中频率和实际频率的关系  https://www.sohu.com/a/122159699_464086
2.深入浅出解释FFT(一)——用fft求频谱 - ucliaohh的个人页面 - OSCHINA - 中文开源技术交流社区  https://my.oschina.net/ucliaohh/blog/3098674

 楼主| catnull 发表于 2021-10-8 00:49 | 显示全部楼层
febgxu 发表于 2021-10-2 11:39
快速傅里叶变换C++有吗

可以找专业研究优化的 fftw 库。是麻省理工的一个项目。开源的。应该有 C++版本的。
kkzz 发表于 2021-11-3 13:26 | 显示全部楼层
计算的速度测试过了吗   
hudi008 发表于 2021-11-3 13:26 | 显示全部楼层
用的DSP的库吗   
lzmm 发表于 2021-11-3 13:26 | 显示全部楼层
最大可以识别多大的频率呢   
minzisc 发表于 2021-11-3 13:27 | 显示全部楼层
能做2048fft吗   
selongli 发表于 2021-11-3 13:27 | 显示全部楼层
RISC-V内核CH32V103R8T6不错。   
fentianyou 发表于 2021-11-3 13:27 | 显示全部楼层
用ADC输入了吗   
xiaoyaodz 发表于 2021-11-3 13:27 | 显示全部楼层
sqrt计算错误是什么原因呢   
febgxu 发表于 2021-11-3 13:27 | 显示全部楼层
SRAM有点小呢   
sdlls 发表于 2021-11-3 13:28 | 显示全部楼层
DSP的实验资料有吗   
pixhw 发表于 2021-11-3 13:28 | 显示全部楼层
CH32V103有自带的库函数吗
xiaoyaodz 发表于 2021-11-3 13:28 | 显示全部楼层
gygp 发表于 2021-11-4 20:07 | 显示全部楼层
怎样用Matlab进行FFT变换  
chenci2013 发表于 2021-11-4 20:07 | 显示全部楼层
变换FFT为什么必须是2^n呢?  
biechedan 发表于 2021-11-4 20:08 | 显示全部楼层
怎么得到频率和幅值         
wangdezhi 发表于 2021-11-4 20:08 | 显示全部楼层
怎样对两组数据同时做fft变换
isseed 发表于 2021-11-4 20:08 | 显示全部楼层
影响fft的变换速度有哪些?  
xietingfeng 发表于 2021-11-4 20:08 | 显示全部楼层
采用FFT好,还是DFT好?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部