alignsignals

Выровняйте два сигнала путем задержания самого раннего сигнала

Описание

пример

[Xa,Ya] = alignsignals(X,Y) оценивает задержку, D, между этими двумя входными сигналами, X и Y, и возвращает выровненные сигналы, Xa и Ya.

  • Если Y задерживается относительно X, затем D положителен и X задерживается выборками D.

  • Если Y совершенствуется относительно X, затем D отрицателен и Y задерживается –D выборками.

Задержки X или Y может быть введен преднезаконченными нулями.

пример

[Xa,Ya] = alignsignals(X,Y,maxlag) использование maxlag как максимальный размер окна, чтобы найти предполагаемую задержку, D, между этими двумя входными сигналами, X и Y. Это возвращает выровненные сигналы, Xa и Ya.

пример

[Xa,Ya] = alignsignals(X,Y,maxlag,'truncate') сохраняет длины выровненных сигналов, Xa и Ya, то же самое как те из входных сигналов, X и Y, соответственно.

  • Если предполагаемая задержка, D, положительна, то нули D предварительно ожидаются к X и последние выборки D X являются усеченными.

  • Если предполагаемая задержка, D, отрицательна, то –D нули предварительно ожидаются к Y и последние –D выборки Y являются усеченными.

Примечания

X и Y строка или вектор-столбцы длины LX и LY, соответственно.

  • Если D ≥ LX, то Xa состоит из нулей LX. Все выборки X потеряны.

  • Если D ≥ LY, то Ya состоит из нулей LY. Все выборки Y потеряны.

Постараться не присваивать определенное значение maxlag при использовании 'truncate' опция, набор maxlag к [].

пример

[Xa,Ya,D] = alignsignals(___) возвращает предполагаемую задержку, D. Этот синтаксис может включать любой из входных параметров, используемых в предыдущих синтаксисах.

Примеры

свернуть все

Выровняйте Y сигнала относительно X путем задержки его три выборки.

Создайте два сигнала, X и YX точно то же самое как Y, кроме X имеет три начальных нуля и один дополнительный следующий нуль. Выровняйте два сигнала.

X = [0 0 0 1 2 3 0 0];
Y = [1 2 3 0];

[Xa,Ya] = alignsignals(X,Y)
Xa = 1×8

     0     0     0     1     2     3     0     0

Ya = 1×7

     0     0     0     1     2     3     0

Выровняйте X сигнала когда Y задерживается относительно X двумя выборками.

Создайте два сигнала, X и YY точно то же самое как X, кроме Y имеет два начальных нуля. Выровняйте два сигнала.

X = [1 2 3];
Y = [0 0 1 2 3];
maxlag = 2;

[Xa,Ya,D] = alignsignals(X,Y,maxlag)
Xa = 1×5

     0     0     1     2     3

Ya = 1×5

     0     0     1     2     3

D = 2

Выровняйте Y сигнала относительно X, несмотря на то, что Y сигнал с шумом.

Создайте два сигнала, X и YY точно то же самое как X с некоторым шумом, добавленным к нему. Выровняйте два сигнала.

X = [0 0 1 2 3 0];
Y = [0.02 0.12 1.08 2.21 2.95 -0.09];

[Xa,Ya,D] = alignsignals(X,Y)
Xa = 1×6

     0     0     1     2     3     0

Ya = 1×6

    0.0200    0.1200    1.0800    2.2100    2.9500   -0.0900

D = 0

Вы не должны изменять входные сигналы, чтобы произвести выходные сигналы. Задержка D нуль.

Вызовите 'truncate' опция при вызове alignsignals функция.

Создайте два сигнала, X и YY точно то же самое как X, кроме Y имеет два начальных нуля. Выровняйте два сигнала, применив 'truncate' директива.

X = [1 2 3];
Y = [0 0 1 2 3];

[Xa,Ya,D] = alignsignals(X,Y,[],'truncate')
Xa = 1×3

     0     0     1

Ya = 1×5

     0     0     1     2     3

D = 2

Заметьте что выходной сигнал Xa имеет длину 3, та же длина как входной сигнал X.

В случае, где использование 'truncate' опция заканчивает тем, что обрезала все исходные данные X, предупреждение выдано. Сделать alignsignals выдайте такое предупреждение, запустите следующий пример.

Y = [0 0 0 0 1 2 3];

[Xa,Ya,D] = alignsignals(X,Y,[],'truncate')
Warning: All original data in the first input X has been truncated because the length of X is smaller than the estimated delay D: to avoid truncating this data do not use the 'truncate' option.
Xa = 1×3

     0     0     0

Ya = 1×7

     0     0     0     0     1     2     3

D = 4

Выровняйте Y сигнала относительно X, несмотря на то, что Y периодическое повторение X. Возвратите самую маленькую задержку.

Создайте два сигнала, X и YY состоит из двух копий ненулевого фрагмента X разделенный нулями. Выровняйте два сигнала.

X = [0 1 2 3];
Y = [1 2 3 0 0 0 0 1 2 3 0 0];

[Xa,Ya,D] = alignsignals(X,Y)
Xa = 1×4

     0     1     2     3

Ya = 1×13

     0     1     2     3     0     0     0     0     1     2     3     0     0

D = -1

Входные параметры

свернуть все

Первый входной сигнал в виде числового вектора из длины LX.

Пример: [1 2 3]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Второй входной сигнал в виде числового вектора из длины LY.

Пример: [0 0 1 2 3]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Максимальный размер окна или задержка в виде скаляра с целочисленным знаком. По умолчанию, maxlag равно max(length(X),length(Y))-1. Если maxlag вводится как [], это заменяется значением по умолчанию. Если maxlag отрицательно, это заменяется его абсолютным значением. Если maxlag не является с целочисленным знаком, или является комплексным, Inf, или NaNто alignsignals возвращает ошибку.

Пример 2

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Выровненный сначала сигнализируют, возвращенный как числовой вектор, который выравнивается со вторым выходным аргументом, Ya. Если входной параметр X вектор-строка, затем Xa также вектор-строка. Если входной параметр X вектор-столбец, затем Xa также вектор-столбец. Если вы задаете 'truncate' опция и предполагаемая задержка D положительны, затем Xa эквивалентно входному сигналу X с нулями D, предварительно ожидаемыми к нему и его последним усеченным выборкам D.

Выровненный второй сигнал, возвращенный как числовой вектор, который выравнивается с первым выходным аргументом, Xa. Если входной параметр Y вектор-строка, затем Ya также вектор-строка. Если входной параметр Y вектор-столбец, затем Ya также вектор-столбец. Если вы задаете 'truncate' опция и предполагаемая задержка D отрицательны, затем Ya эквивалентно входному сигналу Y с –D нулями, предварительно ожидаемыми к нему и его последним –D усеченным выборкам.

Предполагаемая задержка между входными сигналами, возвращенными как скалярное целое число. Это целое число представляет количество выборок который эти два входных сигнала, X и Y возмещены.

  • Если Y задерживается относительно X, затем D положительно и X задерживается D выборки.

  • Если Y совершенствуется относительно X, затем D отрицательно и Y задерживается –D выборки.

  • Если X и Y уже выравниваются, затем D нуль и никакой X ни Y задерживаются.

Если вы задаете значение для входного параметра maxlag, затем D должно быть меньше чем или равно maxlag.

Алгоритмы

  • Можно найти теорию на оценке задержки спецификацию finddelay функция (см. Алгоритмы).

  • alignsignals функционируйте использует предполагаемую задержку D, чтобы задержать самый ранний сигнал, таким образом, что два сигнала имеют ту же начальную точку.

  • Как задано для finddelay функция, пара сигналов не должна быть точными задержанными копиями друг друга. Однако сигналы могут быть успешно выровнены, только если существует достаточная корреляция между ними. Для получения дополнительной информации об оценке ковариации и функций корреляции, см. [1].

  • Если ваши сигналы имеют функции, такие как импульсы или переходы, можно выровнять их эффективнее использующие функции измерения вместо корреляции. Для примера смотрите, Выравнивают Два Двухуровневых сигнала.

Ссылки

[1] Orfanidis, Софокл Дж. Оптимальная обработка сигналов. Введение. 2-й Эд. Englewood Cliffs, NJ: Prentice Hall, 1996.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | | |