如何使用MATLAB创建复合信号?

时间:2011-06-13 04:36:47

标签: matlab

如果我之前生成了两个信号,我怎样才能从中产生一个复合信号。 从我的理解复合信号是让两个信号出现在同一个图上(重叠) 那么什么是合成信号的语法需要?

注意:poth信号具有相同的时间间隔。

2 个答案:

答案 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;');