How to generate correct sine wave

42 次查看(过去 30 天)
제 허
제 허 2022-3-17
评论: 제 허 2022-3-18
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)

回答(2 个)

Torsten
Torsten 2022-3-17
fs = 500;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*10*t);
plot(t,x)
Better ?
  1 个评论
제 허
제 허 2022-3-18
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??

请先登录,再进行评论。


Kevin Holly
Kevin Holly 2022-3-17
编辑:Kevin Holly 2022-3-17
== 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 个评论
Kevin Holly
Kevin Holly 2022-3-18
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)
제 허
제 허 2022-3-18
Sorry,,,,, I cant understand yet.
I dont know why Fs(sampling frequency) is multiplied by 2*pi ..
Thank you for your answer steadily

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by