comm.Scrambler

Скремблируйте входной сигнал

Описание

comm.Scrambler object скремблирует входной сигнал вектор-столбца или скаляр.

Это схематические показы работа скремблера. Сумматоры управляют N по модулю, где N является значением, заданным свойством CalculationBase.

На каждом временном шаге вход заставляет содержимое регистров переключать последовательно. Используя свойство Polynomial, вы задаете на или от состояния для каждого переключателя в скремблере.

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

  1. Создайте comm.Scrambler объект и набор его свойства.

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

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

Создание

Описание

scrambler = comm.Scrambler создает Систему скремблера object™. Этот объект скремблирует входные данные при помощи линейного сдвигового регистра обратной связи, который вы задаете со свойством Polynomial.

пример

scrambler = comm.Scrambler(base,poly,cond) создает объект скремблера с набором свойств CalculationBase к base, Полиномиальный набор свойств к poly, и набор свойств InitialConditions к cond.

Пример: comm.Scrambler(8,'1 + z^-2 + z^-3 + z^-5 + z^-7',[0 3 2 2 5 1 7]) устанавливает основу вычисления на 8, и полином скремблера и начальные условия, как задано.

пример

scrambler = comm.Scrambler(___,Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение" и любого из предыдущих синтаксисов. Заключите каждое имя свойства в одинарные кавычки.

Пример: comm.Scrambler('CalculationBase',2)

Свойства

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

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

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

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

Область значений входных данных используется в скремблере для операций с модулем в виде неотрицательного целого числа. Ввод и вывод этого объекта является целыми числами от 0 к CalculationBase– 1 .

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

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

  • Вектор символов, такой как '1 + z^-6 + z^-8'. Для получения дополнительной информации об определении полиномов таким образом, смотрите Символьное представление Полиномов.

  • Целочисленный вектор, такой как [0 -6 -8], листинг коэффициентов скремблера в порядке убывающих степеней z-1, где p (z-1) = 1 + p1z-1 + p2z-2 +...

  • Бинарный вектор, такой как [1 0 0 0 0 0 1 0 1], листинг степеней z, которые появляются в полиноме, которые имеют коэффициент 1. В этом случае порядок полинома скремблирования является тем меньше, чем бинарная длина вектора.

Пример: '1 + z^-6 + z^-8', [0 -6 -8], и [1 0 0 0 0 0 1 0 1] все представляют этот полином:

p (z-1) = 1 + z-6 + z-8

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

  • 'Property' – Задайте начальные условия скремблера при помощи свойства InitialConditions.

  • 'Input port' – Задайте начальные условия скремблера при помощи дополнительного входного параметра, initcond, при вызове объекта.

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

Начальные условия скремблера указывают, когда симуляция запускается в виде неотрицательного целочисленного вектора. Длина InitialConditions должен равняться порядку свойства Polynomial. Векторные значения элемента должны быть целыми числами от 0 к CalculationBase1.

Зависимости

Это свойство доступно, когда InitialConditionsSource установлен в 'Property'.

Порт сброса состояния скремблера в виде false или true. Если ResetInputPort true, можно сбросить объект скремблера при помощи дополнительного входного параметра, сбросить при вызове объекта.

Зависимости

Это свойство доступно, когда InitialConditionsSource установлен в 'Property'.

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

Описание

пример

scrambledOut = scrambler(signal) скремблирует входной сигнал. Выход является совпадающим типом данных и длиной как входной вектор.

пример

scrambledOut = scrambler(signal,initcond) предоставляет дополнительному входу значения, задающие начальные условия линейного сдвигового регистра обратной связи.

Этот синтаксис применяется, когда вы устанавливаете свойство InitialConditionsSource объекта к 'Input port'.

scrambledOut = scrambler(signal,reset) обеспечивает дополнительный вход, указывающий, сбросить ли состояние скремблера.

Этот синтаксис применяется, когда вы устанавливаете InitialConditionsSource на 'Property' и ResetInputPort к true.

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

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

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

Пример: scrambledOut = scrambler([0 1 1 0 1])

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

Начальные условия регистра скремблера, когда симуляция запускается в виде неотрицательного целочисленного вектор-столбца. Длина initcond должен равняться порядку свойства Polynomial. Векторные значения элемента должны быть целыми числами от 0 к CalculationBase1.

Пример: scrambledOut = scrambler(signal,[0 1 1 0]) соответствует возможным начальным состояниям регистра для скремблера с полиномиальным порядком 4 и основа вычисления 2 или выше.

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

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

Пример: scrambledOut = scrambler(signal,0) скремблирует входной сигнал, не сбрасывая состояния скремблера.

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

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

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

Скремблированный выходной параметр, возвращенный как вектор-столбец с совпадающим типом данных и длиной как сигнал.

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

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

release(obj)

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

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

Примеры

свернуть все

Скремблируйте и дескремблируйте 8-ary данные с помощью comm.Scrambler и comm.Descrambler Система objects™ наличие основы вычисления 8.

Создайте объекты скремблера и дескремблера, задав основу вычисления, полином и начальные условия с помощью входных параметров. Полиномы скремблера и дескремблера заданы с различными но эквивалентными форматами данных.

N = 8;
scrambler = comm.Scrambler(N,'1 + z^-2 + z^-3 + z^-5 + z^-7', ...
    [0 3 2 2 5 1 7]);
descrambler = comm.Descrambler(N,[1 0 1 1 0 1 0 1], ...
    [0 3 2 2 5 1 7]);

Скремблируйте и дескремблируйте случайные целые числа. Отобразите исходные данные, скремблированные данные и дескремблированные последовательности данных.

data = randi([0 N-1],5,1);
scrData = scrambler(data);
deScrData = descrambler(scrData);
[data scrData deScrData]
ans = 5×3

     6     7     6
     7     5     7
     1     7     1
     7     0     7
     5     3     5

Проверьте, что дескремблированные данные совпадают с исходными данными.

isequal(data,deScrData)
ans = logical
   1

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

Создайте Системные объекты скремблера и дескремблера, имеющие основу вычисления 4. Установите InitialConditionsSource свойство к 'Input port' таким образом, можно установить начальные условия в качестве аргумента к объекту.

N = 4;
scrambler = comm.Scrambler(N,'1 + z^-3','InitialConditionsSource','Input port');
descrambler = comm.Descrambler(N,'1 + z^-3','InitialConditionsSource','Input port');

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

errVec = zeros(10,1);

Скремблируйте и дескремблируйте случайные целые числа при изменении начальных условий, initCond, каждый раз цикл выполняется. Используйте symerr функция, чтобы определить, приводят ли скремблирование и дескремблирование операций к ошибкам символа.

for k = 1:10
    initCond = randperm(3)';
    data = randi([0 N-1],5,1);
    scrData = scrambler(data,initCond);
    deScrData = descrambler(scrData,initCond);
    errVec(k) = symerr(data,deScrData);
end

Исследуйте errVec проверять, что выход от дескремблера совпадает с исходными данными.

errVec
errVec = 10×1

     0
     0
     0
     0
     0
     0
     0
     0
     0
     0

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

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

Объекты

Блоки

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