wlanFormatDetect

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

Описание

пример

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

пример

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

Примеры

свернуть все

Обнаружьте формат формы волны ВЛАНА ХЭ СУ

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

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

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

Сгенерируйте форму волны 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'

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

Сгенерируйте форму волны 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-NR, где:

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

  • N R является количеством, получают антенны.

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

Примечание

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

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

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

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

  • NR является количеством, получают антенны.

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

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

Шумовая оценка отклонения в виде неотрицательного скаляра.

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

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

  • 'CBW5' – Полоса пропускания канала 5 МГц

  • 'CBW10' – Полоса пропускания канала 10 МГц

  • 'CBW20' – Полоса пропускания канала 20 МГц

  • 'CBW40' – Полоса пропускания канала 40 МГц

  • 'CBW80' – Полоса пропускания канала 80 МГц

  • 'CBW160' – Полоса пропускания канала 160 МГц

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

Аргументы name-value

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

Пример: 'PilotPhaseTracking','None' отключает отслеживание экспериментального этапа.

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

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

Метод эквализации в виде одного из этих значений.

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

  • 'ZF' — Приемник использует обеспечивающий нуль эквалайзер.

Когда полученный сигнал имеет, несколько получают антенны, функциональное разнообразие приемника использования во время эквализации. Когда количество переданных пространственно-временных потоков один, и вы задаете этот аргумент как 'ZF', функция выполняет объединение максимального отношения.

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

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

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

  • 'None' — Отключите отслеживание экспериментального этапа.

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

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

свернуть все

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

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

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

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

  • 'VHT' – Формат очень высокопроизводительного (VHT)

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

  • 'HE-EXT-SU' – Однопользовательская расширенная область значений HE (HE SU ER) формат

  • 'HE-MU' – Многопользовательский HE (HE МУ) формат

  • 'HE-TB' – Основанный на триггере HE (Тбайт HE) формат

Алгоритмы

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        3. Если длиной по модулю 3 является 0, обнаружьте формат путем выполнения шагов в Обнаружении Унаследованного формата.

    2. Если поле L-SIG недопустимо, обнаружьте формат путем выполнения шагов в Обнаружении Унаследованного формата.

  2. Если поле RL-SIG не обнаруживается, обнаружьте формат путем выполнения шагов, обрисованных в общих чертах в Обнаружении Унаследованного формата.

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

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

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

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

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

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

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

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

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

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

Введенный в R2017b