24小时热门版块排行榜    

查看: 2362  |  回复: 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的回帖

liulbcd

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by fanlet at 2014-09-27 13:20:54
先画出y=sin(pi*t)./pi./t;
看看是否正确?

我尝试画了下,采样长度L取1000时间有点短,不能准确反映信号随时间的变化趋势,将采样长度改为10000后作出的时域图如附图所示,是没有什么问题的
3楼2014-09-27 13:28:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

fanlet

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
先画出y=sin(pi*t)./pi./t;
看看是否正确?
野花不栽年年有烦恼无根日日生
2楼2014-09-27 13:20:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liulbcd

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by fanlet at 2014-09-27 13:20:54
先画出y=sin(pi*t)./pi./t;
看看是否正确?

附图
如何用Matlab对函数sin(pi*t)/(pi*t)进行FFT变换
1111.png

4楼2014-09-27 13:29:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liulbcd

铁虫 (小有名气)

Matlab做FFT要对时域函数有什么要求吗?
5楼2014-09-27 13:32:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见