Разобрать фазу сигнала
Панель инструментов системы DSP/Операции с сигналами
Блок Unwrap развертывает каждый канал входного сигнала, добавляя или вычитая соответствующие кратные 2δ к каждому элементу канала. Блок распознает разрывы фазы, превышающие значение параметра «Допуск». Дополнительные сведения о развертке фазы см. в разделе Определение развертки фазы.
Port_1 - Вход сигналаВходной сигнал для восстановления, заданный как скаляр, вектор или матрица. На входе должны быть записи фазы радиана.
Типы данных: single | double
Port_1 - Выход сигналаРазвернутый выходной сигнал, возвращаемый как скаляр, вектор или матрица.
Блок сохраняет входной размер и размер, а скорость выходного порта равна скорости входного порта.
Типы данных: single | double
Tolerance (radians) - Размер прыжкаpi (по умолчанию) | скалярное значениеРазмер перехода, который блок распознает как истинный разрыв фазы. Значение по умолчанию устанавливается в δ (а не меньшее значение), чтобы избежать изменения допустимых признаков сигнала. Чтобы увеличить чувствительность блока, задайте для параметра Допуск (Tolerance) значение, немного меньшее δ.
Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Input processing - Метод обработки входных данныхColumns as channels (frame based) (по умолчанию) | Elements as channels (sample based)Укажите, как блок должен обрабатывать входные данные. Можно задать для этого параметра одну из следующих опций:
Columns as channels (frame based) (по умолчанию) - при выборе этой опции блок обрабатывает каждый столбец ввода как отдельный канал.
Elements as channels (sample based) - При выборе этой опции блок обрабатывает каждый элемент ввода как отдельный канал.
Do not unwrap phase discontinuities between successive frames - Проверка последовательных кадровoff (по умолчанию) | onПри снятии этого флажка блок игнорирует границы между входными кадрами и не сбрасывает начальное значение фазы до нуля каждый раз при получении нового входного сигнала. В этом режиме блок непрерывно развертывает данные в каждом столбце входного сигнала.
На этом рисунке показано, как блок развертывает данные в этом режиме.

При установке этого флажка блок обрабатывает каждый кадр входных данных независимо и сбрасывает начальное значение фазы для каждого нового входного кадра.
На этом рисунке показано, как блок развертывает данные в этом режиме.

Дополнительные сведения см. в разделе Обработка на основе кадров.
Чтобы включить этот параметр, установите для параметра Input processing значение Columns as channels (frame based). В режиме обработки на основе выборки блок не сбрасывает начальное значение фазы до нуля для каждого нового входа. Дополнительные сведения см. в разделе Обработка на основе образцов.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
Разбиение на фазы или разбиение на фазы - это процесс, часто используемый для восстановления исходной фазы сигнала. Алгоритмы развертки добавляют соответствующие кратные 2δ к каждому входу фазы для восстановления исходных значений фазы, как показано на диаграмме. Дополнительные сведения об алгоритме восстановления, используемом этим блоком, см. в разделе Метод восстановления.
Алгоритмы, которые вычисляют фазу сигнала, часто только выходные фазы между -δ и δ. Например, такие алгоритмы вычисляют фазу sin (2δ + 3) равной 3, так как sin (3) = sin (2λ + 3), а так как фактическая фаза, 2λ + 3, не находится между -λ и δ. Такие алгоритмы вычисляют фазы sin (-4δ + 3) и sin (16λ + 3) также как 3.


Блок Unwrap разворачивает каждый канал своей входной матрицы или входного вектора, добавляя 2οk к каждому последовательному элементу канала и обновляя k при каждом переходе фазы. Фазовый переход происходит, когда разность между двумя соседними записями значений фазы превышает значение параметра Tolerance.
Этот код показывает, как блок развертывает данные в заданном входном канале u.
k=0; % initialize k to 0
i=1; % initialize the counter to 1
alpha=pi; % set alpha to the desired Tolerance. In this case, pi
for i = 1:(size(u)-1)
yout(i,:)=u(i)+(2*pi*k); % add 2*pi*k to ui
if((abs(u(i+1)-u(i)))>(abs(alpha))) %if diff is greater than alpha, increment or decrement k
if u(i+1)<u(i) % if the phase jump is negative, increment k
k=k+1;
else % if the phase jump is positive, decrement k
k=k-1;
end
end
end
yout((i+1),:)=u(i+1)+(2*pi*k); % add 2*pi*k to the last element of the inputПри конфигурировании блока для выполнения обработки на основе кадров установите для параметра Input processing значение Columns as channels (frame based), блок поддерживает два различных режима восстановления. В обоих режимах блок добавляет к элементам каждого входного канала по 2,.dk и обновляет k при каждом разрыве фазы. Разница между этими двумя режимами заключается в том, как часто блок сбрасывает начальное значение фазы (k) до нуля. Можно развернуть данные через границы кадра (по умолчанию) или только внутри входных кадров путем сброса начального значения фазы при каждом получении нового входного кадра.
Развертывание по границам фрейма
В режиме по умолчанию блок игнорирует границы между входными кадрами и продолжает восстанавливать данные в каждом канале без сброса начального значения фазы до нуля. Чтобы задать этот режим, снимите флажок Не развертывать разрывы фаз между последовательными кадрами. На этом рисунке показано, как блок развертывает данные в этом режиме.

Развертывание в кадрах
При установке флажка Не развертывать разрывы фаз между последовательными кадрами блок обрабатывает каждый кадр входных данных независимо. В этом режиме блок сбрасывает начальное значение фазы на ноль каждый раз, когда принимается новый входной кадр. На этом рисунке показано, как блок развертывает данные в этом режиме.

При настройке блока для выполнения обработки на основе проб путем установки для параметра Input processing значения Elements as channels (sample based)блок обрабатывает каждый элемент входа как отдельный канал. Блок развертывает данные в каждом канале входа и не сбрасывает начальную фазу в нуль каждый раз, когда принимается новый вход. На этом рисунке показано, как блок развертывает данные при выполнении обработки на основе выборки.

Созданный код зависит от memcpy или memset функции (string.h) при определенных условиях.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
