如果我之前生成了两个信号,我怎样才能从中产生一个复合信号。 从我的理解复合信号是让两个信号出现在同一个图上(重叠) 那么什么是合成信号的语法需要?
注意:poth信号具有相同的时间间隔。
答案 0 :(得分:0)
您需要使用hold
功能来保留第一个绘图,同时在其上绘制第二个绘图。这是一个例子:
x=linspace(0,2*pi,1e3);
plot(x,sin(2*x))
hold on
plot(x,cos(2*x),'r')
hold off
hold off
释放“暂停”,如果您现在绘制任何内容,则不保留先前的绘图。释放保留是一种很好的做法,这样你就不会无意中保持多个图形的分层(除非当然是这样)。
如果您有两个振幅范围很广的信号,一种选择是缩放它们,使它们具有相当的振幅。这可以通过例如将两者归一化到最大值来实现。例如:
x=linspace(0,2*pi,1e3);
y=100*sin(2*x);
z=cos(2*x);
plot(x,y/max(abs(y)),x,z/max(abs(z)))
您可能需要记录或提及(无论您何时使用此信号)信号已经标准化以便清晰。
或者,您可以使用plotyy
功能,该功能可以绘制两条曲线,每条曲线都有一个y轴。 E.g:
x=linspace(0,2*pi,1e3);
y=100*sin(2*x);
z=cos(2*x);
plotyy(x,y,x,z)
编辑2:
要更改plotyy
中的颜色,您需要使用线条的句柄。继续上面的例子,
[ax,h1,h2]=plotyy(x,y,x,z);
set(h1,'color','m')
set(h2,'color',[0,0.5,0])
这里我展示了两种设置颜色的方法。一种是使用内置颜色字符串('r'
- >红色,'m'
- >品红色,'c'
- >青色,'g'
- >绿色,{ {1}} - >蓝色,'b'
- >黄色,'y'
- >黑色,'k'
- >白色),另一个是3元素数字RGB矢量可以取0到1之间的值。
有时,不希望y轴有颜色(我不喜欢它们)。要将其更改为黑色,请将'w'
的{{1}}属性值设置为黑色。
'ycolor'
答案 1 :(得分:0)
如果我没有误解,你正在寻找这样的东西:
% x and y (of equal length) represent the samples of two signals
% at the same points in time.
Lx = length(x);
dt = 2; % Interval between samples (inverse of sampling frecuency).
t = (0:Lx-1) * dt; % This will be the horizontal variable.
plot(t, x, 'b;Signal x;', t, y, 'r;Signal y;');