24小时热门版块排行榜    

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

yudiandida

新虫 (初入文坛)

[求助] matlab中利用FFT进行Fourier变换后真实频率f值计算问题 已有4人参与

CODE:
clear;
clc;
f1 = 3e8/1550e-9;
f2 = 10e9;
N = 2000;
fs = 2e12;
t = (0:N-1)/fs;
f = ((0:N-1)*fs/N-fs/2).*10^3;
A = 20;
Y1 = cos(pi/4*cos(2*pi*f2*t)-pi/4).^2.*cos(2*pi*f1*t+pi/2+A*(cos(2*pi*f2*t)-1/16*cos(2*2*pi*f2*t)));
Y2 = Y1.*exp(i*2*pi*f1*t);
Z1 = fft(Y2);
Z2 = fftshift(Z1);
plot(f,abs(Z2))
axis([-0.3e15,0.3e15,0,120])

函数Y有些复杂,不用细看,简单来说这个程序实现的功能是波长为1550nm的连续光,被频率为10GHz的信号光调制后观察输出光的频谱,函数Y就是一个调制过程。我的问题在于,按理说fft再shift之后,显示频谱的横轴应该是实际的频率,而1550nm的光频率在193THz=193e12Hz附近(根据公式f=c/入,其中f是光频率,c是真空中的光速,入是光的波长),经过调制后频谱的中心频率应该也在这个频率附近才对,但是我的坐标横轴对应的频率值明显数量级都不对啊,想把fs加长,但完全没有作用,程序中的fs范围内已经可以看到完整频谱了。请各位同学帮我看看是不是我的程序有什么问题,到底怎样才能让横轴对应真实频率啊,跪谢了~!!!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yudiandida

新虫 (初入文坛)

啊~算对了 谢谢大家的 帮助了!
7楼2014-03-27 12:20:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
频率要除以2N
字数不够15个。。。。。。。。。。。
showmethemoney
2楼2014-03-26 17:44:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yudiandida

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by csgt0 at 2014-03-26 17:44:28
频率要除以2N
字数不够15个。。。。。。。。。。。

能不能说的具体点啊。。。。哪里频率除以2N呢?
3楼2014-03-26 18:45:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
补充下,N为奇数还是偶数x轴不完全一样,略有差别。

[ 发自手机版 http://muchong.com/3g ]
4楼2014-03-27 00:32:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见