коммуникация. Дескремблер

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

Описание

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

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

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

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

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

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

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

Создание

Синтаксис

descrambler = comm.Descrambler
descrambler = comm.Descrambler(base,poly,cond)
descrambler = comm.Descrambler(___,Name,Value)

Описание

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

пример

descrambler = comm.Descrambler(base,poly,cond) создает объект дескремблера с набором свойств CalculationBase к base, Полиномиальным набором свойств к poly и набором свойств InitialConditions к 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 Используя Системные объекты (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

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

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

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

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

Зависимости

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

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

Зависимости

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

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

Синтаксис

descrambledOut = descrambler(signal)
descrambledOut = descrambler(signal,initcond)
descrambledOut = descrambler(signal,reset)

Описание

пример

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

пример

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: descrambledOut = descrambler(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

Для просмотра документации необходимо авторизоваться на сайте