matlab words no help needed
3 views (last 30 days)
Show older comments
I need to plot the sum of 2 sine curves. I can successfully plot (x,y1) and plot(x,y2), they are smooth curves, however when i try to plot(x,y) where y = y1+y2 the curve comes out like this? how do i fix this i dont know what i am doing wrong? Thanks 

3 Comments
Answers (3)
DGM
on 11 May 2021
What you're looking at isn't meaningful. It's all just rounding error. You're essentially doing this:
y = sin(x) - sin(x);
I'm guessing there's some phase component that's not defined right yet, but I can't really guess at what you need it to be.
f = 2;
A = 1;
v = 1;
L = 1;
l = v/f;
B = (2*pi)/l;
w = 2*pi*f;
t = 0;
x = 0:0.0001:L;
z1 = A*sin(B*x - w*t);
z2 = A*sin(B*(L-x) - w*t);
y = z1+z2;
plot(x,z2); hold on
plot(x,z1);

For the future, please just paste your code using the code formatting tools. I had to retype all that and deal with the sub-pixel ambiguity differentiating the character '1' and 'l'.
2 Comments
VBBV
on 11 May 2021
Edited: VBBV
on 11 May 2021
%if true
f = 2
V = 1; A= 1; L = 1;
LL = V/f
B = 2*pi/LL
t = 0; W = 2*pi*f
x = 0:0.0001:L;
z1 = A*sin(B*x-W*t)
z2 = A*sin(B*(L-x)-W*t);
z = z1-z2
plot(x,z)
Use z1-z2 instead for smooth curve
3 Comments
Stephen23
on 13 May 2021
"Does this mean that there is no way to plot y = ysrc + yref?"
I am not sure why you have reached that conclusion.
"I do see why my plot is meaningless."
The plot itself is not meaningless: you have correctly plotted lots of tiny values, because that is what you told MATLAB to plot. The values are numeric noise resulting from operations which are basically equivalent to X+(-X). MATLAB has correctly plotted that numeric noise (because it was all your numeric values are).
Important question: What do you expect to be plotted for X+(-X) ?
Perhaps you could scale the Y limits to suitable values then the numeric noise would not be noticeable at all.
RAHUL MAURYA
on 12 May 2021

clear all;
clc;
f = 2;
A = 1;
v = 1;
L = 1*(180/(pi));
l = v/f;
B = ((2*pi)/l)*(180/pi);
w = 2*pi*f;
t = 0;
x=0:0.0001:L;
z1 = (A*sind(B*x - w*t));
z2 = A*sind(B*(L-x) - w*t);
y=(z1+z2);
subplot(3,1,1);
plot(x,z1)
title('X,Z1')
axis([0 10 -1 1])
subplot(3,1,2);
plot(x,z2)
title('X,Z2')
axis([0 10 -1 1])
subplot(3,1,3);
plot(x,y)
title('X,Z1+Z2')
axis([0 10 -2 2])
Convert B and L in radian to degree.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!