wlanFormatDetect

Обнаружение формата пакета

Описание

пример

format = wlanFormatDetect(rxSig,chEst,noiseVarEst,cbw) обнаруживает и возвращает format, формат пакета принятого сигнала временной области. Функция обнаруживает формат пакета путем выполнения ряда проверок rxSigФрагмент сигнала, содержимое которого однозначно определяет формат пакета. Для получения дополнительной информации смотрите Формат обработки обнаружения. Для выполнения этих проверок функция также требует оцененных характеристик канала chEst, расчетное отклонение шума noiseVarEst, и пропускная способность канала cbw.

пример

format = wlanFormatDetect(rxSig,chEst,noiseVarEst,cbw,Name,Value) задает опции алгоритма для восстановления информационного бита с помощью одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

Обнаружение формата волны WLAN HE SU

Сгенерируйте сигнал HE SU и получите принятый сигнал путем добавления шума.

cbw = 'CBW20'; % Specify channel bandwidth of 20MHz
cfgHESU = wlanHESUConfig('ChannelBandwidth',cbw); % Create configuration object for HE SU format
bits = [1;0;0;1];
tx = wlanWaveformGenerator(bits,cfgHESU); % Generate HE SU waveform
snr = 10; % Specify signal-to-noise ratio (SNR)
rx = awgn(tx,snr); % Create receive waveform

Укажите частоту дискретизации и продолжительность соответствующих полей PPDU.

sr = 20e6; % Sample rate in samples per second
tLSTF = 8e-6; % Duration of legacy short training field (L-STF)
tLLTF = tLSTF; % Duration of legacy long training field (L-LTF)

Определите индексы поля и оцените канал с помощью L-LTF.

ind = tLSTF*sr+(1:tLLTF*sr);
y = wlanLLTFDemodulate(rx(ind,:),cbw);
chEst = wlanLLTFChannelEstimate(y,cbw);

Задайте оценку отклонения шума в канале и обнаружите формат формы волны.

noiseVarEst = 10^(-snr/20);
rxSig = rx((tLSTF+tLLTF)*sr+(1:sr*(16e-6)),:); % 16 microseconds corresponding to four OFDM symbols after HE L-LTF
format = wlanFormatDetect(rxSig,chEst,noiseVarEst,cbw);
disp(format)
HE-SU

Выполните обнаружение формата на форме волны высокопроизводительного смешанного формата (HT-MF) WLAN.

Сгенерируйте сигнал HT-MF и добавьте шум переданной форме волны.

cbw = 'CBW20';
cfgTx = wlanHTConfig('ChannelBandwidth',cbw);
tx = wlanWaveformGenerator([1;0;0;1],cfgTx);
snr = 10;
rxSig = awgn(tx,snr);

Демодулируйте принятый сигнал и выполните оценку канала

  • Определите индексы для L-LTF для формы полосы пропускания 20 МГц. Для этого вычисления задайте локальные переменные для частоты дискретизации и длительности полей L-STF и L-LTF в секундах.

  • Демодулируйте L-LTF.

  • Выполните оценку канала с помощью L-LTF.

  • Оцените отклонение шума.

sr = 20e6;
Tlstf = 8e-6;
Tlltf = 8e-6;

idxlltf = Tlstf*sr+(1:Tlltf*sr);

lltfDemod = wlanLLTFDemodulate(rxSig(idxlltf,:),cbw);
chEst = wlanLLTFChannelEstimate(lltfDemod,cbw);
noiseVarEst = 10^(-snr/20);

Обнаружение формата сигнала

  • Определите индексы для трех символов, следующих за L-LTF. Для формы полосы пропускания 20 МГц длительность для трех символов составляет 12 μs.

  • Выполните обнаружение формата.

idxDetectionSymbols = (Tlstf+Tlltf)*sr+(1:12e-6*sr);

in = rxSig(idxDetectionSymbols,:);
format = wlanFormatDetect(in,chEst,noiseVarEst,cbw)
format = 
'HT-MF'

Определите формат волны WLAN с очень высокой пропускной способностью (VHT), настроив настройки алгоритма восстановления по умолчанию.

Сгенерируйте сигнал VHT и добавьте белый Гауссов шум к переданному сигналу.

cbw = 'CBW80';
cfgTx = wlanVHTConfig('ChannelBandwidth',cbw);
tx = wlanWaveformGenerator([1;0;0;1],cfgTx);
snr = 10;
rxSig = awgn(tx,snr);

Демодуляция принимаемого сигнала и оценка канала

  • Определите индексы для L-LTF для формы полосы пропускания 80 МГц. Для этого вычисления задайте локальные переменные для частоты дискретизации и длительности L-STF и L-LTF в секундах.

  • Демодулируйте L-LTF.

  • Выполните оценку канала с помощью L-LTF.

  • Оцените отклонение шума.

sr = 80e6;
Tlstf = 8e-6;
Tlltf = 8e-6;
idxlltf = Tlstf*sr+(1:Tlltf*sr);
lltfDemod = wlanLLTFDemodulate(rxSig(idxlltf,:),cbw);
chEst = wlanLLTFChannelEstimate(lltfDemod,cbw);
noiseVarEst = 10^(-snr/20);

Обнаружение формата

  • Определите индексы для трех символов, следующих за L-LTF. Для формы полосы пропускания 80 МГц длительность для трех символов составляет 12 μs.

  • Обнаружите обнаружение формата с помощью измененных настроек восстановления.

TdetectionSymbols = 12e-6;
idxDetectionSymbols = (Tlstf+Tlltf)*sr+(1:TdetectionSymbols*sr);
in = rxSig(idxDetectionSymbols,:);
format = wlanFormatDetect(in,chEst,noiseVarEst,cbw,...
    'OFDMSymbolOffset',0.5,'PilotPhaseTracking','None')
format = 
'VHT'

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

свернуть все

Часть принятого сигнала временной области после долгого обучения (post-LTF), заданная как комплексная матрица N S-by N R, где:

  • N S является количеством выборок во временной области.

  • N R является количеством приемных антенн.

Чтобы успешно обнаружить формат пакета HE, этот вход должен содержать все выборки во временной области в четырех символах OFDM, непосредственно следующих за L-LTF: sym1, sym2, sym3 и sym4. Чтобы успешно обнаружить другие форматы пакетов, этот сигнал должен содержать все выборки во временной области в трех символах OFDM, непосредственно следующих за соответствующим LTF: sym1, sym2, sym3. Первая запись в каждом столбце этого входа должна быть первой выборкой символа во временной области, полученной соответствующей антенной. Для получения дополнительной информации о том, как wlanFormatDetect функция использует этот вход для обнаружения формата, см. «Обработка обнаружения формата».

Примечание

Если количество принятых символов OFDM больше четырех, функция игнорирует дополнительные выборки после sym4.

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

Оценка канала для поднесущих данных и пилот-сигнала на основе L-LTF, заданная в виде числовой матрицы или массива размеров N ST-на-1-by- N R, где:

  • N ST является количеством занятых поднесущих.

  • NR - количество приемных антенн.

Это второе измерение соответствует одному переданному потоку в L-LTF. Если передача использует несколько антенн, один переданный поток включает в себя объединенные циклические сдвиги.

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

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

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

Пропускная способность канала, в МГц, задается как одно из следующих значений.

  • 'CBW5' - Пропускная способность канала 5 МГц

  • 'CBW10' - Пропускная способность канала 10 МГц

  • 'CBW20' - Пропускная способность канала 20 МГц

  • 'CBW40' - Пропускная способность канала 40 МГц

  • 'CBW80' - Пропускная способность канала 80 МГц

  • 'CBW160' - Пропускная способность канала 160 МГц

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

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

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

Пример: 'PilotPhaseTracking','None' отключает отслеживание фазы управления.

Смещение дискретизации символов OFDM, представленное как часть длины циклического префикса (CP), заданная как разделенная разделенными запятой парами, состоящая из 'OFDMSymbolOffset' и скаляром в интервале [0, 1]. Заданное значение указывает начальное местоположение для демодуляции OFDM относительно начала CP. Значение 0 представляет начало CP и значение 1 представляет конец CP.

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

Метод эквализации, заданный как разделенная разделенными запятой парами, состоящая из 'EqualizationMethod' и одно из этих значений.

  • 'MMSE' - Приемник использует эквалайзер минимальной квадратной ошибки.

  • 'ZF' - Приемник использует уравнитель с нулями.

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

Отслеживание фазы пилота, заданное как разделенная разделенными запятой парами, состоящая из 'PilotPhaseTracking' и одно из этих значений.

  • 'PreEQ' - Включите отслеживание фазы пилот-сигнала, которое функция выполняет перед любой операцией эквализации.

  • 'None' - Отключить отслеживание фазы управления.

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

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

свернуть все

Формат пакета, возвращенный как одно из следующих значений:

  • 'Non-HT' - Не высокопроизводительный (не-HT) формат

  • 'HT-MF' - Высокопроизводительный смешанный формат (HT MF)

  • 'HT-GF' - Высокопроизводительный формат greenfield (HT GF)

  • 'VHT' - Очень высокопроизводительный (VHT) формат

  • 'HE-SU' - Высокоэффективный однопользовательский (HE SU) формат

  • 'HE-EXT-SU' - Формат HE расширенного диапазона с одним пользователем (HE ER SU)

  • 'HE-MU' - Формат HE multiuser (HE MU)

  • 'HE-TB' - Формат на основе триггеров (HE TB)

Алгоритмы

свернуть все

Обработка обнаружения формата

Алгоритм обработки обнаружения формата определяет формат пакета путем проверки соответствующих атрибутов rxSig вход.

  • Чтобы успешно обнаружить формат пакета HE, rxSig должны содержать все выборки во временной области в четырех символах OFDM, следующих за L-LTF.

  • Чтобы успешно обнаружить формат пакета, отличного от HT, HT-MF или VHT, rxSig должны содержать все выборки во временной области в трех символах OFDM, следующих за L-LTF.

  • Чтобы успешно обнаружить формат пакета HT-GF, rxSig должны содержать все выборки во временной области в трех символах OFDM, следующих за HT-LTF1.

Первая запись в каждом столбце rxSig должна быть первой выборкой во временной области первого символа OFDM, следующего за соответствующим LTF, полученным соответствующей антенной. Функция не использует дополнительные выборки после последней выборки четвертого символа OFDM.

Перед демодуляцией любых символов пакета, wlanFormatDetect функция проверяет количество символов OFDM в rxSig вход. Если функция обнаруживает четыре или более символов, она определяет формат пакета путем выполнения шагов, описанных в HE Format Detection. Если функция обнаруживает три символа, она определяет формат пакета путем выполнения шагов, описанных в Legacy Format Detection.

Обнаружение формата HE
  1. Проверьте наличие повторяющегося поля L-SIG (RL-SIG). Если поле RL-SIG обнаружено, начните обнаружение для форматов HE.

    1. Проверьте валидность поля L-SIG путем вычисления четности и скорости передачи данных. Если поле L-SIG верно, выполните следующие действия.

      1. Проверьте длину поля L-SIG по модулю 3.

        1. Если длина по модулю 3 равна 1, формат пакета является либо HE ER SU, либо HE MU. Демодулируйте поле HE-SIG-A и проверьте схему модуляции sym4.

          1. Если метод модуляции sym4 является QBPSK, формат является HE ER SU.

          2. Если метод модуляции sym4 является BPSK, формат является HE MU.

        2. Если длина по модулю 3 равна 2, формат пакета является либо HE SU, либо HE TB. Восстановите информационные биты в поле HE-SIG-A с помощью wlanHESIGABitRecover функция.

          1. Если первый бит 0, формат является HE TB.

          2. Если первый бит равен 1, формат является HE SU.

          3. Если в поле HE-SIG-A не выполнена циклическая проверка избыточности (CRC), определите формат путем выполнения шагов в Legacy Format Detection.

        3. Если длина по модулю 3 0, обнаружить формат путем следования шагам в Legacy Format Detection.

    2. Если поле L-SIG является недопустимым, определите формат путем выполнения шагов в окне Обнаружение устаревшего формата (Legacy Format Detection).

  2. Если поле RL-SIG не обнаружено, определите формат путем выполнения шагов, описанных в Legacy Format Detection.

Обнаружение устаревших форматов
  1. Если схема модуляции sym1 является QBPSK, формат пакета является HT-GF.

  2. Если схема модуляции sym1 является BPSK, и проверка четности L-SIG прекращается, функция возвращает предупреждение. Обработка обнаружения формата продолжается, потому что проверка четности L-SIG не указывает окончательно на ошибку в определении схемы модуляции и кодирования (MCS).

    1. Если MCS не 0, формат пакета не HT.

    2. Если MCS 0, проверьте схему модуляции sym2.

      1. Если схема модуляции sym2 является QBPSK, формат является HT MF.

      2. Если схема модуляции sym2 является BPSK, обнаружите схему модуляции sym3.

        1. Если схема модуляции sym3 является QBPSK, формат является VHT.

        2. Если схема модуляции sym3 является BPSK, формат не является HT.

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

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

.
Введенный в R2016b