Как создать композитный сигнал с помощью MATLAB? - PullRequest
0 голосов
/ 13 июня 2011

Если у меня есть два сигнала, которые я генерировал раньше, как я могу сделать из них один композитный сигнал.Насколько я понимаю, составной сигнал состоит в том, чтобы два сигнала появлялись на одном и том же графике (перекрытие), поэтому какой синтаксис необходим для продвижения этого составного сигнала ??*

Ответы [ 2 ]

0 голосов
/ 13 июня 2011

Если я не понял неправильно, вы ищете что-то вроде этого:

% 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;');
0 голосов
/ 13 июня 2011

Вам нужно использовать функцию hold, чтобы сохранить первый график, пока вы рисуете второй.Вот пример:

x=linspace(0,2*pi,1e3);
plot(x,sin(2*x))
hold on
plot(x,cos(2*x),'r')
hold off

hold off снимает «удержание», и если вы строите что-либо сейчас, предыдущие графики не сохраняются.Хорошей практикой является снятие удержания, чтобы вы случайно не продолжили наложение нескольких графиков (если, конечно, это не намерение).


Если у вас есть два сигнала с широкими амплитудами, один из вариантовмасштабировать их так, чтобы они были сопоставимых амплитуд.Это может быть достигнуто, например, путем нормализации обоих значений максимум до 1. Например:

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 для каждой.Например:

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' -> зеленый, 'b' -> синий, 'y' -> желтый, 'k' -> черный, 'w' -> белый), а другой - с помощью 3-элементного числового вектора RGB, который может принимать значения от 0 до 1.

Иногда желательно не иметьОси Y окрашены (они мне так не нравятся).Чтобы изменить их на черный, установите значение свойства 'ycolor' для ax на черный.

set(ax,'ycolor','k')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...