wlanWaveformGenerator

Сгенерируйте форму волны WLAN

Описание

пример

waveform = wlanWaveformGenerator(bits,cfgFormat) генерирует форму волны для bits, заданные информационные биты и cfg, физический уровень (PHY) настройка формата. Для получения дополнительной информации смотрите Формат IEEE 802.11 PPDU.

пример

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

Примеры

свернуть все

Сконфигурируйте и сгенерируйте форму волны WLAN, содержащую пакет восходящего канала Тбайта HE.

Создайте объект настройки для передачи восходящего канала Тбайта HE WLAN.

cfgHETB = wlanHETBConfig;

Получите длину PSDU, в байтах, от объекта настройки при помощи getPSDULength объектная функция.

psduLength = getPSDULength(cfgHETB);

Сгенерируйте PSDU соответствующей длины.

psdu = randi([0 1],8*psduLength,1);

Сгенерируйте и постройте форму волны.

waveform = wlanWaveformGenerator(psdu,cfgHETB);
figure;
plot(abs(waveform));
title('HE TB Waveform');
xlabel('Time (nanoseconds)');
ylabel('Amplitude');

Сгенерируйте сигнал временной области для 802.11ac передача VHT с одним пакетом.

Создайте объект настройки VHT. Присвойте две антенны передачи и два пространственных потока, и отключите пространственно-временное блочное кодирование (STBC). Установите modulaltion и схему кодирования к 1, который присваивает модуляцию QPSK и 1/2 схему кодирования уровня на 802,11 стандарта. Определите номер байтов в дополнении A-MPDU pre-EOF, APEPLength, к 1024.

cfg = wlanVHTConfig('NumTransmitAntennas',2,'NumSpaceTimeStreams',2,'STBC',0,'MCS',1,'APEPLength',1024);

Сгенерируйте форму волны передачи.

bits = [1;0;0;1];
txWaveform = wlanWaveformGenerator(bits,cfg);

HE настройка MU-MIMO со сжатием SIGB

Сгенерируйте полный HE пропускной способности настройка MU-MIMO в пропускной способности на 20 МГц со сжатием SIGB. Все три пользователя находятся на сингле, довольном канал, который включает только пользовательские полевые биты.

cfgHE = wlanHEMUConfig(194);
cfgHE.NumTransmitAntennas = 3;

Создайте данные PSDU для всех пользователей.

psdu = cell(1,numel(cfgHE.User));
psduLength = getPSDULength(cfgHE);
for j = 1:numel(cfgHE.User)
    psdu = randi([0 1],psduLength(j)*8,1,'int8');
end

Сгенерируйте и постройте форму волны.

y = wlanWaveformGenerator(psdu,cfgHE);
plot(abs(y))

Сгенерируйте полный HE пропускной способности форма волны MU-MIMO в пропускной способности на 80 МГц со сжатием SIGB. Канал содержимого HE-SIG-B 1 имеет четырех пользователей. Канал содержимого HE-SIG-B 2 имеет трех пользователей.

cfgHE = wlanHEMUConfig(214);
cfgHE.NumTransmitAntennas = 7;

Создайте данные PSDU для всех пользователей.

psdu = cell(1,numel(cfgHE.User));
psduLength = getPSDULength(cfgHE);
for j = 1:numel(cfgHE.User)
    psdu = randi([0 1],psduLength(j)*8,1,'int8');
end

Сгенерируйте и постройте форму волны.

y = wlanWaveformGenerator(psdu,cfgHE);
plot(abs(y));

HE настройка MU-MIMO без сжатия SIGB

Сгенерируйте полный HE пропускной способности настройка MU-MIMO в пропускной способности на 20 МГц без сжатия SIGB. Все три пользователя находятся на сингле, довольном канал, который включает и распространенный и пользовательские полевые биты.

cfgHE = wlanHEMUConfig(194);
cfgHE.SIGBCompression = false;
cfgHE.NumTransmitAntennas = 3;

Создайте данные PSDU для всех пользователей.

psdu = cell(1,numel(cfgHE.User));
psduLength = getPSDULength(cfgHE);
for j = 1:numel(cfgHE.User)
    psdu = randi([0 1],psduLength(j)*8,1,'int8');
end

Сгенерируйте и постройте форму волны.

y = wlanWaveformGenerator(psdu,cfgHE);
plot(abs(y))

Сгенерируйте HE на 80 МГц форма волны МУ для шести пользователей без сжатия SIGB. Канал содержимого HE-SIG-B 1 имеет четырех пользователей. Канал содержимого HE-SIG-B 2 имеет двух пользователей.

cfgHE = wlanHEMUConfig([202 114 192 193]);
cfgHE.NumTransmitAntennas = 6;
for i = 1:numel(cfgHE.RU)
    cfgHE.RU{i}.SpatialMapping = 'Fourier';
end

Создайте данные PSDU для всех пользователей.

psdu = cell(1,numel(cfgHE.User));
psduLength = getPSDULength(cfgHE);
for j = 1:numel(cfgHE.User)
    psdu = randi([0 1],psduLength(j)*8,1,'int8');
end

Сгенерируйте и постройте форму волны.

y = wlanWaveformGenerator(psdu,cfgHE);
plot(abs(y));

Сгенерируйте полный HE пропускной способности форма волны MU-MIMO в пропускной способности на 80 МГц без сжатия SIGB. Канал содержимого HE-SIG-B 1 имеет семь пользователей. Канал содержимого HE-SIG-B 2 имеет нулевых пользователей.

cfgHE = wlanHEMUConfig([214 115 115 115]);
cfgHE.NumTransmitAntennas = 7;

Создайте данные PSDU для всех пользователей.

psdu = cell(1,numel(cfgHE.User));
psduLength = getPSDULength(cfgHE);
for j = 1:numel(cfgHE.User)
    psdu = randi([0 1],psduLength(j)*8,1,'int8');
end

Сгенерируйте и постройте форму волны.

y = wlanWaveformGenerator(psdu,cfgHE);
plot(abs(y))

Сгенерируйте сигнал временной области для 802.11ac передача VHT с пятью пакетами и период неактивности с 30 микросекундами между пакетами. Используйте случайное начальное состояние скремблера в каждом пакете.

Создайте настройку VHT, возражают и подтверждают пропускную способность канала для масштабирования оси X графика.

cfg = wlanVHTConfig;
disp(cfg.ChannelBandwidth)
CBW80

Сгенерируйте и постройте форму волны. Отобразите время в микросекундах на оси X.

numPkts = 5;
bits = [1;0;0;1];
scramInit = randi([1 127],numPkts,1);
txWaveform = wlanWaveformGenerator(bits,cfg,'NumPackets',numPkts,'IdleTime',30e-6,'ScramblerInitialization',scramInit);
time = [0:length(txWaveform)-1]/80e-6;
plot(time,abs(txWaveform));
title('Five Packets Separated by 30-Microsecond Idle Periods');
xlabel ('Time (microseconds)');
ylabel('Amplitude');

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

свернуть все

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

  • 0 или 1.

  • Вектор с бинарным знаком.

  • Один за другим ячейка, содержащая скаляр с бинарным знаком или вектор – заданные биты применяются ко всем пользователям.

  • Векторный массив ячеек скаляров с бинарным знаком или векторов – Каждый элемент применяется к каждому пользователю соответственно. Длина этого массива ячеек должна быть равна количеству пользователей. Для каждого пользователя, если количество битов, требуемых через все пакеты генерации, превышает длину вектора если, функциональные циклы прикладной битовый вектор. Цикличное выполнение на битах позволяет вам задавать короткий шаблон, например, [1;0;0;1], это повторяется как вход к PSDU, кодирующему через пакеты и пользователей. В каждой пакетной генерации, для k th пользователь, k th элемент PSDULength свойство cfgFormat введите указывает на количество байтов данных, взятых из его потока. Чтобы вычислить количество битов, умножьте PSDULength 8.

Внутренне, функциональные циклы этот вход, чтобы сгенерировать конкретное количество пакетов. PSDULength свойство cfgFormat введите задает количество битов данных, взятых из потока битов для каждого сгенерированного пакета передачи. 'NumPackets' введите задает количество пакетов, чтобы сгенерировать.

Пример: [1 1 0 1 0 1 1]

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

Настройка формата пакета в виде одного из этих объектов: wlanHEMUConfig, wlanHESUConfig, wlanHETBConfig, wlanDMGConfig, wlanS1GConfig, wlanVHTConfig, wlanHTConfig, или wlanNonHTConfig. Тип объекта, который вы задаете, определяет формат IEEE® 802.11™ сгенерированной формы волны.

Свойства объекта настройки формата пакета определяют скорость передачи данных и длину PSDU сгенерированного PPDUs.

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

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

Пример: 'NumPackets',21,'ScramblerInitialization',[52,17]

Количество пакетов, чтобы сгенерировать в одном вызове функции в виде положительного целого числа.

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

Время простоя, в секундах, добавленных после каждого пакета в виде неотрицательного скаляра. Если IdleTime не установлен в значение по умолчанию, это должно быть:

  • Значение, больше, чем или равный 1e-6 для формата DMG

  • Значение, больше, чем или равный 2e-6 для HE, VHT, HT-mixed и форматов non-HT

Пример: 2e-5

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

Начальное состояние скремблера скремблера данных для каждого сгенерированного пакета в виде целого числа в интервале [1, 127] или как N P-by-NUsers матрица целых чисел в интервале [1, 127]. N P является количеством пакетов, и Пользователи N являются количеством пользователей.

Значение по умолчанию, 93, состояние в качестве примера в Разделе I 1.5.2 [2] и запрашивает S1G, VHT, HT и non-HT OFDM форматы. Для формата DMG, задавая этот аргумент заменяет значение, заданное wlanDMGConfig объект настройки. Для получения дополнительной информации смотрите Инициализацию Скремблера.

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

  • Когда задано как матрица, каждый элемент представляет начальное состояние скремблера для пакетов в мультипакетной форме волны, сгенерированной для каждого пользователя. Каждый столбец задает начальные состояния для отдельного пользователя. В этом случае до четырех столбцов поддерживаются. Если отдельный столбец обеспечивается, те же начальные состояния используются во всех пользователях. Каждая строка представляет начальное состояние каждого пакета, чтобы сгенерировать. Матрица A с несколькими строками позволяет вам использовать различное начальное состояние на пакет, где первая строка содержит начальное состояние первого пакета. Если количество пакетов, чтобы сгенерировать превышает количество строк матрицы, если, строки циклично выполняются внутренне.

Примечание

Этот аргумент не допустим для DSSS non-HT форматы.

Пример: [3 56 120]

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

Длительность, в секундах, перехода окна применилась к каждому символу OFDM в виде неотрицательного скаляра. Никакая работа с окнами не применяется, если вы задаете этот вход как 0. Значение по умолчанию и разрешенное максимальное значение показывают для различных форматов, типа защитного интервала и пропускной способности канала.

ФорматПропускная способностьРазрешенный WindowTransitionTime секунды
Значение по умолчаниюМаксимальное значениеМаксимальное разрешенное значение на основе длительности интервала охраны
3.2 µs1.6 µs

0.8 µs

(Долго)

0.4 µs

(Короткий)

DMG

2 640 МГц

6.0606e-09

(= 16/2640e6)

9.6969e-08

(= 256/2640e6)

S1G

1, 2, 4, 8, или 16 МГц

1.0e-07

1.6e-05

8.0e-06

SU HE, HE МУ и Тбайт HE

20, 40, 80, или 160 МГц

1.0e-07

6.4e-06

3.2e-06

1.6e-06

VHT

20, 40, 80, или 160 МГц

1.0e-07

1.6e-06

8.0e-07

HT-mixed

20 или 40 МГц

1.0e-07

1.6e-06

8.0e-07

non-HT

20 МГц

1.0e-07

1.6e-06

10 МГц

1.0e-07

3.2e-06

5 МГц

1.0e-07

6.4e-06

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

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

свернуть все

Форма волны Packetized, возвращенная как матрица S-by-NT N. N S является количеством выборок временного интервала, и N T является количеством антенн передачи. waveform содержит один или несколько пакетов того же формата PPDU. Каждый пакет может содержать различные информационные биты. Включите пакетную работу с окнами формы волны путем установки WindowTransitionTime введите к положительному значению. Работа с окнами включена по умолчанию.

Для получения дополнительной информации смотрите, что Форма волны Производит Уровень, Работу с окнами Символа OFDM и Цикличное выполнение Формы волны.

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

Больше о

свернуть все

IEEE 802.11 Формат PPDU

Поддерживаемые форматы IEEE 802.11 PPDU, заданные для передачи, включают VHT, HT, non-HT, S1G, DMG и HE. Для всех форматов структура поля PPDU включает фрагменты данных и преамбула. Для подробного описания пакетных структур для различных поддерживаемых форматов смотрите Структуру WLAN PPDU.

Уровень выборки формы волны

При выходе этой функции сгенерированная форма волны имеет уровень выборки, равный пропускной способности канала.

Для всего HE, VHT, HT и формата non-HT модуляция OFDM, пропускная способность канала сконфигурирована через ChannelBandwidth свойство объекта настройки формата.

Для схем модуляции формата DMG пропускная способность канала всегда - 2 640 МГц, и интервал канала всегда - 2 160 МГц. Эти значения заданы в разделах 20.3.4 и E.1 [2], соответственно.

Для формата non-HT схема модуляции DSSS производящий микросхемы уровень всегда - 11 МГц, как задано в разделе 16.1.1 из [2].

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

Объект настройки

Тип модуляции

ChannelBandwidth Значение свойства

Разрядка канала (МГц)

Выборка уровня (МГц)

(F S, F C)

wlanDMGConfig

Управляйте PHY

Для DMG пропускная способность канала фиксируется на уровне 2 640 МГц.

2160

F C = ⅔ F S = 1760

SC

OFDM

F S = 2640

wlanS1GConfig

OFDM

'CBW1'

1

F S = 1

'CBW2'

2

F S = 2

'CBW4'

4

F S = 4

'CBW8'

8

F S = 8

'CBW16'

16

F S = 16

wlanHEMUConfig, wlanHESUConfig, и wlanHETBConfig

OFDMA

'CBW20'

20

F S = 20

'CBW40'

40

F S = 40

'CBW80'

80

F S = 80

'CBW160'

160

F S = 160

wlanVHTConfig

OFDM

'CBW20'

20

F S = 20

'CBW40'

40

F S = 40

'CBW80'

80

F S = 80

'CBW160'

160

F S = 160

wlanHTConfig

OFDM

'CBW20'

20

F S = 20

'CBW40'

40

F S = 40

wlanNonHTConfig

DSSS/CCK

Не применяется

11

F C = 11

OFDM

'CBW5'

5

F S = 5

'CBW10'

10

F S = 10

'CBW20'

20

F S = 20

F S является OFDM выборка уровня.

F C является уровнем чипа для одного поставщика услуг, управление PHY, DSSS и модуляции CCK.

Работа с окнами символа OFDM

OFDM естественно предоставляет себя обработке с преобразованиями Фурье. Отрицательный побочный эффект использования ОБПФ к процессу символы OFDM является получившимися разрывами ребра символа. Эти разрывы вызывают внеполосную эмиссию в области перехода между последовательными символами OFDM. Чтобы сглаживать разрыв между символами и уменьшать межсимвол внеполосная эмиссия, можно использовать wlanWaveformGenerator функция, чтобы применить работу с окнами символа OFDM. Чтобы применить работу с окнами, установите WindowTransitionTime введите к положительному значению.

Когда работа с окнами применяется, функция добавляет области перехода в начальное и конечное ребро символа OFDM. Работа с окнами расширяет длину символа OFDM WindowTransitionTime (TR T).

Расширенная форма волны является оконной pointwise умножением во временном интервале, с помощью этой функции работы с окнами, заданной в разделе 17.3.2.5 из [2]:

wT(t)={sin2[π2(12+tTTR)]если t[TTR2,TTR2],1если t[TTR2,TTTR2],sin2[π2(12+tTTR)]если t[TTTR2,T+TTR2].

Функция работы с окнами применяется по начальному и конечному фрагменту символа OFDM:

  • TR/2 T к T TR/2

  • –   TR/2 T – T к   T + T TR/2

После того, как работа с окнами применяется к каждому символу, pointwise сложение используется, чтобы объединить перекрытые области между последовательными символами OFDM. А именно, запаздывающие выборки плеча в конце символа OFDM 1 (T – T TR/2 к T + T TR/2) добавляются к ведущим выборкам плеча в начале символа OFDM 2 (–TTR/2 к T TR/2).

Сглаживание перекрытия между последовательными символами OFDM этим способом сокращает внеполосные выбросы. Функция применяет работу с окнами символа OFDM между:

  • Каждый символ OFDM в пакете

  • Последовательные пакеты в форме волны, считая время простоя IdleTime между пакетами, заданными 'IdleTime' входной параметр

  • Последнее и первый пакет сгенерированной формы волны

Работа с окнами пакеты формата DMG

Для формата DMG работа с окнами применяется только к пакетам, переданным с помощью OFDM PHY, и применяется только к модулируемым символам OFDM. Для OFDM PHY только заголовок и символы данных являются модулируемым OFDM. Преамбула (STF и CEF) и учебные поля является одним модулируемым поставщиком услуг и не является оконной. Подобно внеполосной эмиссии, испытанной последовательными символами OFDM, как показано здесь, за CEF и первое учебное подполе взимается номинальная стоимость внеполосных выбросов смежного оконного символа OFDM.

Для получения дополнительной информации о как wlanWaveformGenerator работа с окнами указателей на функцию в течение пакетного времени простоя подряд и для последнего пакета формы волны, смотрите Цикличное выполнение Формы волны.

Цикличное выполнение формы волны

Чтобы произвести непрерывный входной поток, у вас может быть свой цикл кода на форме волны от последнего пакета назад к первому пакету.

Применение работы с окнами к последним и первым символам OFDM сгенерированной формы волны сглаживает переход между последним и первым пакетом формы волны. Когда 'WindowTransitionTime' вход положителен, wlanWaveformGenerator функция применяет работу с окнами символа OFDM.

Когда цикличное выполнение форма волны, последний символ packet_N сопровождается первым символом OFDM packet_1. Если форма волны имеет только один пакет, циклы формы волны от последнего символа OFDM пакета к первому символу OFDM того же пакета.

Когда к работе с окнами применяются последний символ OFDM пакета и первый OFDM следующего пакета, время простоя между пакетными факторами в примененную работу с окнами. Задайте время простоя с помощью 'IdleTime' введите к wlanWaveformGenerator функция.

  • Если 'IdleTime' 0, функция применяет работу с окнами, как это было бы для последовательных символов OFDM в пакете.

  • В противном случае, расширенный оконный фрагмент первого символа OFDM в packet_1 (от –TTR/2 до 0–TS), включен в конце формы волны. Этот расширенный оконный фрагмент применяется для цикличного выполнения при вычислении работы с окнами между последним символом OFDM packet_N и первым символом OFDM packet_1. T S является шагом расчета.

Цикличное выполнение формы волны DMG

Формы волны DMG имеют эти три сценария цикличного выполнения.

  • Поведение цикличного выполнения для формы волны, состоявшей из пакетов DMG OFDM-PHY без учебных подполей, похоже на общий случай, обрисованный в общих чертах в Цикличном выполнении Формы волны, но первый символ формы волны (и каждый пакет) не является оконным.

    • Если 'IdleTime' 0 для формы волны оконный фрагмент (от T до T + T TR/2) последнего символа данных добавляется к запуску поля STF.

    • В противном случае время простоя добавлено в конце оконного фрагмента (после T + T TR/2) последнего символа OFDM.

  • То, когда форма волны, состоявшая из пакетов DMG OFDM PHY, включает учебные подполя, никакая работа с окнами не применяется к одно поставщику услуг, модулировало символы конец формы волны. Последняя выборка последнего учебного подполя сопровождается первой выборкой STF первого пакета в форме волны.

    • Если 'IdleTime' 0 для формы волны нет никакого перекрытия.

    • В противном случае, значение 'IdleTime' задает задержку между последней выборкой packet_N и первой выборкой в packet_1.

  • Когда форма волны состоит из DMG-SC или DMG-управления пакеты PHY, конец формы волны является одним модулируемым поставщиком услуг, таким образом, никакая работа с окнами не применяется к последнему символу формы волны. Последняя выборка последнего учебного подполя сопровождается первой выборкой STF первого пакета в форме волны.

    • Если 'IdleTime' 0 для формы волны нет никакого перекрытия.

    • В противном случае, значение 'IdleTime' задает задержку между последней выборкой packet_N и первой выборкой в packet_1.

    Примечание

    То же поведение цикличного выполнения запрашивает форму волны, состоявшую из пакетов DMG OFDM-PHY с учебными подполями, пакетов DMG-SC PHY или DMG-управления пакеты PHY.

Инициализация скремблера

Инициализация скремблера, используемая на данных о передаче, следует за процессом, описанным в Станд. IEEE 802.11-2012, Раздел 18.3.5.5 и Станд. IEEE 802.11ad™-2012, Раздел 21.3.9. Заголовок и поля данных, которые следуют за полем инициализации скремблера (включая дополнительные биты данных) скремблированы XORing каждый бит с длиной 127 периодических последовательностей, сгенерированных полиномиальным S(x) = x 7+x4+1. Октеты PSDU (Модуль Эксплуатационных данных Физического уровня) помещаются в небольшой поток, и в каждом октете, бит 0 (LSB) является первыми и битными 7 (MSB), является последним. Генерацию последовательности и операцию "исключающее ИЛИ" показывают в этом рисунке:

Преобразование из целого числа вдребезги использует ориентацию лево-MSB. Для инициализации скремблера с десятичным 1, биты сопоставлены с показанными элементами.

ЭлементX7X6X5X4X3X2 X1
Битовое значение0000001

Чтобы сгенерировать поток битов, эквивалентный десятичному числу, используйте de2bi. Например, для десятичного 1:

de2bi(1,7,'left-msb')
ans =

     0     0     0     0     0     0     1

Ссылки

[1] IEEE P802.11ax™/D4.1. “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования. Поправка 1: Улучшения для Высокой эффективности WLAN”. Спроектируйте Стандарт для Информационных технологий — Телекоммуникации и обмен информацией между системами. Локальные сети и городские компьютерные сети — Конкретные требования.

[2] Станд. IEEE 802.11-2016 (Версия Станд. IEEE 802.11-2012). “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования”. Стандарт IEEE для Информационных технологий — Телекоммуникации и обмен информацией между системами. Локальные сети и городские компьютерные сети — Конкретные требования.

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

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

Введенный в R2015b

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