dsp.PhaseExtractor

Извлеките неотвернутую фазу комплексного входа

Описание

The dsp.PhaseExtractor Системная object™ извлекает неотвернутую фазу действительного или комплексного входа.

Чтобы извлечь неотвернутую фазу входного сигнала:

  1. Создайте dsp.PhaseExtractor Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

пример

phase = dsp.PhaseExtractor возвращает системный объект извлечения фазы, который извлекает неотвернутую фазу входного сигнала.

пример

phase = dsp.PhaseExtractor(Name,Value) возвращает экстрактор фазы Системный объект с заданным именем свойства, заданным заданным значением.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Задайте, должна ли фаза быть развёрнута только в системе координат, как логический скаляр.

Когда вы устанавливаете это свойство:

  • false - Объект возвращает неотвернутую фазу, игнорируя контуры между входными кадрами.

  • true - Объект обрабатывает каждую систему координат входных данных независимо и сбрасывает начальное совокупное значение неразвернутой фазы, чтобы нуль каждый раз, когда получен новый входной кадр.

Использование

Синтаксис

Описание

пример

p = phase(input) извлекает неотвернутую фазу, p, входного сигнала. Каждый столбец input сигнал обрабатывается как отдельный канал. С течением времени Системный объект разрывает фазу каждого канала входного сигнала независимо.

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

расширить все

Вход данных, заданный как вектор или матрица. Этот объект поддерживает входные сигналы переменного размера. То есть вы можете изменить размер входного кадра (количество строк) даже после вызова алгоритма. Однако количество каналов (количество столбцов) должно оставаться постоянным.

Типы данных: single | double
Поддержка комплексного числа: Да

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

расширить все

Неотвернутая фаза входа, возвращенная как вектор или матрица. Размер и тип данных выходного выхода развёрнутой фазы совпадают с размером и типом данных входного сигнала.

Типы данных: single | double

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Например, myObject (x) становится шагом (myObject, x).

Создайте dsp.SineWave Системные object™. Задайте, что объект генерирует экспоненциальный выход с комплексной экспонентой.

sine = dsp.SineWave('Frequency',10,...
    'ComplexOutput',true,'SamplesPerFrame',128);

Создайте dsp.PhaseExtractor Системный объект?. Укажите, что объект игнорирует контуры системы координат при возвращении неотвернутой фазы.

phase = dsp.PhaseExtractor('TreatFramesIndependently',false);

Извлеките неотвернутую фазу синусоиды. Постройте график зависимости фазы от времени с помощью timescope Системный объект.

timeplot = timescope('PlotType','Line','SampleRate',1000,...
    'TimeSpanSource','Property','TimeSpan',1.5,'YLimits',[0 80],...
    'ShowGrid',true,...
    'YLabel','Unwrapped Phase (rad)');
for ii = 1:10
    sineOutput = sine();
    phaseOutput = phase(sineOutput);
    timeplot(phaseOutput)
end

Примечание. Если вы используете R2016a или более ранний релиз, замените каждый вызов объекта эквивалентным step синтаксис. Для примера, obj(x) становится step(obj,x).

Создайте dsp.TransferFunctionEstimator Системные object™.

tfe = dsp.TransferFunctionEstimator('FrequencyRange','centered');

Создайте dsp.PhaseExtractor Системные object™. Укажите, что объект должен обрабатывать каждую систему координат данных независимо.

phase = dsp.PhaseExtractor('TreatFramesIndependently',true);

Создайте dsp.IIRFilter Системные object™. Вычислите передаточную функцию БИХ третьего порядка. Используйте butter функция для генерации коэффициентов для фильтра.

[b,a] = butter(3,.3);
iir = dsp.IIRFilter('Numerator',b,'Denominator',a);

Извлеките фазовый отклик передаточной функции. Постройте график с помощью dsp.ArrayPlot Системные object™.

sampleRate = 1e3;
phaseplot = dsp.ArrayPlot('PlotType','Line','XOffset',-sampleRate/2,...
    'YLimits',[-15 0],...
    'YLabel','Phase Response (rad)',...
    'XLabel','Frequency (Hz)',...
    'Title','System Phase response');
for ii = 1:100
    % Generate input
    input = 0.05*randn(1000,1);
    % Pass through IIR filter
    filterOutput = iir(input);
    % Estimate transfer function
    transferFunction = tfe(input,filterOutput);
    % Plot transfer function phase
    phaseOutput = phase(transferFunction);
    phaseplot(phaseOutput);
end

Алгоритмы

Рассмотрим входной кадр длины N:

(x1x2xN)

Объект действует на эту систему координат и формирует этот выход:

(Φ1Φ2ΦN)

где:

Φi=Φi1+угол(xi1*xi)

Здесь я бегу от 1 до N. The angle функция возвращает угол фазы в радианах.

Если входной сигнал состоит из нескольких систем координат:

  • Если вы задаете TreatFramesIndependently на trueобъект обрабатывает каждую систему координат независимо. Поэтому в каждой системе координат объект вычисляет фазу с помощью предыдущей формулы, где:

    • Φ0 равен 0.

    • x0 равен 1.

  • Если вы задаете TreatFramesIndependently на falseобъект игнорирует контуры между системами координат. Поэтому в каждой системе координат step метод вычисляет фазу по предыдущей формуле, где:

    • Φ0 - последняя неотвернутая фаза из предыдущей системы координат.

    • x0 - последняя выборка из предыдущей системы координат.

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

.

См. также

Блоки

Введенный в R2014b