Этот пример показывает проект получателя, который может восстановиться 802.11™ пакеты маяка OFDM в формате non-HT, переданном по воздуху от коммерческих 802,11 оборудования. Пакеты маяка обычно передаются в формате non-HT, даже для HT [1], VHT [2] и/или HE [3] способное оборудование. Информация о пакете, такая как SSID распечатана к командной строке во время восстановления.
Этот пример иллюстрирует использование WLAN Toolbox™, чтобы восстановить реальные сигналы. Это демонстрирует проект получателя включая синхронизацию, восстановление настройки передачи и декодирование полезной нагрузки для пакетов non-HT. Несмотря на то, что этот пример восстанавливает пакеты маяка с файла, содержащего полученную основополосную форму волны, он разработан, чтобы работать с живыми сигналами.
Следующие шаги, оказывается, последовательно восстанавливают один пакет non-HT:
Пакетное Обнаружение: Сначала пакет должен быть обнаружен, прежде чем любая обработка начинается. Это выполняется путем автокорреляции вводимых символов. Поскольку передняя сторона каждых 802.11 пакетов OFDM содержит повторяющуюся структуру, названную L-STF, peaks произойдет в корреляции, когда этот пакет будет присутствовать. Поле L-STF затем извлекается и используется для крупной оценки частоты.
Синхронизация символа: Если пакет был обнаружен, будущие символы будут собираться и перекрестный коррелироваться, чтобы определить местоположение L-LTF. Получившийся peaks корреляции обеспечивает точную оценку синхронизации. Если полный L-LTF расположен, он извлекается и используется для оценки канала и прекрасной оценки частоты.
Декодирование L-SIG: первый символ OFDM после L-LTF является полем L-SIG. Это поле должно восстанавливаться и декодироваться, чтобы определить модуляцию, уровень кода и длину следующей полезной нагрузки. Информация используется, чтобы получить правильный объем данных после L-SIG для полной полезной нагрузки и декодировать ту информацию.
Декодирование полезной нагрузки: Все символы OFDM после L-SIG буферизуются к длине, определенной полем L-SIG. После того, как все символы были получены, они демодулируются и декодируются в их исходные биты. Исходные биты затем оценены. Эта оценка включает валидацию последовательности проверки кадра (FCS) и экстракцию заголовка и тела. Если пакет будет иметь маяк подтипа, итоговая информация, такая как SSID будет распечатана для восстановленного пакета.
Если полный пакет получен, или любые отказы происходят во время цепочки обработки, получатель возвратится к пакетному обнаружению, чтобы искать больше пакетов. Этот процесс повторяется на время сигнала.
В этом примере не воздушное получение обрабатывается, чтобы восстановить кадры "неисправность". Сигнал Wi-Fi® был получен с помощью интерфейса РФ с, каждый получает антенну на уровне выборки 20 членов Шотландского парламента. Полученная форма волны хранится в бинарном основополосном файле. Файл был создан с помощью comm.BasebandFileWriter
.
Полученная форма волны обрабатывается способом потоковой передачи. Блок выборок втянут для обработки в каждой итерации. Как можно больше допустимых пакетов получено. comm.BasebandFileReader
используется, чтобы считать блоки выборок из бинарного основополосного файла.
% Create an object to stream the data from the file basebandReader = comm.BasebandFileReader( ... 'Filename', 'nonHTBeaconRxData.bb', ... 'SamplesPerFrame', 80); % Number of samples in 1 OFDM symbol at 20 MHz
Центральная частота, частота дискретизации и количество каналов в полученной форме волны обеспечиваются коммуникацией. Объект BasebandFileReader.
disp(['Center frequency: ' num2str(basebandReader.CenterFrequency/1e6) ' MHz']) disp(['Sample rate: ' num2str(basebandReader.SampleRate/1e6) ' Msps']) disp(['Number of receive antennas: ' num2str(basebandReader.NumChannels) newline])
Center frequency: 5785 MHz Sample rate: 20 Msps Number of receive antennas: 1
Объект nonHTFrontEnd выполняет обработку фронтенда и декодирование L-SIG. Объект сконфигурирован с пропускной способностью канала 20 МГц к процессу пакеты non-HT. Только один получает антенну, поддерживается.
rxFrontEnd = nonHTFrontEnd('ChannelBandwidth', 'CBW20');
Некоторое время цикл используется к блокам процесса выборок, и восстановите пакеты маяка, пока больше данных не доступно в основополосном файле. В каждой итерации цикла блок выборок читается из основополосного файла и обрабатывается rxFrontEnd
. rxFrontEnd
выполняет обработку фронтенда и буферизует выборки, пока пакет не был обнаружен, и полезная нагрузка получена. Когда payloadFull
верен, полная полезная нагрузка была буферизована, и rxFrontEnd
возвращает переменные, чтобы позволить данным в пакете быть восстановленными:
cfgNonHT
содержит восстановленные пакетные параметры от L-SIG.
rxNonHTData
является временным интервалом сигнал поля данных non-HT.
chanEst
содержит оценки канала, полученные из L-LTF.
noiseVar
является фиксированным шумовым значением отклонения.
Пакетные биты полезной нагрузки восстанавливаются с выборок поля данных non-HT с помощью wlanNonHTDataRecover
. Биты затем подтверждаются и декодируются wlanMPDUDecode
, чтобы восстановить параметры кадра MAC. wlanMPDUDecode
возвращает следующие выходные параметры, которые определяют, передал ли полученный пакет проверку FCS и является ли полученный пакет кадром "неисправность".
mpduCfg
является объектом типа wlanMACFrameConfig
, содержащий восстановленные параметры кадра MAC от кадра "неисправность".
status
является перечислением состояния типа, которое возвращено как 'Успех', когда MPDU передает проверку FCS и возвратился как 'FCSFailed', когда MPDU приводит проверку FCS к сбою.
Если допустимый маяк обнаруживается, декодируемый SSID отображен.
% A recovery configuration object is used to specify zero-forcing % equalization for the data recovery cfgRec = wlanRecoveryConfig('EqualizationMethod', 'ZF'); % Symbol-by-symbol streaming process numValidPackets = 0; while ~isDone(basebandReader) % Pull in one OFDM symbol, i.e. 80 samples data = basebandReader(); % Perform front-end processing and payload buffering [payloadFull, cfgNonHT, rxNonHTData, chanEst, noiseVar] = ... rxFrontEnd(data); if payloadFull % Recover payload bits recBits = wlanNonHTDataRecover(rxNonHTData, chanEst, ... noiseVar, cfgNonHT, cfgRec); % Decode and evaluate recovered bits [mpduCfg, ~, status] = wlanMPDUDecode(recBits, cfgNonHT); if strcmp(status, 'Success') && strcmp(mpduCfg.FrameType, 'Beacon') frameBody = mpduCfg.ManagementConfig; % Display SSID disp(['SSID: ', frameBody.SSID]) numValidPackets = numValidPackets + 1; end end end disp([num2str(numValidPackets), ' Valid Beacon Packets Found']) release(basebandReader); release(rxFrontEnd);
SSID: MathWorks-SDR SSID: MathWorks-SDR SSID: MathWorks-SDR 3 Valid Beacon Packets Found
См. 802.11 Получателя Маяка OFDM с Оборудованием USRP® для примера обработки живых сигналов с USRP.
Этот пример использует следующие функции помощника и объекты:
Стандарт IEEE® Std 802.11™-2012 IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации.
Станд. IEEE 802.11ac™-2013 Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации - Поправка 4: Улучшения для Очень Высокой Пропускной способности для Операции в Полосах ниже 6 ГГц.
Черновой Стандарт IEEE P802.11ax™/D3.1 для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Часть 11 Конкретных требований: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации - Поправка 6: Улучшения для Высокой эффективности WLAN.