comm.MultiplexedInterleaver

Переставьте символы с помощью набора сдвиговых регистров с заданными задержками

Описание

comm.MultiplexedInterleaver Система object™ переставляет символы во входной последовательности при помощи набора сдвиговых регистров, каждого с его собственным значением задержки. Для получения дополнительной информации смотрите Перемежение.

Переставлять символы во входной последовательности:

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

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

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

Создание

Описание

muxinterleaver = comm.MultiplexedInterleaver создает мультиплексированный interleaver Системный объект значения по умолчанию. Этот Системный объект переставляет символы во входной последовательности при помощи набора сдвиговых регистров с заданными задержками. muxinterleaver Системный объект состоит из регистров N, каждого с заданной задержкой. С каждым новым вводимым символом Системный объект переключает коммутатор на новый регистр и переключает новый символ на нижний регистр при переключении самого старого символа на верхний регистр в том регистре. Когда коммутатор достигает N th регистр на следующий новый вход, коммутатор возвращается к первому регистру.

пример

muxinterleaver = comm.MultiplexedInterleaver(Name,Value) устанавливает Свойства при помощи одних или нескольких аргументов name-value. Например, 'InitialConditions',1 устанавливает начальные условия сдвиговых регистров к 1.

Свойства

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

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

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

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

Interleaver задерживаются в виде вектор-столбца целых чисел. Значения в этом векторе задают длины сдвиговых регистров.

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

Начальные условия сдвиговых регистров в виде одной из этих опций.

  • Числовой скаляр — значением по умолчанию является 0. Заданный скаляр применяется ко всем сдвиговым регистрам.

  • Вектор-столбец — длина этого вектора должна быть равна длине значения свойства Задержки. i th начальное условие применяется к i th сдвиговый регистр.

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

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

Описание

intrlvseq = muxinterleaver(inputseq) переставляет входную последовательность символов, inputseq, при помощи набора сдвиговых регистров с задержками, заданными свойством Delay. Системный объект возвращает чередованную последовательность, intrlvseq.

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

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

Последовательность символов в виде вектор-столбца.

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте мультиплексированный interleaver Системный объект, задав задержку interleaver.

interleaver = comm.MultiplexedInterleaver('Delay',[1; 0; 2; 1]);

Создайте мультиплексированный deinterleaver Системный объект, задав задержку interleaver.

deinterleaver = comm.MultiplexedDeinterleaver('Delay',[1; 0; 2; 1]);

Сгенерируйте случайную последовательность данных. Передайте последовательность данных через interleaver и затем deinterleaver.

[dataIn,dataOut] = deal([]); % Initialize data arrays

for index = 1:50
    data = randi([0 7],20,1);
    intrlvSequence = interleaver(data);
    deintrlvSequence = deinterleaver(intrlvSequence);
    % Save original data and deinterleaved data
    dataIn = cat(1,dataIn,data);
    dataOut = cat(1,dataOut,deintrlvSequence);
end

Определите задержку через interleaver и deinterleaver.

delay = finddelay(dataIn,dataOut)
delay = 8

После составления задержки подтвердите, что исходные и устраненные чередование последовательности идентичны.

isequal(dataIn(1:end-delay),dataOut(delay+1:end))
ans = logical
   1

Copyright 2012 The MathWorks, Inc.

Ссылки

[1] Heegard, Крис и Стивен Б. Викер. Турбокодирование. Бостон: Kluwer академические издатели, 1999.

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

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