How to generate correct sine wave

103 views (last 30 days)
제 허
제 허 on 17 Mar 2022
Commented: 제 허 on 18 Mar 2022
hello, I want to make the sine wave
when I execute below code at frequency 2, It is success.
but when I change the frequency to 10, It is not Sine wave..
What's wrong my code??
== correct ==
fs = 50;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*2*t);
plot(t,x)
== non-correct
fs = 50;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)

Answers (2)

Torsten
Torsten on 17 Mar 2022
fs = 500;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
Better ?
  1 Comment
제 허
제 허 on 18 Mar 2022
Thank you for your answer
I think that frequency of sin(2*pi*10*t) is 10.
if I take the frequency more than 20 frequency for Nyquist Theory, Its perfectly reconstruct sine wave.
It's right??

Sign in to comment.


Kevin Holly
Kevin Holly on 17 Mar 2022
Edited: Kevin Holly on 17 Mar 2022
== correct ==
fs = 50;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*2*t);
plot(t,x)
== non-correct
fs = 50;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
Corrected
fs = 500;
t = 0:1/fs:1-1/fs; %Increase the sample rate
x = sin(2*pi*10*t);
plot(t,x)
Your sampling freqency needs to be twice the size of the highest frequency you are detecting. See Nyquist Theorem.
  6 Comments
Kevin Holly
Kevin Holly on 18 Mar 2022
Sorry about that, I missed the 2*pi.
subplot(2,1,1)
fs = 20;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
subplot(2,1,2)
fs = 2*pi*20;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
제 허
제 허 on 18 Mar 2022
Sorry,,,,, I cant understand yet.
I dont know why Fs(sampling frequency) is multiplied by 2*pi ..
Thank you for your answer steadily

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!