wlanDMGDataBitRecover

Восстановите биты данных с поля данных DMG

Синтаксис

DataBits = wlanDMGDataBitRecover(rxDataSig,noiseVarEst,cfg)
DataBits = wlanDMGDataBitRecover(rxDataSig,noiseVarEst,csi,cfg)
DataBits = wlanDMGDataBitRecover(___,Name,Value)

Описание

пример

DataBits = wlanDMGDataBitRecover(rxDataSig,noiseVarEst,cfg) восстанавливает биты данных, учитывая поле данных от передачи DMG (OFDM, одно поставщик услуг или управление PHY), шумовая оценка отклонения и объект настройки DMG.

пример

DataBits = wlanDMGDataBitRecover(rxDataSig,noiseVarEst,csi,cfg) использует информацию состояния канала, указанную в csi, чтобы улучшить demapping поднесущих OFDM.

DataBits = wlanDMGDataBitRecover(___,Name,Value) задает дополнительные опции в аргументах пары "имя-значение", с помощью входных параметров от предыдущих синтаксисов. Когда пара "имя-значение" не задана, ее значение по умолчанию используется.

Примеры

свернуть все

Восстановите биты информации о данных с поля данных DMG одно поставщика услуг (SC) PHY.

Передатчик

Создайте объект настройки DMG со схемой модуляции и кодирования (MCS) для SC PHY.

cfgDMG = wlanDMGConfig('MCS',10);

Создайте входную последовательность битов данных, задав его как вектор-столбец с элементами cfgDMG.PSDULength*8. Сгенерируйте форму волны передачи DMG.

txBits = randi([0 1],cfgDMG.PSDULength*8,1,'int8'); 
tx = wlanWaveformGenerator(txBits,cfgDMG);

Канал AWGN

Установите ОСШ 10 дБ, вычислите шумовую степень (шумовое отклонение) и добавьте AWGN в форму волны передачи при помощи функции awgn.

SNR = 10;
nVar = 10^(-SNR/10);
rx = awgn(tx,SNR);

Получатель

Извлеките поле данных при помощи функции wlanFieldIndices, чтобы сгенерировать индексы поля PPDU.

ind = wlanFieldIndices(cfgDMG);
rxData = rx(ind.DMGData(1):ind.DMGData(2));

Измените полученную форму волны данных в блоки. Установите размер блока данных на 512 и защитную длину интервала к 64. Удалите последний защитный интервал из полученной формы волны данных. Получившаяся форма волны данных является 512 Nblks матрицей, где Nblks является количеством данных DMG blocks.

blkSize = 512; 
Ngi = 64;
rxData = rxData(1:end-Ngi); 
rxData = reshape(rxData,blkSize,[]);

Удалите защитный интервал из каждого блока. Получившийся сигнал является 448 Nblks матрицей, как ожидалось для временного интервала сигнал поля данных DMG для SC PHY.

rxSym = rxData(Ngi+1:end,:);
size(rxSym)
ans = 1×2

   448     9

Восстановите PSDU с поля данных DMG.

rxBits = wlanDMGDataBitRecover(rxSym,nVar,cfgDMG);

Сравните его с исходными информационными битами.

disp(isequal(txBits,rxBits));
   1

Восстановите биты информации о данных поля данных DMG OFDM PHY.

Передатчик

Создайте объект настройки DMG со схемой модуляции и кодирования (MCS) для OFDM PHY.

cfgDMG = wlanDMGConfig('MCS',14);

Создайте входную последовательность битов данных, задав его как вектор-столбец с элементами cfgDMG.PSDULength*8. Сгенерируйте форму волны передачи DMG.

txBits = randi([0 1],cfgDMG.PSDULength*8,1,'int8'); 
tx = wlanWaveformGenerator(txBits,cfgDMG);

Канал

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

rx = tx;
nVar = 0;

Получатель

Извлеките поле данных, с помощью функции wlanFieldIndices, чтобы сгенерировать индексы поля PPDU.

ind = wlanFieldIndices(cfgDMG);
rxData = rx(ind.DMGData(1):ind.DMGData(2));

Установите длину БПФ на 512 и циклическую длину префикса до 128 для демодуляции OFDM.

Nfft = 512;
Ncp = 128;

Выполните демодуляцию OFDM. Измените полученную форму волны, чтобы иметь символы для каждого столбца OFDM и удалить циклический префикс. Затем масштабируйте последовательность активным тоном 352 и извлеките символы частотного диапазона.

ofdmSym = reshape(rxData,Nfft+Ncp,[]);
dftSym = ofdmSym(Ncp+1:end,:);      
dftSym = dftSym/(Nfft/sqrt(352));   
freqSym = fftshift(fft(dftSym,[],1),1);

Извлеките несущие данные поднесущие и отбросьте пилотов. Установите самый высокий индекс поднесущей на 177.

pilotSCIndex = [-150; -130; -110; -90; -70; -50; -30; -10; 10; 30; 50; 70; 90; 110; 130; 150];
noDataSCIndex = [pilotSCIndex; [-1; 0; 1]];
Nsr = 177; 
dataSCIndex = setdiff((-Nsr:Nsr).',sort(noDataSCIndex));
rxSym = freqSym(dataSCIndex+(Nfft/2+1),:);

Восстановите PSDU с поля данных DMG. Примите оценку CSI из всех единиц.

csi = ones(length(dataSCIndex),1);
rxBits = wlanDMGDataBitRecover(rxSym,nVar,csi,cfgDMG);

Сравните его с исходными информационными битами.

disp(isequal(txBits,rxBits));
   1

Восстановите биты информации о данных с поля данных DMG управления PHY.

Передатчик

Создайте объект настройки DMG со схемой модуляции и кодирования (MCS) для управления PHY.

cfgDMG = wlanDMGConfig('MCS',0);

Создайте входную последовательность битов данных, задав его как вектор-столбец с элементами cfgDMG.PSDULength*8. Сгенерируйте форму волны передачи DMG.

txBits = randi([0 1],cfgDMG.PSDULength*8,1,'int8'); 
tx = wlanWaveformGenerator(txBits,cfgDMG);

Канал

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

rx = tx;
nVar = 0;

Получатель

Извлеките заголовок и поле данных при помощи функции wlanFieldIndices.

ind = wlanFieldIndices(cfgDMG);
rxSym = rx(ind.DMGHeader(1):ind.DMGData(2));

De-rotate полученный сигнал пи/2 и despread это с распространяющимся фактором 32. Используйте функцию wlanGolaySequence, чтобы сгенерировать последовательность Golay.

rxSym = rxSym.*exp(-1i*pi/2*(0:size(rxSym,1)-1).');
SF = 32; 
Ga = wlanGolaySequence(SF);
rxSymDespread = (reshape(rxSym,SF,length(rxSym)/SF)'*Ga)/SF;

Восстановите PSDU с поля данных DMG.

rxBits = wlanDMGDataBitRecover(rxSymDespread,nVar,cfgDMG);

Сравните его с исходными информационными битами.

disp(isequal(txBits,rxBits));
   1

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

свернуть все

Полученный сигнал данных DMG, заданный как действительная или комплексная матрица. Содержимое и размер rxDataSig зависят от физического уровня (PHY):

  • Single-carrier PHY — rxDataSig является временным интервалом сигнал поля данных DMG, заданный как 448 NBLKS матрицей действительных или комплексных чисел. Значение 448 является количеством символов в символе данных DMG и N, BLKS является количеством блоков данных DMG.

  • OFDM PHY — rxDataSig является демодулируемым полем данных DMG символы OFDM, заданные как 336 NSYM матрицей действительных или комплексных чисел. Значение 336 является количеством поднесущих данных в поле данных DMG и N, SYM является количеством символов OFDM.

  • Управляйте PHY — rxDataSig является сигналом временного интервала, содержащим заголовок и поля данных, заданные как вектор-столбец B-1 N действительных или комплексных чисел, где N B является количеством despread символов.

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

Шумовая оценка отклонения, заданная как неотрицательный скаляр.

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

Настройка DMG PPDU, заданная как объект wlanDMGConfig. Функция wlanDMGDataBitRecover использует следующие свойства объектов:

Модуляция и индекс схемы кодирования, заданный как целое число от 0 до 24 или один из расширенных индексов MCS: '9.1', '12.1', '12.2', '12.3', '12.4', '12.5' или '12.6'. Расширенное (нецелое число) индекс MCS может только быть задано как скаляр строки или вектор символов. Целочисленный индекс MCS может быть задан как вектор символов, скаляр строки или целое число. Индекс MCS указывает на схему модуляции и кодирования, используемую в передаче текущего пакета.

  • Модуляция и схема кодирования управления PHY

    Индекс MCSМодуляцияКодирование уровняКомментарий

    0

    DBPSK

    1/2

    Уровень кода и скорость передачи данных могут произойти ниже из-за сокращения кодовой комбинации.

  • Модуляция и схемы кодирования модуляции одно поставщика услуг

    Индекс MCSМодуляцияКодирование уровняN CBPSПовторение

    1

    BPSK π/2

    1/2

    1

    2

    2

    1/2

    1

    3

    5/8

    4

    3/4

    5

    13/16

    6

    QPSK π/2

    1/2

    2

    7

    5/8

    8

    3/4

    9

    13/16

    9.1

    7/8

    10

    π/2 16QAM

    1/2

    4

    11

    5/8

    12

    3/4

    12.1

    13/16

    12.2

    7/8

    12.3

    π/2 64QAM

    5/8

    6

    12.4

    3/4

    12.5

    13/16

    12.6

    7/8

    N CBPS является количеством закодированных битов на символ.

  • Модуляция и схемы кодирования модуляции OFDM

Индекс MCSМодуляцияКодирование уровняN BPSCN CBPSN DBPS

13

SQPSK

1/2

1

336

168

14

5/8

210

15

QPSK

1/2

2

672

336

16

5/8

420

17

3/4

504

18

16QAM

1/2

4

1344

672

19

5/8

840

20

3/4

1008

21

13/16

1092

22

64QAM

5/8

6

2016

1260

23

3/4

1512

24

13/16

1638

N BPSC является количеством закодированных битов на одного поставщика услуг.

N CBPS является количеством закодированных битов на символ.

N DBPS является количеством битов данных на символ.

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

Количество учебных полей, заданных как целое число от 0 до 64. TrainingLength должен быть кратным четыре.

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

Пакетный тип поля обучения, заданный как 'TRN-R' или 'TRN-T'. Это свойство применяется когда TrainingLength > 0.

'TRN-R' указывает, что пакет включает или запрашивает подполя получать-обучения, и 'TRN-T' указывает, что пакет включает учебные передачей подполя.

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

Запросите отслеживание луча, заданное как логическое. Установка BeamTrackingRequest к true указывает, что отслеживание луча требуют. Это свойство применяется когда TrainingLength > 0.

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

Настройте соединяющийся тип, заданный как 'Static' или 'Dynamic'. Это свойство применяется, когда MCS от 13 до 17. А именно, TonePairingType применяется при использовании OFDM и или SQPSK или модуляция QPSK.

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

Индекс пары группы DTP, заданный как 42 1 целочисленный вектор для каждой пары. Значения элемента должны быть от 0 до 41 без копий. Это свойство применяется, когда MCS от 13 до 17 и когда TonePairingType является 'Dynamic'.

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

DTP обновляют индикатор, заданный как логическое. Переключите DTPIndicator между пакетами, чтобы указать, что динамическое тональное отображение пары было обновлено. Это свойство применяется, когда MCS от 13 до 17 и когда TonePairingType является 'Dynamic'.

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

Количество байтов несут в пользовательской полезной нагрузке, заданной как целое число от 1 до 262 143.

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

Начальное состояние скремблера скремблера данных для каждого пакета, сгенерированного, заданного как целое число в зависимости от значения MCS:

  • Если MCS является 0, начальное состояние скремблера ограничивается значениями от 1 до 15, соответствуя 4 1 вектор-столбец..

  • Если MCS является '9.1', '12.1', '12.2', '12.3', '12.4', '12.5' или '12.6', допустимая область значений начального скремблера от 0 до 31, соответствуя вектор-столбцу 5 на 1.

  • Для остающихся значений MCS допустимая область значений от 1 до 127, соответствуя 7 1 вектор-столбец.

Значение по умолчанию 2 является состоянием в качестве примера, данным в Станд. IEEE 802.11™-2012, Поправка 3, Раздел L.5.2.

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

Индикатор агрегации MPDU, заданный как логическое. Установка AggregatedMPDU к true указывает, что текущий пакет использует агрегацию A-MPDU.

Зависимости

Это свойство не применимо, когда MCS 0.

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

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

При передаче кадра ответа сразу после короткого межкадрового пробела (SIFS) период STA DMG устанавливает LastRSSI, как задано в IEEE® 802.11ad™-2012, Раздел 9.3.2.3.3, чтобы сопоставить с параметром TXVECTOR LAST_RSSI кадра ответа к степени, которая была измерена на полученном пакете, как сообщается в поле RCPI кадра, который выявил кадр ответа. Кодирование значения для TXVECTOR следующие:

  • Значения степени, равные или выше –42 dBm, представлены как значение 15.

  • Значения степени между –68 dBm и –42 dBm представлены как вокруг ((степень – (–71 dBm))/2).

  • Значения степени, меньше чем или равные –68 dBm, представлены как значение 1.

  • Для всех других случаев STA DMG должен установить параметр TXVECTOR LAST_RSSI переданного кадра к 0.

Параметр LAST_RSSI в RXVECTOR сопоставляет с LastRSSI и указывает на значение поля LAST_RSSI от заголовка PCLP полученного пакета. Кодирование значения для RXVECTOR следующие:

  • Значение 15 представляет степень, больше, чем или равный –42 dBm.

  • Значения от 2 до 14 представляют уровни мощности (–71+value×2) dBm.

  • Значение 1 представляет степень, меньше чем или равную –68 dBm.

  • Значение 0 указывает, что предыдущий пакет не был получен в период SIFS перед текущей передачей.

Для получения дополнительной информации смотрите IEEE 802.11ad-2012, Раздел 21.2.

Зависимости

Это свойство не применимо, когда MCS 0.

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

Оборотная индикация, заданная как логическое. Установка Turnaround к true указывает, что STA требуется, чтобы прислушиваться к поступлению PPDU сразу после передачи PPDU. Для получения дополнительной информации смотрите IEEE 802.11ad-2012, Раздел 9.3.2.3.3.

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

Информация состояния канала, указанная как 336 1 действительный вектор-столбец. Значение 336 задает количество поднесущих данных в поле данных DMG. csi требуется только для OFDM PHY.

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

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

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

Пример: 'MaximumLDPCIterationCount','12','EarlyTermination','false' задает максимум 12 итераций декодирования для LDPC и отключает раннее завершение декодирования LDPC так, чтобы это завершило эти 12 итераций.

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

Для получения информации об опциях кодирования канала смотрите 802,11 предмета интереса настройки формата.

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

Включите раннее завершение декодирования LDPC, заданного как логическое. Этот параметр применим, когда кодирование канала установлено в LDPC для пользователя интереса.

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

  • Когда установлено в true, декодирование LDPC останавливается, когда все проверки четности удовлетворены.

Для получения информации об опциях кодирования канала смотрите 802,11 предмета интереса настройки формата.

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

свернуть все

Восстановленные информационные биты от поля данных DMG, возвращенного как вектор-столбец длины 8 × cfgDMG.PSDULength. Смотрите wlanDMGConfig для деталей PSDULength.

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

Больше о

свернуть все

Поле данных DMG

Формат DMG поддерживает три физических уровня (PHY) схемы модуляции: управляйте, один поставщик услуг и OFDM. data field является переменным в длине. Это выполняет ту же функцию для трех ФИЗИК и несет пользовательскую полезную нагрузку данных.

Для SC PHY каждый блок в поле данных является 512 символами долго и с защитным интервалом (GI) 64 символов с Последовательностью Golay. Для OFDM каждый символ OFDM в поле данных является 640 выборками долго и с циклическим префиксом (CP) 128 выборок, чтобы предотвратить интерференцию межсимвола.

IEEE 802.11ad-2012 задает общие аспекты пакетной структуры DMG PPDU в Разделе 21.3. Специфичные для модуляции аспекты PHY структуры поля данных заданы в этих разделах:

  • Пакетная структура управления DMG PHY задана в Разделе 21.4.

  • Пакетная структура DMG OFDM PHY задана в Разделе 21.5.

  • SC DMG пакетная структура PHY задан в Разделе 21.6.

Ссылки

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

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

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

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

|

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте