wlanConstellationDemap

Описание

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS) demaps полученный вход sym использование мягкого решения аппроксимирует метод LLR для конкретного количества закодированных битов на поднесущую на пространственный поток numBPSCS. Полученные символы должны быть сгенерированы с одной из этих модуляций:

  • BPSK, QPSK, 16QAM, или 64QAM, согласно IEEE® 802.11™-2012, разделяет 18.3.5.8

  • 256QAM, согласно IEEE 802.11ac™-2012, раздел 22.3.10.9.1

  • 1024QAM, согласно IEEE 802.11-16/0922r2

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS,demapType) задает тип demapping.

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS,phase) derotates символы по часовой стрелке прежде demapping количеством радианов задан в phase.

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS,demapType,phase) задает тип demapping и вращение фазы.

Примеры

свернуть все

Выполните 256QAM demapping, как задано в IEEE® 802.11ac™-2013, Раздел 22.3.10.9.1.

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

bits = randi([0 1],416,1,'int8');

Выполните отображение созвездия на битах данных при помощи 256QAM модуляция. Размер возвращенного выходного параметра равняется размеру входной последовательности, разделенной на восемь.

numBPSCS = 8;
mappedData = wlanConstellationMap(bits,numBPSCS);
size(mappedData)
ans = 1×2

    52     1

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

noiseVar = 0;
demappedData = wlanConstellationDemap(mappedData,noiseVar,numBPSCS);
size(demappedData)
ans = 1×2

   416     1

Выполните 256QAM demapping при помощи трудной демодуляции. demapping задан в IEEE® 802.11™-2012 Section 18.3.5.8

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

 bits = randi([0 1],416,1);

Выполните отображение созвездия на битах данных при помощи 256QAM созвездие.

numBPSCS = 8;
mappedData = wlanConstellationMap(bits,numBPSCS);

Выполните твердое 256QAM созвездие demapping. Поскольку это - твердый demapping, предполагаемое шумовое отклонение проигнорировано.

noiseVar = 0;
demapType = 'hard';
demappedData = wlanConstellationDemap(mappedData,noiseVar,numBPSCS,demapType);

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

isequal(bits,demappedData)
ans = logical
   1

BPSK и QBPSK demapping для различных символов OFDM для поля VHT-SIG-A при помощи мягкой демодуляции. demapping задан в IEEE® 802.11ac™-2013 Section 22.3.8.3.3

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

 bits = randi([0 1],48,2,'int8');

Выполните отображение созвездия на битах данных. Задайте размер вращения созвездия как номер в столбцах входной последовательности. Первый столбец сопоставлен с модуляцией BPSK. Второй столбец модулируется с модуляцией QBPSK.

numBPSCS = 1;
phase = [0 pi/2];
mappedData = wlanConstellationMap(bits,numBPSCS,phase);

Выполните созвездие demapping с предполагаемым равным нулю шумом отклонения (никакой добавленный шум). К derotate созвездие задайте ту же фазу как в функции отображения. Выход является вектором мягких битов, готовых быть входом сверточного декодера.

noiseVar = 0;
demappedData = wlanConstellationDemap(mappedData,noiseVar,numBPSCS,phase);

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

demappedBits = int8((demappedData<=0));
isequal(bits,demappedBits)
ans = logical
   1

Выполните QBPSK demapping на четырехмерном массиве при помощи трудной демодуляции.

Создайте последовательность битов данных как массив четырех размерностей, с 416 закодированными битами на поднесущую на пространственный поток на блок interleaver, четыре символа OFDM, два пространственных потока и два сегмента.

numCBPSSI = 416; 
numSym = 4;
numSS = 2;
numSeg = 2; 
bits = randi([0 1],numCBPSSI,numSym,numSS,numSeg);
size(bits)
ans = 1×4

   416     4     2     2

Выполните отображение созвездия QBPSK на битах данных с вращением π2 радианы.

numBPSCS = 1;
phase = pi/2;
mappedData = wlanConstellationMap(bits,numBPSCS,phase);
size(mappedData)
ans = 1×4

   416     4     2     2

Выполните трудное созвездие QBPSK demapping. К de-rotate созвездие задайте ту же фазу как в функции отображения. Поскольку это - твердый demapping, предполагаемое шумовое отклонение проигнорировано.

noiseVar = 0;
demapType = 'hard';
demappedData = wlanConstellationDemap(mappedData,noiseVar,numBPSCS,demapType);

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

isequal(bits,demappedData)
ans = logical
   1

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

свернуть все

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

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

Шумовая оценка отклонения, заданная как неотрицательный скаляр. Когда тип demapping установлен в 'hard', шумовая оценка отклонения не требуется и поэтому проигнорирована.

Пример: 0.7071

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

Количество закодированных битов на поднесущую на пространственный поток, заданный как log2 (M), где M является порядком модуляции. Поэтому numBPSCS должен равняться:

  • 1 для модуляции BPSK

  • 2 для модуляции QPSK

  • 4 для 16QAM модуляция

  • 6 для 64QAM модуляция

  • 8 для 256QAM модуляция

  • 10 для 1024QAM модуляция

Пример 4

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

Тип Demapping, заданный как вектор символов или скаляр строки. Это может быть 'hard' для трудного решения demapping или 'soft' поскольку мягкое решение аппроксимирует метод LLR.

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

Вращение созвездия в радианах, заданных как скаляр, вектор или многомерный массив. Размер phase должно быть совместимо с размером входа sym. phase и sym имейте совместимые размеры, если для каждой соответствующей размерности размеры размерности или равны или один из них, 1. Когда одна из размерностей sym равно 1, и соответствующая размерность phase больше, чем 1, затем выходные размерности имеют тот же размер как размерности phase.

Пример: pi*(0:size(bits,1)/numBPSCS-1).'/2;

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

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

свернуть все

Символы Demapped, возвращенные как числовой вектор, матрица или многомерный массив целых чисел. y имеет тот же размер как sym за исключением количества строк, которое равно количеству строк sym, умноженный на numBPSCS.

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

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

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

Введенный в R2017b