wlanHTDataRecover

Восстановите данные HT

Описание

пример

recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg) возвращает восстановленный HT-поле-данных []1, recData, для входного сигнала rxSig. Задайте оценку канала для занятых поднесущих, chEst, шумовая оценка отклонения, noiseVarEst, и объект настройки формата HT-Mixed, cfg.

пример

recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg,Name,Value) задает опции алгоритма при помощи одного или нескольких аргументов пары "имя-значение". Когда вы не задаете пару "имя-значение", функция использует значение по умолчанию.

[recData,eqSym] = wlanHTDataRecover(___) также возвращает компенсируемые символы, eqSym, использование аргументов от предыдущих синтаксисов.

[recData,eqSym,cpe] = wlanHTDataRecover(___) также возвращает общую ошибку фазы, cpe.

Примеры

свернуть все

Создайте объект настройки HT, имеющий длину PSDU 1 024 байтов. Сгенерируйте последовательность HTData от двоичной последовательности, длина которой является восемь раз длиной PSDU.

cfgHT = wlanHTConfig('PSDULength',1024);
txBits = randi([0 1],8*cfgHT.PSDULength,1);
txHTSig = wlanHTData(txBits,cfgHT);

Передайте сигнал через канал AWGN с отношением сигнал-шум 10 дБ.

rxHTSig = awgn(txHTSig,10);

Задайте оценку канала. Поскольку исчезновение не было введено, вектор из единиц является совершенной оценкой. Для пропускной способности на 20 МГц существует 52 поднесущие данных и 4 экспериментальных поднесущие в поле HT-SIG.

chEst = ones(56,1);

Восстановите биты данных и определите количество битовых ошибок. Отобразите количество битовых ошибок и связанной частоты ошибок по битам.

rxBits = wlanHTDataRecover(rxHTSig,chEst,0.1,cfgHT);
[numerr,ber] = biterr(rxBits,txBits)
numerr = 0
ber = 0

Создайте объект настройки HT с пропускной способностью канала на 40 МГц и длиной PSDU 1 024 байтов. Сгенерируйте соответствующую последовательность HT-данных.

cfg = wlanHTConfig('ChannelBandwidth','CBW40','PSDULength',1024);
txBits = randi([0 1],8*cfg.PSDULength,1);
txSig = wlanHTData(txBits,cfg);

Передайте сигнал через канал аддитивного белого Гауссова шума (AWGN) с отношением сигнал-шум 7 дБ.

rxSig = awgn(txSig,7);

Восстановите данные и определите количество битовых ошибок, задав обеспечивающий нуль алгоритм. Поскольку нет никакого исчезновения, установите оценку канала на вектор из единиц, длина которых равна количеству занятых поднесущих.

chEst = ones(114,1);
noiseVarEst =  0.2;
recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg,'EqualizationMethod','ZF');
[numerr,ber] = biterr(recData,txBits);

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

свернуть все

Полученные HT-данные сигнализируют в виде NS-by-NR о векторе или матрице. NS является количеством выборок, и NR является количеством, получают антенны.

Типы данных: double
Поддержка комплексного числа: Да

Оценка канала в виде NST-by-NSTS-by-NR массив. NST является количеством занятых поднесущих, NSTS является количеством пространственно-временных потоков, и NR является количеством, получают антенны.

Типы данных: double
Поддержка комплексного числа: Да

Шумовая оценка отклонения в виде неотрицательного скаляра.

Пример: 0.7071

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

Настройка формата в виде wlanHTConfig объект.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'PilotPhaseTracking','None' отключает отслеживание экспериментального этапа.

Смещение выборки символа OFDM, представленное как часть длины циклического префикса (CP) в виде скаляра в интервале [0, 1]. Значение, которое вы задаете, указывает на местоположение запуска для демодуляции OFDM относительно начала циклического префикса. Значение 0 представляет запуск циклического префикса и значения 1 представляет конец циклического префикса.

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

Метод эквализации в виде одного из этих значений:

  • 'MMSE' — Получатель использует минимальный эквалайзер среднеквадратической ошибки.

  • 'ZF' — Получатель использует обеспечивающий нуль эквалайзер.

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

Отслеживание экспериментального этапа в виде одного из этих значений:

  • 'PreEQ' — Включите отслеживание экспериментального этапа, которое выполняется перед любой операцией эквализации.

  • 'None' — Отключите отслеживание экспериментального этапа.

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

LDPC декодирование алгоритма в виде одного из этих значений.

Примечание

Когда вы задаете этот вход как 'norm-min-sum' или 'offset-min-sum', wlanHTDataRecover функция устанавливает входные значения отношения логарифмической правдоподобности (LLR), которые больше 1e10 или меньше, чем -1e10 к 1e10 и -1e10, соответственно. Функция затем использует эти значения при выполнении LDPC декодирование алгоритма.

Зависимости

Чтобы включить этот аргумент, задайте ChannelCoding свойство cfg введите как 'LDPC'.

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

Масштабный коэффициент за нормированную сумму min LDPC, декодирующий в виде скаляра в интервале (0, 1].

Зависимости

Чтобы включить этот аргумент, задайте 'LDPCDecodingMethod' аргумент пары "имя-значение" как 'norm-min-sum'.

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

Возместите за сумму min смещения LDPC, декодирующий в виде неотрицательного скаляра.

Зависимости

Чтобы включить этот аргумент, задайте 'LDPCDecodingMethod' аргумент пары "имя-значение" как 'offset-min-sum'.

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

Максимальное количество LDPC декодирование итераций в виде положительного целого числа.

Зависимости

Чтобы включить этот аргумент, установите ChannelCoding свойство cfg введите к 'LDPC'.

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

Включите раннее завершение LDPC, декодирующего в виде 1 TRUE) или 0 ложь).

  • Когда вы устанавливаете это значение к 0 ложь), декодирование LDPC завершает количество итераций, заданных 'MaximumLDPCIterationCount' независимо от состояния проверки четности.

  • Когда вы устанавливаете это значение к 1 TRUE), декодирование LDPC завершает работу, когда всем проверкам четности удовлетворяют.

Зависимости

Чтобы включить этот аргумент, задайте ChannelCoding свойство cfg введите как 'LDPC'.

Типы данных: логический

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

свернуть все

Восстановленные данные о двоичном выходе, возвращенные как вектор-столбец длины 8×NPSDU, где N PSDU является длиной PSDU в байтах. Смотрите wlanHTConfig для PSDULength детали.

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

Компенсируемые символы, возвращенные как SD N NSYM NSS массивом. SD N является количеством поднесущих данных, N, SYM является количеством символов OFDM в HT-поле-данных и N, SS является количеством пространственных потоков.

Типы данных: double
Поддержка комплексного числа: Да

Общая ошибка фазы в радианах, возвращенных как вектор-столбец, имеющий длину N SYM. N SYM является количеством символов OFDM в HT-поле-данных.

Больше о

свернуть все

HT-поле-данных

Высокое поле данных пропускной способности (HT-данные) следует за последним HT-LTF пакета HT-mixed.

Высокое поле данных пропускной способности используется, чтобы передать один или несколько кадров от слоя MAC и состоит из четырех подполей.

  • Поле Service — Содержит 16 нулей, чтобы инициализировать скремблер данных.

  • PSDU — Поле переменной длины, содержащее Модуль эксплуатационных данных PLCP (PSDU). В 802.11™, PSDU может состоять из агрегата нескольких модулей эксплуатационных данных MAC.

  • Хвост — биты Хвоста, требуемые отключать сверточный код. Поле использует шесть нулей в каждом потоке кодирования.

  • Заполните Биты — поле Переменной длины, требуемое гарантировать, что HT-поле-данных состоит из целого числа символов.

HT-Mixed

Смешанные устройства формата высокой пропускной способности (HT-mixed) поддерживают смешанный режим, в котором заголовок PLCP совместим с режимами HT и Non-HT.

Алгоритмы

свернуть все

wlanHTDataRecover функционируйте поддерживает эти четыре LDPC декодирование алгоритмов.

Декодирование распространения веры

wlanHTDataRecover функционируйте реализует алгоритм BP на основе алгоритма декодирования, представленного в [2]. Для переданной LDPC-закодированной кодовой комбинации c=(c0,c1,,cn1), вход к декодеру LDPC является LLR, данным

L(ci)=log(Pr(ci=0|channel output for ci)Pr(ci=0|канал выход для ci)).

В каждой итерации функция обновляет ключевые компоненты алгоритма на основе этих уравнений:

L(rji)=2atanh(iVj\{i}tanh(12L(qij))),

L(qij)=L(ci)+j'Ci\{j}L(rji), инициализированный как L(qij)=L(ci) перед первой итерацией, и

L(Qi)=L(ci)+jCiL(rji).

В конце каждой итерации, L(Qi) обновленная оценка значения LLR для переданного бита, ci. Значение L(Qi) мягкое решение выход для ci. Если L(Qi) отрицательно, трудное решение выход для ci 1. В противном случае выход 0.

Индексируйте наборы Ci\{j} и Vj\{i} основаны на PCM, таким образом что наборы Ci и Vj соответствуйте всем ненулевым элементам в столбце i и строка j PCM, соответственно.

Этот рисунок демонстрирует, как вычислить эти наборы индекса для PCM H для случая i = 5 и j = 3.

Чтобы избежать бесконечных чисел в уравнениях алгоритма, atanh (1) и atanh (–1) установлены в 19,07 и –19.07, соответственно. Из-за конечной точности, MATLAB® возвращается 1 для tanh (19.07) и –1 для tanh (–19.07).

Когда вы задаете 'EarlyTermination' аргумент пары "имя-значение" как 0 ложь), декодирование завершает работу после количества итераций, заданных 'MaximumLDPCIterationCount' аргумент пары "имя-значение". Когда вы задаете 'EarlyTermination' аргумент пары "имя-значение" как 1 TRUE), декодирование завершает работу, когда всем проверкам четности удовлетворяют (HcT=0) или после того, как количество итераций задано 'MaximumLDPCIterationCount' аргумент пары "имя-значение".

Многоуровневое декодирование распространения веры

wlanHTDataRecover функционируйте реализует многоуровневый алгоритм BP на основе алгоритма декодирования, представленного в Разделе II.A [3]. Цикл декодирования выполняет итерации по подмножествам строк (слои) PCM.

Для каждой строки, m, в слое и каждом битном индексе, j, реализация обновляет ключевые компоненты алгоритма на основе этих уравнений.

(1) L(qmj)=L(qj)Rmj

(2) Ψ(x)=log(|tanh(x/2)|)

(3) Amj=nN(m)\{j}Ψ(L(qmn))

(4) smj=nN(m)\{j}sgn(L(qmn))

(5) Rmj=smjΨ(Amj)

(6) L(qj)=L(qmj)+Rmj

Для каждого слоя уравнение декодирования (6) работает над объединенным входом, полученным из текущих входных параметров LLR, L(qmj), и предыдущие обновления слоя, Rmj.

Поскольку многоуровневый алгоритм BP обновляет только подмножество узлов в слое, этот алгоритм быстрее, чем алгоритм BP. Чтобы достигнуть того же коэффициента ошибок, как достигнуто с декодированием BP, используйте половину количества декодирования итераций при использовании многоуровневого алгоритма BP.

Нормированное декодирование суммы Min

wlanHTDataRecover функционируйте реализует нормированный алгоритм декодирования суммы min следующим многоуровневый алгоритм BP уравнением (3) замененный

Amj=minnN(m)\{j}(α|L(qmn)|),

где α является масштабным коэффициентом, заданным 'MinSumScalingFactor' аргумент пары "имя-значение". Это уравнение является адаптацией уравнения (4) представленный в [4].

Возместите декодирование суммы Min

wlanHTDataRecover функционируйте реализует алгоритм декодирования суммы min смещения следующим многоуровневый алгоритм BP уравнением (3) замененный

Amj=max(minnN(m)\{j}(|L(qmn)|β), 0),

где β является смещением, заданным 'MinSumOffset' аргумент пары "имя-значение". Это уравнение является адаптацией уравнения (5) представленный в [4].

Ссылки

[1] Станд. IEEE 802.11-2016 (Версия Станд. IEEE 802.11-2012). “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования”. Стандарт IEEE для Информационных технологий — Телекоммуникации и обмен информацией между системами. Локальные сети и городские компьютерные сети — Конкретные требования.

[2] Gallager, Роберт Г. Имеющие малую плотность коды с проверкой четности. Кембридж, MA: нажатие MIT, 1963.

[3] Hocevar, D.E. "Уменьшаемая Архитектура Декодера Сложности через Многоуровневое Декодирование Кодов LDPC". В Семинаре IEEE по Системам Обработки сигналов, 2004. ГЛОТКИ 2004., 107-12. Остин, Техас, США: IEEE, 2004. https://doi.org/10.1109/SIPS.2004.1363033.

[4] Джингу Чен, R.M. Крем для загара, К. Джонс и Ян Ли. "Улучшенные алгоритмы декодирования суммы Min для неправильных кодов LDPC". В продолжениях. Международный симпозиум по теории информации, 2005. ISIT 2005., 449-53, 2005. https://doi.org/10.1109/ISIT.2005.1523374.

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

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

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

|

Введенный в R2015b


[1]  IEEE® Std 802.11-2012 Adapted и переизданный с разрешением от IEEE. Авторское право IEEE 2012. Все права защищены.