高分求FFT (单片机)的幅度公式和功率公式

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:45:53
我想做一个低频的FFT分析 , 现在已经把由DA转换过来的数据FFT变换出来结果了,并且用液晶屏按能显示的比例显示了出来,和示波器的显示差不太多, 但是我不知道具体的公式 幅度 , 和功率,
是按 实部虚部的平方和得根来么.
还请教各位 幅度和功率的具体公式, 以及失真度的相关公式.
资料亦可 , 但最好是直接公式 .
附:我的是 2048点FFT 0到255实部输入 虚部置0, fft变换已经得到 2048点变换后的实部虚部了
希望学过这方面的高手能给予我帮助!!谢谢
以及输入功率的计算 , 频谱泄漏现在也不知道该如何解决....

这个除N 除N/2 把我弄得很郁闷了 一会儿是幅度谱要除 一会是功率谱才除 有点晕乎

只有实数输入计算的FFT,其结果只有前一半有意义。后一半和前一般对称。

计算后某点的实部、虚部的平方和再开方就是该点说代表频率的幅度。

具体请参考圈圈的文章《FFT结果的物理意义》很有用。我用FFT做音频频谱时就看的这个。
http://blog.21ic.com/user1/2198/archives/2008/48202.html

幅度就是虚部,实部平方和开根号,功率谱就是对于实部,虚部求平方和,输入的全部功率功率谱求积分。频谱泄漏是采样截断的问题,得看你具体的输入信号才能解决。采样频率不够频谱会混叠,截断不恰当会泄漏,适当截断或者用适当窗函数可以削弱泄漏问题

每点对应的实际幅度等于fft后对应点实部和虚部的平方根再乘以2/N,N是采样点数,不过直流分量即第一点须除N
幅值:(假设你只须分析x次以下谐波)
for(i=0;i<x;i++){
W[i]=sqrt(datar[i]*datar[i]+datai[i]*datai[i]);
W[i]=W[i]*2/N;}
W[0]=W[0]/2;
功率谱密度P(f)=datar[i]*datar[i]+datai[i]*datai[i];
功率P为P(f)从0到fs的积分;fs为你的采样频率;
自己可以看下下面的
http://bbs.matwav.com/viewthread.php?tid=789532

因为实数fft后会使原信号幅值翻N/2倍,直流分量即第一点翻N倍 我们要得到的一般是原信号的幅值 所以必须处理

见图

FFT后频域的幅度与原时域信号幅度究竟有怎样的关系? 求VB的FFT和FFT的反变换代码 高分求单片机程序 求FFT的c语言程序 将一模拟信号采样后,用FFT估算模拟信号FT幅度频谱的matlab实现 跪求翻译 求~~~~~(单片机) 高分!高分!高分!高分!高分! 单片机的方波输出(要求幅度、频率、占空比可调)。 FFT A2的任务总数 高分求 关于单片机温度控制的英文论文及翻译 求用matlab或者C语言实现的FFT变换程序