commsrc.pattern

Создайте объект генератора шаблона

Описание

пример

h = commsrc.pattern создает объект генератора шаблонов, h.

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

h = commsrc.pattern(Name,Value) создает комбинированный генератор джиттера с заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

Объект генератора шаблона включает эти свойства. Можно редактировать все свойства, кроме явно отмеченных.

СвойствоОписание
TypeТип объекта генератора шаблона ('Pattern Generator'). Это свойство недоступно для записи.
SamplingFrequency

Частота дискретизации входного сигнала в герце.

SymbolRateСкорость символа входного сигнала. Это свойство зависит от SamplingFequency и SamplesPerSymbol свойства. Это свойство недоступно для записи.
SamplesPerSymbol

Количество выборок, представляющих символ. SamplesPerSymbol должно быть целым числом. Это свойство влияет на SymbolRate.

PulseType

Тип импульса, который генерирует объект. Доступные типы импульсов: возврат к нулю ('RZ') и невозврат к нулю ('NRZ'). Начальное условие для 'NRZ' импульс 0.

OutputLevels

Уровни амплитуды, которые соответствуют индексам символов. Для 'NRZ' импульс, задайте как вектор 1 на 2. Первый элемент вектора 1 на 2 соответствует 0-му символу (значение бита данных 0). Второй элемент соответствует 1-му символу (значение бита данных 1). Для 'RZ' импульс, задайте как скаляр, и значение соответствует значению бита данных 1.

DutyCycle

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

RiseTime

Задает время нарастания импульса от 10% до 90% в секундах.

PulseDuration

Длительность импульса в секундах, заданная стандартом IEEE STD 181. Смотрите Преобразование Сигнала Возврата в Ноль (RZ): Идеальный Импульс в STD-181 рисунок в Функциях Объекта. Применяется при PulseType является 'RZ'.

FallTime

Время спада импульса в секундах, заданное как процент от 10 до 90.

DataPattern

Битовая последовательность, которую использует объект, задается как 'PRBS5', 'PRBS6', …, 'PRBS15', 'PRBS23', 'PRBS31', и 'User Defined'.

UserDataPattern

Пользовательский битовый шаблон, состоящий из вектора таковых и нулей. Применяется при DataPattern является 'User Defined'.

Jitter

Характеристики дрожания, заданные как commsrc.combinedjitter объект. Используйте это свойство для настройки Random, Periodic и Dual Dirac Jitter.

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

Объект генератора шаблона имеет пять функций объекта, как описано в этом разделе.

произвести

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

x = generate(h, N)
где h - указатель на объект, N количество выхода символов и x - вектор-столбец, длина которого N умноженный на h.SamplesPerSymbol.

сброс

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

idealtostd181

Эта функция объекта преобразует идеальные спецификации импульса в спецификации STD-181 IEEE. Идеальное время нарастания диапазона от 0% до 100% (tr) и время спада (tf) преобразуются в диапазоны от 10% до 90% с длительностью ширины импульса 50% (pw). Вызовите idealtostd181 функция объекта с использованием этого синтаксиса:

h = idealtostd181(tr,tf,pw)

Объект устанавливает соответствующие свойства. Параметры сигнала IEEE STD-181 Return-to-Zero (RZ) показаны на этом рисунке.

std181toideal

std181toideal объект преобразует спецификации STD-181 импульсов IEEE, сохраненные в генераторе шаблона, в идеальные спецификации импульсов. Функция преобразует подъем и времена спада с 10% - 90% span в 0% - 100% span, и преобразует 50% длительность импульса в ширину импульса. Вызовите std181toideal функция объекта с использованием этого синтаксиса:

[tr tf pw] = std181toideal(h)
где h - указатель на объект генератора шаблона, tr идеальный 0% - 100% времени нарастания, tf идеальный 0% - 100% времени спада, и pw - идеальная ширина импульса. Идеальные параметры сигнала, не возвращающегося к нулю (NRZ), показаны на этом рисунке.

Используйте значения свойств для спецификаций STD-181 IEEE.

computedcd

computedcd функция object вычисляет искажение DCD коэффициента заполнения импульса, заданное объектом h генератора шаблона.

DCD представляет отношение длительности импульса к длительности выключения импульса. Для импульса NRZ, на длительности является длительность, которую импульс тратит выше контура символа. Длительность выключения - это длительность, которую импульс проводит ниже нуля. Вызовите computedcd функция объекта с использованием этого синтаксиса:

dcd = computedcd(h)

Программа вычисляет DCD, заданные t R, t F T sym. Эта формула принимает, что уровень контура символа равен нулю.

T h = (A h- A l) *tRAl + (A h- A l ) *tFAl + PW +

Tl = (A h- A l) *tRAl + (A h- A l) *tFAl + PW -

DCD = ThTl

Где T h - длительность высокого сигнала, T l - длительность низкого сигнала, а DCD представляет отношение длительности высокого сигнала к низкому сигналу.

Примеры

свернуть все

Создайте commsrc.pattern объект. Отобразите значения свойств объектов по умолчанию.

h = commsrc.pattern;
disp(h)
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 100
           SymbolRate: 100
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0
             FallTime: 0
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

Сгенерируйте двоичный сигнал без возврата к нулю (NRZ), используя объект генератора шаблона. Просмотрите сигнал NRZ с дрожанием, приложенным к сигналу, и без него.

Инициализируйте системные параметры.

Fs = 10000; % Sample rate
Rs = 50; % Symbol rate
sps = Fs/Rs; % Number of samples per symbol
Trise = 1/(5*Rs); % Rise time of the NRZ signal
Tfall = 1/(5*Rs); % Fall time of the NRZ signal
frameLen = 100; % Number of symbols in a frame
spt = 200; % Number of samples per trace on eye diagram

Создайте объект генератора шаблона без назначенного компонента дрожания.

src = commsrc.pattern('SamplingFrequency',Fs, ...
'SamplesPerSymbol',sps,'RiseTime',Trise,'FallTime',Tfall)
src = 
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 200
           SymbolRate: 50
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0.0040
             FallTime: 0.0040
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

src.Jitter
ans = 
                 Type: 'Combined Jitter Generator'
    SamplingFrequency: 10000
         RandomJitter: 'off'
       PeriodicJitter: 'off'
          DiracJitter: 'off'

Сгенерируйте сигнал NRZ и просмотрите глазковую диаграмму сигнала.

message = generate(src,frameLen);
eyediagram(message,spt)

Figure Eye Diagram contains an axes. The axes with title Eye Diagram contains an object of type line. This object represents In-phase.

Добавьте межсимвольную интерференцию (ISI) к сигналу NRZ. ISI моделируется двумя функциями Дирака с равной амплитудой. Создайте комбинированный объект джиттера с дрожанием Dirac и присвойте его объекту генератора шаблона.

jitterSrc = commsrc.combinedjitter('DiracJitter','on', ...
    'DiracDelta',0.05/Rs*[-1 1]);
src.Jitter = jitterSrc
src = 
                 Type: 'Pattern Generator'
    SamplingFrequency: 10000
     SamplesPerSymbol: 200
           SymbolRate: 50
            PulseType: 'NRZ'
         OutputLevels: [-1 1]
             RiseTime: 0.0040
             FallTime: 0.0040
          DataPattern: 'PRBS7'
               Jitter: [1x1 commsrc.combinedjitter]

Сгенерируйте сигнал NRZ, который имеет добавленный к нему джиттер, и просмотрите глазковую диаграмму сигнала.

reset(src);
message = generate(src,frameLen);
eyediagram(message,spt)

Figure Eye Diagram contains an axes. The axes with title Eye Diagram contains an object of type line. This object represents In-phase.

Ссылки

[1] Стандарт IEEE для переходов, импульсов и связанных осциллограмм, STD-181-2011. Пискатавей, Нью-Джерси. 6 сентября 2011 года.

Введенный в R2008b