comm.Descrambler

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

Описание

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

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

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

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

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

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

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

Создание

Описание

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 к 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'.

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

Описание

пример

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