sine wave plot

조회 수: 7,622(최근 30일)
aaa
aaa 2012년 4월 24일
댓글: Walter Roberson 2023년 1월 8일 20:16
Hi,
I am having some trouble plotting a sine wave and i'm not sure where i am going wrong.
i have
t = [0:0.1:2*pi]
a = sin(t);
plot(t,a)
this works by itself, but i want to be able to change the frequency. When i run the same code but make the change
a = sin(2*pi*60*t)
the code returns something bad. What am i doing wrong? How can i generate a sin wave with different frequencies?
  댓글 수: 14
Gokul Krishna N
Gokul Krishna N 2021년 10월 13일
Just been reading the comments in this question. Hats off to you, sir @Walter Roberson

댓글을 달려면 로그인하십시오.

채택된 답변

Rick Rosson
Rick Rosson 2012년 4월 24일
Please try:
%%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 = cos(2*pi*Fc*t);
% Plot the signal versus time:
figure;
plot(t,x);
xlabel('time (in seconds)');
title('Signal versus Time');
zoom xon;
HTH.
Rick
  댓글 수: 10
Walter Roberson
Walter Roberson 2022년 11월 21일
I do not find any questions posted by you ?

댓글을 달려면 로그인하십시오.

추가 답변(8개)

Mike Mki
Mike Mki 2016년 11월 29일
Dear Mr. Rick, Is it possible to create knit structure in Matlab as follows:

Junyoung Ahn
Junyoung Ahn 2020년 6월 16일
clear;
clc;
close;
f=60; %frequency [Hz]
t=(0:1/(f*100):1);
a=1; %amplitude [V]
phi=0; %phase
y=a*sin(2*pi*f*t+phi);
plot(t,y)
xlabel('time(s)')
ylabel('amplitude(V)')
  댓글 수: 2
Walter Roberson
Walter Roberson 2023년 1월 8일 20:16
I think the intent was to give 100 samples per cycle.

댓글을 달려면 로그인하십시오.


Robert
Robert 2017년 11월 28일
aaa,
What goes wrong: by multiplying time vector t by 2*pi*60 your discrete step size becomes 0.1*2*pi*60=37.6991. But you need at least two samples per cycle (2*pi) to depict your sine wave. Otherwise you'll get an alias frequency, and in you special case the alias frequency is infinity as you produce a whole multiple of 2*pi as step size, thus your plot never gets its arse off (roundabout) zero.
Using Rick's code you'll be granted enough samples per period.
Best regs
Robert

shampa das
shampa das 2020년 12월 26일
편집: Walter Roberson 2021년 1월 31일
clc; t=0:0.01:1; f=1; x=sin(2*pi*f*t); figure(1); plot(t,x);
fs1=2*f; n=-1:0.1:1; y1=sin(2*pi*n*f/fs1); figure(2); stem(n,y1);
fs2=1.2*f; n=-1:0.1:1; y2=sin(2*pi*n*f/fs2); figure(3); stem(n,y2);
fs3=3*f; n=-1:0.1:1; y3=sin(2*pi*n*f/fs3); figure(4); stem(n,y3); figure (5);
subplot(2,2,1); plot(t,x); subplot(2,2,2); plot(n,y1); subplot(2,2,3); plot(n,y2); subplot(2,2,4); plot(n,y3);

soumyendu banerjee
soumyendu banerjee 2019년 11월 1일
%% if Fs= the frequency u want,
x = -pi:0.01:pi;
y=sin(Fs.*x);
plot(y)

wilfred nwakpu
wilfred nwakpu 2020년 2월 1일
%%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 = cos(2*pi*Fc*t);
% Plot the signal versus time:
figure;
plot(t,x);
xlabel('time (in seconds)');
title('Signal versus Time');
zoom xon;

sevde busra bayrak
sevde busra bayrak 2020년 8월 24일
sampling_rate = 250;
time = 0:1/sampling_rate:2;
freq = 2;
%general formula : Amplitude*sin(2*pi*freq*time)
figure(1),clf
signal = sin(2*pi*time*freq);
plot(time,signal)
xlabel('time')
title('Sine Wave')

First Last
First Last 2021년 6월 28일
편집: Walter Roberson 2021년 8월 5일
t = [0:0.1:2*pi]
a = sin(t);
plot(t,a)
  댓글 수: 1
Walter Roberson
Walter Roberson 2021년 8월 5일
help pi
help sin
help .*
u = @(x) x >= 0;

댓글을 달려면 로그인하십시오.

범주

Find more on 2-D and 3-D Plots in Help Center and File Exchange

태그

Community Treasure Hunt

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

Start Hunting!

Translated by