wlanBCCDecode

Convolutionally декодируют входные данные

Синтаксис

y = wlanBCCDecode(sym,rate)
y = wlanBCCDecode(sym,rate,decType)
y = wlanBCCDecode(sym,rate,tDepth)
y = wlanBCCDecode(sym,rate,decType,tDepth)

Описание

пример

y = wlanBCCDecode(sym,rate) convolutionally декодирует вход sym с помощью бинарного сверточного кода (BCC) в заданном rate. BCC задан в IEEE® 802.11™-2012 Sections 18.3.5.6 и 20.3.11.6.

y = wlanBCCDecode(sym,rate,decType) задает тип декодирования Viterbi, декодирующего алгоритм.

пример

y = wlanBCCDecode(sym,rate,tDepth) задает traceback глубину Viterbi, декодирующего алгоритм.

пример

y = wlanBCCDecode(sym,rate,decType,tDepth) задает тип декодирования и traceback глубину. decType и tDepth могут быть помещены в любой порядок после rate.

Примеры

свернуть все

Декодируйте два закодированных потока мягких битов при помощи BCC уровня 1/2.

Создайте последовательность битов данных.

dataBits = randi([0 1],100,1,'int8');

Проанализируйте биты данных, как задано в IEEE® 802.11™-2012 Section 20.3.11.5 и IEEE® 802.11ac™-2013 Section 22.3.10.5.2. numES является количеством закодированных потоков.

numES = 2;
parsedData = reshape(dataBits,numES,[]).';

BCC - кодирует проанализированную последовательность.

encodedData = wlanBCCEncode(parsedData,'1/2');

Преобразуйте закодированные биты в мягкие биты (т.е. демодуляция LLR).

demodData = double(1-2*encodedData);

Декодируйте BCC демодулируемые данные.

decodedData = wlanBCCDecode(demodData,'1/2');

Deparse декодируемые данные.

deparsedData = reshape(decodedData.',[],1);

Проверьте, что декодируемые данные совпадают с исходными данными.

isequal(dataBits,deparsedData)
ans = logical
   1

Декодируйте последовательность мягких битов при помощи BCC уровня 3/4 и traceback глубина 60.

Создайте последовательность битов данных.

dataBits = randi([0 1],300,1);

BCC - кодирует последовательность битов.

encodedData = wlanBCCEncode(dataBits,3/4);

Преобразуйте закодированные биты в мягкие биты (т.е. демодуляция LLR).

demodData = 1-2*encodedData;

Декодируйте BCC демодулируемые биты.

tDepth = 60;
decodedData = wlanBCCDecode(demodData,3/4,tDepth);

Проверьте, что декодируемые данные совпадают с исходными данными.

isequal(dataBits,decodedData)
ans = logical
   1

Декодируйте последовательность твердых битов при помощи BCC уровня 3/4 и traceback глубина 45.

Создайте последовательность битов данных.

dataBits = randi([0 1],300,1,'int8');

BCC - кодирует последовательность битов.

encodedData = wlanBCCEncode(dataBits,'2/3');

Выполните трудное декодирование BCC на закодированных битах. Задайте traceback глубину 45.

tDepth = 45;
decodedBits = wlanBCCDecode(encodedData,'2/3','hard',tDepth);

Проверьте, что декодируемые биты совпадают с исходными битами.

isequal(dataBits,decodedBits)
ans = logical
   1

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

свернуть все

Введите последовательность символов, чтобы декодировать, заданный как числовая матрица целых чисел. Количество столбцов должно быть количеством закодированных потоков. Каждый поток закодирован отдельно. Когда decType является 'soft' или не заданный, sym должен быть действительной матрицей с логарифмическими отношениями правдоподобия. Положительные значения представляют логический ноль, и отрицательные величины представляют логическую единицу.

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

Уровень кода бинарного сверточного кода (BCC), заданного как скаляр, символьный массив или скаляр строки. rate должен быть числовым значением, равным 1/2, 2/3, 3/4, или 5/6 или вектор символов, или представить в виде строки скаляр, равный '1/2', '2/3', '3/4' или '5/6'.

Пример: '3/4'

Типы данных: double | char | string

Декодирование типа бинарного сверточного кода (BCC), заданного как вектор символов или скаляр строки. Это может быть 'hard' для твердого алгоритма входа Viterbi или 'soft' для мягкого алгоритма входа Viterbi без любого квантования.

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

Глубина Traceback Viterbi, декодирующего алгоритм, заданный как положительное целое число, меньше чем или равное количеству вводимых символов в sym.

Пример: y = wlanBCCDecode(sym,'1/2','hard',50)

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

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

свернуть все

Двоичный файл convolutionally декодировал выходной параметр, возвращенный как бинарная матрица целых чисел. Количество строк y равно количеству строк входа sym, умноженного на rate, округленный к следующему целому числу. Количество столбцов y равно количеству столбцов sym.

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

|

Введенный в R2017b