Разверните фазу сигнала
Операции сигнала
dspsigops
Блок Unwrap разворачивает каждый канал входа путем добавления или вычитания соответствующих множителей 2π к каждому элементу канала. Вход может быть вектором или матрицей, и должен иметь записи фазы радиана. Блок распознает разрывы фазы, больше, чем установка параметра Tolerance. Для получения дополнительной информации о разворачивании фазы, см., что Определение Фазы Разворачивает.
Блок сохраняет входной размер и размерность, и уровень выходного порта равняется уровню входного порта.
Блок 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
Когда вы конфигурируете блок, чтобы выполнить основанную на кадре обработку, поддержки блока, два различных разворачивают режимы. И в режимах, блок добавляет 2πk к каждому входу элементы канала и обновляет k в каждом разрыве фазы. Различие между этими двумя режимами - то, как часто блок сбрасывает значение начальной фазы (k), чтобы обнулить. Можно принять решение развернуть данные через контуры кадра (значение по умолчанию) или развернуть только во входных кадрах, путем сброса значения начальной фазы каждый раз, когда новый входной кадр принимается.
В режиме по умолчанию блок игнорирует контуры между входными кадрами и продолжает разворачивать данные в каждом канале, не сбрасывая значение начальной фазы, чтобы обнулить. Чтобы задать этот режим, снимите флажок Do not unwrap phase discontinuities between successive frames. Следующая фигура иллюстрирует, как блок разворачивает данные в этом режиме.
Когда вы устанавливаете флажок Do not unwrap phase discontinuities between successive frames, блок обрабатывает каждый кадр входных данных независимо. В этом режиме блок сбрасывает значение начальной фазы, чтобы обнулить каждый раз, когда новый входной кадр принимается. Следующая фигура иллюстрирует, как блок разворачивает данные в этом режиме.
Когда вы конфигурируете блок, чтобы выполнить основанную на выборке обработку, блок обрабатывает каждый элемент входа как отдельный канал. Блок разворачивает данные в каждом канале входа и не сбрасывает начальную фазу, чтобы обнулить каждый раз, когда новый вход получен. Следующая фигура иллюстрирует, как блок разворачивает данные при выполнении основанной на выборке обработки.
Алгоритмы, которые вычисляют фазу сигнала часто только выходные фазы между –π и π. Например, такие алгоритмы вычисляют фазу sin (2π + 3), чтобы быть 3, начиная с sin (3) = sin (2π + 3), и поскольку фактическая фаза, 2π + 3, не между –π и π. Такие алгоритмы вычисляют фазы sin (–4π + 3) и sin (16π + 3), чтобы быть 3 также.
Фаза разворачивает или разворачивает, процесс, часто раньше восстанавливал исходную фазу сигнала. Разверните алгоритмы, добавляют соответствующие множители 2π к каждому входу фазы, чтобы восстановить исходные значения фазы, как проиллюстрировано в следующей схеме. Смотрите Разворачивают Метод для получения дополнительной информации о разворачивать алгоритме, используемом этим блоком.
Следующая фигура иллюстрирует концепцию разворачивания фазы.
Размер скачка, который блок распознает истинным разрывом фазы. Значение по умолчанию собирается в π (а не меньшее значение) постараться не изменять законные функции сигнала. Чтобы увеличить чувствительность блока, установите Tolerance на значение немного меньше, чем π.
Задайте, как блок должен обработать вход. Можно установить этот параметр на одну из следующих опций:
Columns as channels (frame based)
(значение по умолчанию) — Когда вы выбираете эту опцию, блок обрабатывает каждый столбец входа как отдельный канал.
Elements as channels (sample based)
— Когда вы выбираете эту опцию, блок обрабатывает каждый элемент входа как отдельный канал.
Когда вы снимаете этот флажок, блок игнорирует контуры между входными кадрами и не сбрасывает значение начальной фазы, чтобы обнулить каждый раз, когда новый вход получен. В этом режиме, блочно-непрерывно разворачивает данные в каждом столбце входа. Когда вы устанавливаете этот флажок, блок обрабатывает каждый кадр входных данных независимо и сбрасывает значение начальной фазы для каждого нового входного кадра. Смотрите раздел Frame-Based Processing для получения дополнительной информации.
Этот параметр доступен только, когда вы конфигурируете блок, чтобы выполнить основанную на кадре обработку. В основанном на выборке режиме обработки блок не сбрасывает значение начальной фазы, чтобы обнулить для каждого нового входа. Смотрите Основанную на выборке Обработку для получения дополнительной информации.
Плавающая точка двойной точности
Плавающая точка с одинарной точностью
unwrap | MATLAB |