Разверните фазу сигнала
DSP System Toolbox / Операции Сигнала
Блок Unwrap разворачивает каждый канал входа путем добавления или вычитания соответствующих множителей 2π к каждому элементу канала. Блок распознает разрывы фазы, больше, чем значение параметра Tolerance. Для получения дополнительной информации о разворачивании фазы см., что Определение Фазы Разворачивает.
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)
Задайте, как блок должен обработать вход. Можно установить этот параметр на одну из thse опций:
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πk к каждому входу элементы канала и обновляет k в каждом разрыве фазы. Различие между этими двумя режимами - то, как часто блок сбрасывает значение начальной фазы (k), чтобы обнулить. Можно принять решение развернуть данные через контуры системы координат (значение по умолчанию) или развернуть только во входных кадрах, путем сброса значения начальной фазы каждый раз, когда новый входной кадр получен.
Разворачивание через контуры системы координат
В режиме по умолчанию блок игнорирует контуры между входными кадрами и продолжает разворачивать данные в каждом канале, не сбрасывая значение начальной фазы, чтобы обнулить. Чтобы задать этот режим, снимите флажок Do not unwrap phase discontinuities between successive frames. Этот рисунок иллюстрирует, как блок разворачивает данные в этом режиме.
Разворачивание в системах координат
Когда вы устанавливаете флажок Do not unwrap phase discontinuities between successive frames, блок обрабатывает каждую систему координат входных данных независимо. В этом режиме блок сбрасывает значение начальной фазы, чтобы обнулить каждый раз, когда новый входной кадр получен. Этот рисунок иллюстрирует, как блок разворачивает данные в этом режиме.
Когда вы конфигурируете блок, чтобы выполнить основанную на выборке обработку путем установки параметра Input processing на Elements as channels (sample based)
, блок обрабатывает каждый элемент входа как отдельный канал. Блок разворачивает данные в каждом канале входа и не сбрасывает начальную фазу, чтобы обнулить каждый раз, когда новый вход получен. Этот рисунок иллюстрирует, как блок разворачивает данные при выполнении основанной на выборке обработки.
Сгенерированный код использует memcpy
или memset
функции (string.h
) при определенных обстоятельствах.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.