Hello all, I have a signal defined by the below. I want to take the Matlab FFT of this signal but I got a plot that does is not the Fourier Transform. Can someone direct me on how to be able to compute the FFT of my signal? Thanks Mates!
2 次查看(过去 30 天)
显示 更早的评论
Signal defined by:
%%Time specifications:
Fs = 8000; % samples per second
dt = 1/Fs; % seconds per sample
StopTime = 0.25; % seconds
t = (0:dt:StopTime-dt)'; % seconds
%%Sine wave:
Fc = 60; % hertz
x = 3*sin(x) + sin(.5*x+40) + 2*sin(3*x-60);
% Plot the signal versus time:
figure;
plot(t,x);
xlabel('time (in seconds)');
title('Signal versus Time');
zoom xon;
The signal image is attached.
I did this for the FFT of the signal:
Y = fft(x);% Plot single-sided amplitude spectrum.
plot(Y)
title('Fast Fourier Transform of X graph)')
xlabel('Frequency (Hz)')
ylabel('Time (seconds)')
I figured since it was a simple function, I did not need elaborate coding but then I got the "FFT" attached.
Can someone tell me how to get the correct FFT please! Thanks.
采纳的回答
Image Analyst
2015-7-5
Your stop time is so short that your signal is essentially a constant over that period. So the FFT is a just big DC spike as expected, which corresponds to a big "rect" function rather than the sum of 3 sine waves of different periods.
Set a stop time around 12*pi so you can get more of a varying waveform in there, especially more complete cycles instead of just a microscopic sample out of the waveform. That small sample is essentially a constant.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!