коммуникация. APPDecoder

Декодируйте сверточный код с помощью по опыту метод вероятности

Описание

Объект APPDecoder выполняет декодирование по опыту вероятности (APP) сверточного кода.

Выполнять декодирование по опыту вероятности (APP) сверточного кода:

  1. Задайте и настройте ваш по опыту объект декодера вероятности. Смотрите Конструкцию.

  2. Вызовите step, чтобы выполнить декодирование APP согласно свойствам comm.APPDecoder. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

H = comm.APPDecoder создает Системный объект декодера по опыту вероятности (APP), H, который декодирует сверточный код с помощью метода APP.

H = comm.APPDecoder(Name,Value) создает объект декодера APP, H, с каждым заданным набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

H = comm.APPDecoder(TRELLIS,Name,Value) создает объект декодера APP, H, с набором свойств TrellisStructure к TRELLIS и другим заданным набором свойств к заданным значениям.

Свойства

TrellisStructure

Структура решетки сверточного кода

Задайте решетку как структуру MATLAB®, которая содержит описание решетки сверточного кода. Значением по умолчанию является результат poly2trellis(7, [171 133], 171). Используйте функцию istrellis, чтобы проверять, является ли структура допустимой структурой решетки.

TerminationMethod

Метод завершения закодированного кадра

Задайте, как закодированный кадр отключен как один из Truncated | Terminated. Значением по умолчанию является Truncated. Когда вы устанавливаете это свойство на Truncated, объект принимает, что остановки энкодера после кодирования последнего символа во входе структурируют. Когда вы устанавливаете это свойство на Terminated, объект принимает, что энкодер обеспечивает решетку, чтобы закончить каждый кадр во все-нулевом состоянии путем кодирования дополнительных символов. Если вы используете Системный объект comm.ConvolutionalEncoder, чтобы сгенерировать закодированный кадр, значения TerminationMethod и объектов энкодера и декодера должны соответствовать.

Algorithm

Декодирование алгоритма

Задайте алгоритм декодирования, который объект использует в качестве одного из True APP | Max* | Max. Значением по умолчанию является Max*. Когда вы устанавливаете это свойство на True APP, объектные реализации, верные по опыту декодирование вероятности. Когда вы устанавливаете свойство на любое другое значение, объект использует приближения, чтобы увеличить скорость вычислений.

NumScalingBits

Количество масштабирующихся битов

Задайте количество битов использование декодера, чтобы масштабировать входные данные, чтобы не терять точность во время вычислений. Значением по умолчанию является 3. Декодер умножает вход на 2NumScalingBits и делит предварительный вывод на тот же фактор. Это свойство должно быть скалярным целым числом между 0 и 8. Это свойство применяется, когда вы устанавливаете свойство Algorithm на Max*.

CodedBitLLROutputPort

Включите закодированному битному LLR вывод

Установите это свойство на false отключать второй вывод метода шага декодирования. Значением по умолчанию является true.

Методы

сбросСбросьте состояния объекта декодера APP
шагДекодируйте сверточный код с помощью по опыту метод вероятности
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

Этот пример показывает, как использовать декодер APP на модулируемом потоке битов convolutionally закодированных 8 PSK, переданном через канал AWGN.

Создайте сверточный энкодер, модулятор PSK и Системные объекты канала AWGN.

noiseVar = 2e-1;
frameLength = 300;
hConEnc = comm.ConvolutionalEncoder('TerminationMethod','Truncated');
hMod = comm.PSKModulator('BitInput',true,'PhaseOffset',0);
hChan = comm.AWGNChannel('NoiseMethod','Variance', ...
    'Variance',noiseVar);

Создайте сверточный декодер, демодулятор PSK и Системные объекты коэффициента ошибок.

hAPPDec = comm.APPDecoder(...
    'TrellisStructure',poly2trellis(7,[171 133]), ...
    'Algorithm','True APP','CodedBitLLROutputPort',false);
hDemod = comm.PSKDemodulator('BitOutput',true,'PhaseOffset',0, ...
    'DecisionMethod','Approximate log-likelihood ratio', ...
    'Variance',noiseVar);     
hError = comm.ErrorRate;

Передайте модулируемый поток битов convolutionally закодированных 8 PSK через канал AWGN. Демодулируйте полученный сигнал с помощью мягкого решения. Декодируйте демодулируемый сигнал с помощью декодера APP.

for counter = 1:5
     data = randi([0 1],frameLength,1);
     encodedData = step(hConEnc,data);
     modSignal = step(hMod,encodedData);
     receivedSignal = step(hChan,modSignal);
     demodSignal = step(hDemod,receivedSignal);
     % The APP decoder assumes a polarization of the soft inputs that is
     % inverse to that of the demodulator soft outputs. Change the sign of
     % demodulated signal.
     receivedSoftBits = step(hAPPDec,zeros(frameLength,1),-demodSignal);
     % Convert from soft-decision to hard-decision.
     receivedBits = double(receivedSoftBits > 0);
     % Count errors
     errorStats = step(hError,data,receivedBits);
end

Отобразите информацию о коэффициенте ошибок.

fprintf('Error rate = %f\nNumber of errors = %d\n', ...
     errorStats(1), errorStats(2))
Error rate = 0.000000
Number of errors = 0

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока APP Decoder. Свойства объектов соответствуют параметрам блоков.

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

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