作者josephbe (小夫)
看板MATLAB
标题[问题] 有关Matlab中FFT范例的问题
时间Tue Sep 13 13:07:03 2016
最近论文在做跟FFT有关的东西
在Matlab中FFT的范例如下
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1000; % Length of signal
t = (0:L-1)*T; % Time vector
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
X = S + 2*randn(size(t));
plot(1000*t(1:50),X(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
查过了几本Matlab有关FFT的地方,如果没有这样做的话振幅都满离奇的
但为何FFT之後的结果,要乘以2/L之後振幅才会是正确的?
麻烦大家帮忙解答了,感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.100.35
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1473743226.A.456.html
1F:推 sunev: help fft,看一下matlab fft的定义 09/13 13:13
2F:→ josephbe: 除以L我知道,这部分已经推出来,但是中间部分乘以2的 09/15 01:15
3F:→ josephbe: 缘由我的想法跟指导教授的想法不太一样,所以想请问一 09/15 01:15
4F:→ josephbe: 下 09/15 01:15
5F:推 sunev: 把你心中的定义和matlab的定义写出来,剩下的是数学问题 09/15 09:56
6F:推 gohow: 我问你一个问题好了sine的Fourier transfom的震幅 09/16 16:43
7F:→ gohow: 是1还是0.5 你要的答案就在这里 09/16 16:43