exponenta event banner

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

Входной сигнал дескремблирования

Описание

Объект comm.Descrambler дескремблирует входной сигнал скалярного вектора или вектора столбца. Объект comm.Descrambler является обратным по отношению к comm.Scrambler объект. Если вы используете comm.Scrambler объект в передатчике, затем используется объект comm.Descrambler в соответствующем приемнике.

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

На каждом временном шаге ввод вызывает последовательное смещение содержимого регистров. С помощью свойства «Полином» можно задать состояние включения или выключения для каждого переключателя дескремблера. Чтобы сделать comm.Descrambler объект изменяет действие comm.Scrambler используйте одни и те же параметры свойств в обоих объектах. Если между скремблером и дескремблером нет задержки сигнала, то InitityConditions в двух объектах должен быть одинаковым.

Для дескремблирования входного сигнала:

  1. Создать comm.Descrambler и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

descrambler = comm.Descrambler создает системный object™ дескремблера. Этот объект дескремблирует входные данные с помощью регистра сдвига с линейной обратной связью, заданного свойством Полином.

пример

descrambler = comm.Descrambler(base,poly,cond) создает объект дескремблера со свойством CalculationBase, имеющим значение base, свойство Polynomial имеет значение polyи свойство InitityConditions имеет значение cond.

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

пример

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

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

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

Типы данных: 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' - Укажите начальные условия дескремблера с помощью свойства InitityConditions.

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

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

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

Зависимости

Это свойство доступно, если для InitityConditureSource установлено значение 'Property'.

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

Зависимости

Это свойство доступно, если для InitityConditureSource установлено значение 'Property'.

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

Описание

пример

descrambledOut = descrambler(signal) дескремблирует входной сигнал. Выходные данные имеют тот же тип данных и ту же длину, что и входной вектор.

пример

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

Этот синтаксис применяется при установке для свойства InitityConditureSource объекта значения 'Input port'.

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

Этот синтаксис применяется при установке для свойства InitityConditureSource объекта значения 'Property' и ResetInputPort to true.

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

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

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

Пример: descrambledOut = descrambler([0 1 1 0 1 0])

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Скремблировать и дескремблировать 8-кратные данные с помощью 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