24小时热门版块排行榜    

查看: 424  |  回复: 1

songzhen25

金虫 (初入文坛)

[求助] 请问我这段快速傅里叶变换的程序有错误吗?

t=0: (1/pin): ((N-1)/pin);
% 计算s的快速傅立叶变换X
X=fft(s);
F=X(1: (N/2+1));
% 使频率轴f从零开始
f=pin*(0:N/2)/N;
subplot(3,1,2);
plot(f,abs(F));
axis([0 250000 0 10000]);
xlabel('频率(Hz)');
ylabel('幅值');
title('快速傅里叶变换');
grid on;

请问我这段傅里叶变换的程序有错误吗?为什么原始信号在时域幅值为40v左右的数据我经过这段程序处理后,在频域上面为上万伏?求指教!谢谢!

[ Last edited by songzhen25 on 2011-11-7 at 12:27 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

不断努力
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cars

金虫 (小有名气)

【答案】应助回帖


songzhen25(金币+5): 2011-11-09 11:50:22
gordon2008(金币+1): 欢迎应助 2011-11-09 12:04:48
这是matlab程序吧,
对于fft,如果x表示时域,X表示频域,
按matlab中的定义,sum(x^2)=sum(X^2)/N,
因此,从量级上说,x比X大sqrt(N)倍,估计你的点数为6~7万点。
X与x并不是相同的量纲,两者在能量上相等,但幅值量纲不是一致的。
对X取不同的位数可以理解为对能量取不同的计算方法。
一般用X1=X*2/N表示频域的值,此时对X1^2求和后即为能量,此值
与功率谱密度的值能一致
2楼2011-11-08 14:10:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 songzhen25 的主题更新
信息提示
请填处理意见