问题描述
|
如果我以前产生过两个信号,如何从中产生一个复合信号。
根据我的理解,复合信号是让两个信号出现在同一图上(重叠)
那么处理复合信号需要什么语法呢?
注意:poth信号具有相同的时间间隔。
解决方法
您需要使用
hold
函数来保留第一个图,同时在其上绘制第二个图。这是一个例子:
x=linspace(0,2*pi,1e3);
plot(x,sin(2*x))
hold on
plot(x,cos(2*x),\'r\')
hold off
hold off
释放\“ hold \”,并且如果现在绘制任何图形,将不保留先前的图形。释放保全是个好习惯,这样您就不会无意间使多个地块分层(当然,除非有此意图)。
如果您有两个幅度变化幅度较大的信号,则一种选择是缩放它们,使其具有可比较的幅度。例如,这可以通过将两者均归一化为最大值1来实现。例如:
x=linspace(0,1e3);
y=100*sin(2*x);
z=cos(2*x);
plot(x,y/max(abs(y)),x,z/max(abs(z)))
您可能必须记下或提及(无论您在何处使用此功能)信号均已标准化,因此很清楚。
或者,您可以使用plotyy
功能,使您可以绘制两条带有y轴的曲线。例如。:
x=linspace(0,1e3);
y=100*sin(2*x);
z=cos(2*x);
plotyy(x,y,z)
编辑2:
要更改plotyy
中的颜色,您需要使用线条的手柄。继续上面的示例,
[ax,h1,h2]=plotyy(x,z);
set(h1,\'color\',\'m\')
set(h2,[0,0.5,0])
在这里,我展示了两种设置颜色的方法。一种是使用内置的颜色字符串(\'r\'
->红色,\'m\'
->洋红色,\'c\'
->青色,\'g\'
->绿色,\'b\'
->蓝色,\'y\'
->黄色,\'k\'
->黑色,\'w\'
->白色)和另一个是由3元素数字RGB向量组成,可以采用0到1之间的值。
有时,最好不要给y轴上色(我不喜欢这样)。要将其更改为黑色,请将ax
的\'ycolor\'
属性值设置为黑色。
set(ax,\'ycolor\',\'k\')
, 如果我没有误解,那么您正在寻找这样的东西:
% 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,\'b;Signal x;\',t,\'r;Signal y;\');