Variable Amplitude sine wave
6 views (last 30 days)
Show older comments
Hello, I am trying to learn some more about the function fft, for that I have a code like this
%Time specifications:
Fs = 1000; % samples per second
dt = 1/Fs; % seconds per sample
StopTime = 0.6; % seconds
t = (0:dt:StopTime-dt)'; % seconds
% Sine wave:
Fc = 500; % hertz
x = sin(2*pi*Fc*t);
% Plot the signal versus time:
figure;
plot(t,x);
xlabel('time (in seconds)');
title('Signal versus Time');
zoom xon;
Now I dont understand why, but the output of the plot is a sinusoidal wave that increases in amplitud. why is that? As far as my understanding goes, that should not happen. I know that it has something to do with the Fs value. but what is the relationship exactly. How should I pick a good Fs value to avoid this?
Thank you very much
1 Comment
Shravankumar P
on 2 Jul 2014
Edited: Shravankumar P
on 2 Jul 2014
you need to change the frequncy Fc ; try Fc=10 to 50 ;
or you need to change the Fs, eg: Fs=100000;
Accepted Answer
Mischa Kim
on 2 Jul 2014
Edited: Mischa Kim
on 2 Jul 2014
Margarita, that's because the dt value is too large. Try
dt = 1e-6;
instead and you should receive a proper sinusoidal signal with a constant amplitude of 1. As far as next steps are concerned, the optimal value of dt depends on your particular application, whatever you need to do.
3 Comments
Mischa Kim
on 2 Jul 2014
Edited: Mischa Kim
on 2 Jul 2014
The frequency of the signal is 500 Hz, the period is therefore 1/500 s which is exactly 2*dt. So you evaluate the sine pretty much dead on at its zero crossings. That's the reason why the signal amplitudes in your plot are tiny (1e-13).
More Answers (1)
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!