dsp. PulseMetrics

Импульсные метрики двухуровневых форм волны

Описание

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

Получить импульсные метрики для двухуровневой формы волны:

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

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

pm = dsp.PulseMetrics
pm = dsp.PulseMetrics(Name,Value)

Описание

pm = dsp.PulseMetrics создает импульсную метрическую Систему object™, pm. Объект вычисляет время нарастания, осеннее время и ширина импульса. dsp.PulseMetrics также вычисляет метрики цикла, такие как импульсные разделения, периоды и рабочие циклы. Поскольку импульс содержит два перехода, объект содержит надмножество возможности, заданной в dsp.TransitionMetrics.

пример

pm = dsp.PulseMetrics(Name,Value) возвращает Системный объект PulseMetrics, pm, с каждым заданным набором свойств к заданному значению.

Свойства

развернуть все

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

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

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

Если CycleOutputPort является true, о метриках цикла сообщают в течение каждого импульсного периода.

Максимальные выборки, чтобы сохранить между вызовами алгоритма. Это свойство требует положительного целого числа, которое задает максимальное количество выборок, чтобы сохранить между вызовами алгоритма. Когда количество выборок, чтобы быть сохраненным превышает эту длину, самые старые избыточные выборки отбрасываются.

Настраиваемый: да

Зависимости

Это свойство применяется, когда свойством RunningMetrics является true.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Допуск государственного уровня (в проценте). Это свойство требует скаляра, который задает максимальное отклонение или от низкого или от высокого состояния, прежде чем это будет считаться вне того состояния. Допуск выражается как процент амплитуды формы волны.

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

Полярность импульса, чтобы извлечь. Это свойство задает тип импульса, чтобы извлечь полярностью ведущего перехода. Допустимыми значениями для этого свойства является 'positive' или 'negative'.

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

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

Настраиваемый: да

Зависимости

Это свойство включено только, когда свойство PostshootOutputPort установлено в true.

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

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

Соответствует длительности времени, чтобы искать перерегулирование и метрики отклонения от номинала, сразу предшествующие каждому переходу. Длительность выражается как фактор длительности перехода.

Настраиваемый: да

Зависимости

Это свойство включено только, когда свойство PreshootOutputPort установлено в true.

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

Включите метрики по всем вызовам алгоритма. Если RunningMetrics установлен в false, метрики вычисляются для каждого вызова алгоритма независимо. Если RunningMetrics установлен в true, метрики вычисляются через последующие вызовы алгоритма. Если существует недостаточно выборок, чтобы вычислить метрики, сопоставленные с последним переходом, областью аберрации постперехода, или урегулирование ищет длительность в текущей записи, объект задерживает создание отчетов обо всем переходе, аберрации и урегулировании метрик, сопоставленных с последним переходом, пока последующий вызов алгоритма не выполняется с достаточным количеством данных, чтобы вычислить все активированные метрики для того перехода.

Выборка уровня однородно выбранного сигнала. Задайте частоту дискретизации в герц как положительная скалярная величина. Это свойство используется, чтобы создать внутренние временные стоимости, которые соответствуют входным демонстрационным значениям. Временные стоимости запускаются с нуля.

Зависимости

Это свойство применяется, когда свойство TimeInputPort установлено в false.

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

Позвольте уладить метрики. Если свойство SettlingOutputPort установлено в true, об обосновывающихся метриках сообщают для каждого перехода. Область, используемая, чтобы вычислить обосновывающиеся метрики, запускается в midcrossing и длится, пока SettlingSeekDuration не протек. Если прошедший переход происходит, или сигнал не обосновался в PercentStateLevelTolerance итогового уровня, NaN возвращен для каждой метрики. Если существует недостаточно выборок после того, как последний переход, который завершит SettlingSeekDuration, ни о каких метриках не сообщат для последнего перехода. О метриках сообщают для перехода в следующий раз, когда объектный алгоритм называется, если свойство RunningMetrics установлено в true.

Длительность времени, за которое можно искать урегулирование. Это значение свойства является скаляром, который задает количество времени, чтобы осмотреть от середины пересечения контрольного уровня (в секундах). Если переход еще не обосновался, или последующий полный переход обнаруживается в этой длительности, объект сообщает о NaN для всех метрик урегулирования.

Настраиваемый: да

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство SettlingOutputPort на true.

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

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

Настраиваемый: да

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

Автоматическое или ручное вычисление государственного уровня. Если StateLevelsSource установлен в 'Auto', первая запись, отправленная в объект, отправляется в dsp.StateLevels с настройками по умолчанию, чтобы определить государственные уровни входящей формы волны. Если это свойство установлено в 'Property', объект использует значения, которые пользователь задает в свойстве StateLevels.

Добавьте вход, чтобы задать демонстрационные моменты. Установите TimeInputPort на true позволять дополнительному действительному входному вектор-столбцу к объектному алгоритму задать демонстрационные моменты, которые соответствуют демонстрационным значениям. Если этим свойством является false, демонстрационные моменты создаются внутренне. Демонстрационные моменты запускаются в нуле и шаге обратной величиной свойства SampleRate для последующих выборок. Демонстрационные моменты продолжают постепенно увеличиваться, если свойство RunningMetrics установлено в true и никакие прошедшие вызовы reset, или с методами release сталкиваются.

Включите метрики перехода. Если свойство TransitionOutputPort установлено в true, о метриках перехода сообщают для начальных и итоговых переходов каждого импульса.

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

pulse = pm(x)
[pulse,cycle] = pm(x)
[pulse,transition] = pm(x)
[pulse,preshoot] = pm(x)
[pulse,postshoot] = pm(x)
[pulse,settling] = pm(x)
[pulse,cycle,transition,preshoot,postshoot,settling] = pm(x)
[___] = pm(x,T)

Описание

пример

pulse = pm(x) возвращает массив структур, pulse, поля которого содержат вектор-столбцы с действительным знаком. Количество строк каждого поля соответствует количеству полных импульсов, найденных во входе вектор-столбца с действительным знаком, x.

[pulse,cycle] = pm(x) возвращает массив структур, cycle, поля которого содержат вектор-столбцы с действительным знаком, когда вы устанавливаете свойство CycleOutputPort на true. Количество строк каждого поля соответствует количеству полных импульсных периодов, найденных во входе вектор-столбца с действительным знаком, x.

пример

[pulse,transition] = pm(x) возвращает массив структур, transition, когда вы устанавливаете свойство TransitionOutputPort на true. Поля transition содержат матрицы с действительным знаком с двумя столбцами, которые соответствуют метрикам первых и вторых переходов. Количество строк соответствует количеству импульсов, найденных во входной форме волны.

[pulse,preshoot] = pm(x) возвращает массив структур, preshoot, когда вы устанавливаете свойство PreshootOutputPort на true. Поля preshoot содержат матрицы 2D столбца с действительным знаком, длина строки которых соответствует количеству переходов, найденных во входной форме волны. Имена полей идентичны тем из массива структур postshoot.

[pulse,postshoot] = pm(x) возвращает структуру, postshoot, когда вы устанавливаете свойство PostshootOutputPort на true. Поля postshoot содержат матрицы 2D столбца с действительным знаком, длина строки которых соответствует количеству переходов, найденных во входной форме волны.

[pulse,settling] = pm(x) возвращает массив структур, settling, когда вы устанавливаете свойство SettlingOutputPort на true. Поля settling соответствуют обосновывающимся метрикам для каждого перехода. Каждое поле является вектор-столбцом, элементы которого соответствуют отдельной длительности урегулирования, уровням, и моменты.

[pulse,cycle,transition,preshoot,postshoot,settling] = pm(x) который возвращает pulse, cycle, transition, preshoot, postshoot и структуры settling, когда CycleOutputPort, PreshootOutputPort, PostshootPort и свойствами SettlingOutputPort является true. Можно включить или отключить любую комбинацию выходных портов. Однако выходные аргументы заданы в порядке, показанном здесь.

[___] = pm(x,T) вычисляет вышеупомянутые метрики относительно выбранного сигнала, демонстрационные значения которого, x, и демонстрационные моменты, T, являются вектор-столбцами с действительным знаком той же длины. Дополнительный вход T применяется только, когда вы устанавливаете свойство TimeInputPort на true.

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

развернуть все

Входной сигнал, заданный как вектор-столбец с действительным знаком.

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

Выборка моментов, заданных как вектор-столбец с действительным знаком. Установите TimeInputPort на true позволять дополнительному действительному входному вектор-столбцу к объектному алгоритму задать демонстрационные моменты, которые соответствуют демонстрационным значениям. Если TimeInputPort является false, демонстрационные моменты создаются внутренне. Демонстрационные моменты запускаются в нуле и шаге обратной величиной свойства SampleRate для последующих выборок. Демонстрационные моменты продолжают постепенно увеличиваться, если свойство RunningMetrics установлено в true и никакие прошедшие вызовы reset, или с методами release сталкиваются.

Зависимости

Этот вход применим, когда вы устанавливаете свойство TimeInputPort на true.

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

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

развернуть все

Полные импульсы, возвращенные как структура, поля которой содержат вектор-столбцы с действительным знаком. Количество строк каждого поля соответствует количеству полных импульсов, найденных во входе вектор-столбца с действительным знаком, x. Каждый импульс запускается с перехода полярности, заданной свойством Polarity, и заканчивается переходом противоположной полярности.

pulse вывод содержит следующие поля:

  • PositiveCross — Моменты, где положительно идущие переходы пересекают середину контрольного уровня каждого импульса

  • NegativeCross — Моменты, где отрицательно идущие переходы пересекают середину контрольного уровня каждого импульса

  • Width Абсолютная разность между PositiveCross и NegativeCross каждого импульса

  • RiseTime — Длительность между линейно интерполированными моментами, когда положительное движение (возрастающий) переход каждого импульса пересекается ниже - и верхние контрольные уровни

  • FallTime — Длительность между линейно интерполированными моментами, когда отрицательное движение (падающее), переход каждого импульса пересекает верхнее - и более низкие контрольные уровни

Типы данных: struct

Полные импульсные периоды, возвращенные как структура, поля которой содержат вектор-столбцы с действительным знаком. Эта структура может только быть возвращена, когда вы устанавливаете свойство CycleOutputPort на true. Количество строк каждого поля соответствует количеству полных импульсных периодов, найденных во входе вектор-столбца с действительным знаком, x. Вам нужны по крайней мере три последовательных переменных перехода полярности, которые запускаются и заканчиваются той же полярностью как значение свойства Polarity, если вы хотите вычислить метрики цикла. Если последний переход, найденный во входе x, не совпадает с полярностью свойства Polarity, импульсное разделение, точка, частота, и о рабочем цикле не сообщают для последнего импульса. Если свойство RunningMetrics установлено в true, когда это происходит, весь импульс, цикл, переход, предварительный выстрел, поствыстрел, и обосновывающиеся метрики, сопоставленные с последним импульсом, задерживаются, пока последующий вызов алгоритма не обнаруживает следующий переход.

cycle вывод содержит следующие поля:

  • Period — Длительность между первым переходом импульса тока и первым переходом следующего импульса.

  • Frequency — Обратная величина периода.

  • Separation — Длительность между серединой пересечений контрольного уровня второго перехода каждого импульса и первым переходом следующего импульса.

  • Width Длительность между серединой пересечений контрольного уровня первых и вторых переходов каждого импульса. Это эквивалентно параметру ширины структуры pulse.

  • DutyCycle — Отношение ширины к периоду для каждого импульса.

Типы данных: struct

Метрики перехода, возвращенные как массив структур. Эта структура может только быть возвращена, когда вы устанавливаете свойство TransitionOutputPort на true. Поля transition содержат матрицы с действительным знаком с двумя столбцами, которые соответствуют метрикам первых и вторых переходов. Количество строк соответствует количеству импульсов, найденных во входной форме волны.

transition вывод содержит следующие поля:

  • Duration — Количество времени между интерполированными моментами, где переход пересекается ниже - и верхние контрольные уровни

  • SlewRate — Отношение абсолютной разности между верхними и более низкими контрольными уровнями к длительности перехода

  • MiddleCross — Линейно интерполированный момент вовремя, где переход сначала пересекает середину контрольного уровня

  • LowerCross — Линейно интерполированный момент, где сигнал пересекает более низкий контрольный уровень

  • UpperCross — Линейно интерполированный момент, где сигнал пересекает верхний контрольный уровень

Типы данных: struct

Предварительно стреляйте в метрики, возвращенные как массив структур. Эта структура может только быть возвращена, когда вы устанавливаете свойство PreshootOutputPort на true. Поля preshoot содержат матрицы 2D столбца с действительным знаком, длина строки которых соответствует количеству переходов, найденных во входной форме волны.

preshoot вывод содержит следующие поля:

  • Overshoot — Перерегулирование видимой области, выраженной как процент амплитуды формы волны

  • Undershoot — Отклонение от номинала видимой области, выраженной как процент амплитуды формы волны

  • OvershootLevel — Уровень перерегулирования

  • UndershootLevel — Уровень отклонения от номинала

  • OvershootInstant — Момент, который соответствует перерегулированию

  • UndershootInstant — Момент, который соответствует отклонению от номинала

Типы данных: struct

Постстреляйте в метрики, возвращенные как массив структур. Эта структура может только быть возвращена, когда вы устанавливаете свойство PostshootOutputPort на true. Поля postshoot содержат матрицы 2D столбца с действительным знаком, длина строки которых соответствует количеству переходов, найденных во входной форме волны.

postshoot вывод содержит следующие поля:

  • Overshoot — Перерегулирование видимой области, выраженной как процент амплитуды формы волны

  • Undershoot — Отклонение от номинала видимой области, выраженной как процент амплитуды формы волны

  • OvershootLevel — Уровень перерегулирования

  • UndershootLevel — Уровень отклонения от номинала

  • OvershootInstant — Момент, который соответствует перерегулированию

  • UndershootInstant — Момент, который соответствует отклонению от номинала

Типы данных: struct

Урегулирование метрик для каждого перехода, возвращенного как массив структур. Эта структура может только быть возвращена, когда вы устанавливаете свойство SettlingOutputPort на true. Поля settling соответствуют обосновывающимся метрикам для каждого перехода. Каждое поле является вектор-столбцом, элементы которого соответствуют отдельной длительности урегулирования, уровням, и моменты.

settling вывод содержит следующие поля:

  • Длительность Количество времени от того, когда сигнал пересекает середину контрольного уровня ко времени, где сигнал входит и остается в заданном PercentStateLevelTolerance амплитуды формы волны по заданному урегулированию, ищет длительность

  • Instant — Момент вовремя, где сигнал входит и остается в заданном допуске

  • Level — Уровень формы волны, где это входит и остается в заданном допуске

Типы данных: struct

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

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

release(obj)

развернуть все

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

Примеры

развернуть все

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

Определите ширину, точка, и рабочий цикл 5-вольтового импульса, выбранного на уровне 4 МГц.

 load('pulseex.mat','x','t');

Создайте объект dsp.PulseMetrics. Установите свойство TimeInputPort на true задавать моменты выборки как вход. Установите свойство CycleOutputPort на true получать метрики для каждого импульса. Поскольку вход является 5-вольтовым импульсом, установите свойство StateLevels на [0 5].

 pm = dsp.PulseMetrics('TimeInputPort',true, ...
                            'CycleOutputPort', true, ...
                            'StateLevels',[0 5])
pm = 
  dsp.PulseMetrics with properties:

                      Polarity: 'Positive'
             StateLevelsSource: 'Property'
                   StateLevels: [0 5]
    PercentStateLevelTolerance: 2
        PercentReferenceLevels: [10 50 90]
                RunningMetrics: false
                 TimeInputPort: true
               CycleOutputPort: true
          TransitionOutputPort: false
            PreshootOutputPort: false
           PostshootOutputPort: false
            SettlingOutputPort: false

Вызовите объект вычислить метрики цикла и построить результат.

 [pulse,cycle] = pm(x,t);   
 plot(pm) 
 text(t(2),-0.5,['Duty Cycle: ',num2str(cycle.DutyCycle)]);

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

Найдите скорости просмотра продвижения и запаздывающие ребра 2,3-вольтовых электронных часов выбранными на уровне 4 МГц.

 load('pulseex.mat','x','t');

Создайте объект dsp.PulseMetrics. Установите свойство TransitionOutputPort на true сообщать о метриках перехода для начальных и итоговых переходов. Установите свойство StateLevelsSource на 'Auto' оценивать государственные уровни от данных.

 pm = dsp.PulseMetrics('SampleRate',4e6, ...
                            'TransitionOutputPort', true, ...
                            'StateLevelsSource','Auto');

Вычислите импульс и метрики перехода и постройте результат.

 [pulse,transition] = pm(x); 
 plot(pm);

Ссылки

[1] Стандарт IEEE® на переходах, импульсах и связанных формах волны, стандарт IEEE 181, 2003.

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

Системные объекты

Представленный в R2012a