wlanDMGDataBitRecover

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

Описание

пример

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):

  • Одно поставщик услуг 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 объект.

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

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

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

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

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

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

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

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

Включите раннее завершение декодирования LDPC, заданного как логическое значение 1 TRUE) или 0 ложь). Это свойство применяется, когда кодирование канала установлено в 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