Я хотел бы направить сигнал (Sig
) на его ссылку (Ref
), вычислив масштабный коэффициент. Обычно я вычисляю масштабный коэффициент, деля max(Ref)
на max(Sig)
. Но он работает только тогда, когда оба сигнала начинаются с нуля.Как масштабировать два сигнала в Matlab
Как масштабировать, если сигналы следующим образом:
Ref = [2 2 2 2 3 4 4 4 4 4 4 4 3 2 2 2 2 2 2 2 2 3 4 4 4 4 4 4 4 3 2 2 2 2];
Sig = [2 2 2 2 4 6 6 6 6 6 6 6 4 2 2 2 2 2 2 2 2 4 6 6 6 6 6 6 6 4 2 2 2 2];
Это мой алгоритм:
maxSig = max(Sig);
maxRef = max(Ref);
sf = (maxRef/maxSig);
figure('color','w')
hold on
plot(Ref, 'r')
plot((Sig)*sf, 'b')
legend('Reference','Signal')
grid on
hold off
EDIT: Это то, что я хочу добиться: Sig
было умноженное на коэффициент масштабирования, который идеально выравнивает его с помощью Ref
Примечание: Оба сигнала всегда будут иметь одинаковой длины, и будет нет timelag.
Вы должны вычесть минимум где-то, но это зависит от того, что вы хотите сделать. Каким будет желаемый результат в вашем примере? –
Если tehre не является смещением, они начинаются с нуля, не так ли? –
@AnderBiguri Я думаю, что OP означает отсутствие смещения оси x –