exponenta event banner

wlanConstellationDemap

Демаппинг созвездия

Описание

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS) сбрасывает полученные входные данные 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) указывает тип обратного отображения.

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS,phase) уменьшает количество символов по часовой стрелке до обратного отображения на число радиан, указанное в phase.

пример

y = wlanConstellationDemap(sym,noiseVarEst,numBPSCS,demapType,phase) определяет тип обратного отображения и поворот фазы.

Примеры

свернуть все

Выполните перепроверку 256QAM, как определено в 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. Поскольку типом по умолчанию является «мягкий», выходные данные представляют собой вектор мягких битов.

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

   416     1

Выполните обратное сопоставление 256QAM с помощью жесткой демодуляции. Демонтаж определен в IEEE ® 802.11™-2012 Раздел 18.3.5.8

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

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

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

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

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

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

Убедитесь, что восстановленные данные соответствуют исходным данным.

isequal(bits,demappedData)
ans = logical
   1

Преобразование BPSK и QBPSK для различных символов OFDM для поля VHT-SIG-A с использованием мягкой демодуляции. Демонтаж определен в IEEE ® 802.11ac™-2013 Раздел 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);

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

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

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

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

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

Создайте последовательность битов данных в виде массива четырех измерений с 416 кодированными битами на поднесущую на пространственный поток на блок перемежителя, четырьмя символами 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 на битах данных с поворотом на 0,2 радиана.

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

   416     4     2     2

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

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

Убедитесь, что восстановленные данные соответствуют исходным данным.

isequal(bits,demappedData)
ans = logical
   1

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

свернуть все

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

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

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

Пример: 0.7071

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

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

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

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

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

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

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

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

Пример: 4

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

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

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

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

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

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

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

свернуть все

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Представлен в R2017b