dsp.PhaseExtractor

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

Описание

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+\angle(xi1*xi)

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

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

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

    • Φ0 0.

    • x0 1.

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

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

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

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

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

Блоки

Введенный в R2014b