# sine wave plot

조회 수: 7,622(최근 30일)
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표시숨기기 이전 댓글 수: 13
Gokul Krishna N 2021년 10월 13일
Just been reading the comments in this question. Hats off to you, sir @Walter Roberson

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

### 채택된 답변

Rick Rosson 2012년 4월 24일
%%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표시숨기기 이전 댓글 수: 9
Walter Roberson 2022년 11월 21일
I do not find any questions posted by you ?

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

### 추가 답변(8개)

Mike Mki 2016년 11월 29일
Dear Mr. Rick, Is it possible to create knit structure in Matlab as follows:
##### 댓글 수: 1표시숨기기 없음
DGM 2022년 11월 27일

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

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표시숨기기 이전 댓글 수: 1
Walter Roberson 2023년 1월 8일 20:16
I think the intent was to give 100 samples per cycle.

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

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
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

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);
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

soumyendu banerjee 2019년 11월 1일
%% if Fs= the frequency u want,
x = -pi:0.01:pi;
y=sin(Fs.*x);
plot(y)
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

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;
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

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')
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

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 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