comm.Scrambler

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

Описание

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

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

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

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

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

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

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

Создание

Описание

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 Используя Системные объекты (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