xiujuan507 发表于 2016-11-29 10:20

请教matlab-help-fft问题

matlab-help-fft有个例子
Convert a Gaussian pulse from the time domain to the frequency domain.Define signal parameters and a Gaussian pulse, X.Fs = 100;         % Sampling frequencyt = -0.5:1/Fs:0.5;% Time vectorL = length(t);      % Signal lengthX = 1/(4*sqrt(2*pi*0.01))*(exp(-t.^2/(2*0.01)));


Plot the pulse in the time domain.plot(t,X)title('Gaussian Pulse in Time Domain')xlabel('Time (t)')ylabel('X(t)')


../../examples/matlab/GaussianPulseExample_01.pngTo use the fft function to convert the signal to the frequency domain, first identify a new input length that is the next power of 2 from the original signal length. This will pad the signal X with trailing zeros in order to improve the performance of fft.n = 2^nextpow2(L);


Convert the Gaussian pulse to the frequency domain.Y = fft(X,n);


Define the frequency domain and plot the unique frequencies.f = Fs*(0:(n/2))/n;P = abs(Y/n);plot(f,P(1:n/2+1))title('Gaussian Pulse in Frequency Domain')xlabel('Frequency (f)')ylabel('|P(f)|')


../../examples/matlab/GaussianPulseExample_02.png为什么P=abs(Y/n),我觉得应该是P=2*abs(Y/n)? 试了一下,假如函数y=20*sin(2*pi*0.0006*t)+10*cos(2*pi*0.001*t),求得的振幅确实少了一倍啊???


Edinburgh 发表于 2016-11-29 13:29

咋还研究这个了呢

xiujuan507 发表于 2016-11-29 14:51

Edinburgh 发表于 2016-11-29 13:29
咋还研究这个了呢

要搞傅里叶变换啊

minoz 发表于 2016-11-30 08:28

xiujuan507 发表于 2016-11-29 14:51
要搞傅里叶变换啊

论坛里很多现成的程序

xiujuan507 发表于 2016-11-30 08:33

minoz 发表于 2016-11-30 08:28
论坛里很多现成的程序

matlab-help里的,怎么看都是错的

minoz 发表于 2016-11-30 13:26

xiujuan507 发表于 2016-11-30 08:33
matlab-help里的,怎么看都是错的

应该不能很权威的
页: [1]
查看完整版本: 请教matlab-help-fft问题