How to generate correct sine wave

155 Ansichten (letzte 30 Tage)
제 허
제 허 am 17 Mär. 2022
Kommentiert: 제 허 am 18 Mär. 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)

Antworten (2)

Torsten
Torsten am 17 Mär. 2022
fs = 500;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
Better ?
  1 Kommentar
제 허
제 허 am 18 Mär. 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??

Melden Sie sich an, um zu kommentieren.


Kevin Holly
Kevin Holly am 17 Mär. 2022
Bearbeitet: Kevin Holly am 17 Mär. 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 Kommentare
Kevin Holly
Kevin Holly am 18 Mär. 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)
제 허
제 허 am 18 Mär. 2022
Sorry,,,,, I cant understand yet.
I dont know why Fs(sampling frequency) is multiplied by 2*pi ..
Thank you for your answer steadily

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Signal Generation and Preprocessing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by