24小时热门版块排行榜    

查看: 2370  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

liulbcd

铁虫 (小有名气)

[求助] 如何用Matlab对函数sin(pi*t)/(pi*t)进行FFT变换 已有2人参与

如题,本人现在想利用Matlab的FFT函数对sin(pi*t)/(pi*t)进行傅里叶变换,通过书本得到其傅里叶变换应为-pi到pi为1,其余频率成分为0. 但本人利用如下程序总是得不到正确结果,烦请大家指正。谢谢。

clc
clear
Fs=1000;
T=1/Fs;
L=1000;
t=(1:L-1)*T; %这一步不从0取值是为了y=sin(pi*t)./pi./t在整个t范围内有值
L=size(t);
L=L(1,2);
y=sin(pi*t)./pi./t;
NFFT=2^nextpow2(L);
Y=fft(y,NFFT)/L;
f=Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

引用回帖:
5楼: Originally posted by liulbcd at 2014-09-27 13:32:17
Matlab做FFT要对时域函数有什么要求吗?

不是MATLAB有要求,要做DFT,采样必须等间隔,且满足香农——奈奎斯特采样定理,才能较准确重建傅里叶谱。你这数据没衰减完,变换后矩形底部是不是有锯齿?

[ 发自手机版 http://muchong.com/3g ]
6楼2014-09-30 13:14:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liulbcd 的主题更新
信息提示
请填处理意见