802.11ac Передача формирования луча

Этот пример показывает, как улучшить эффективность 802.11ac™ ссылки IEEE ® путем формирования луча передачи, когда информация о состоянии канала доступна в передатчике.

Введение

Формирование луча передачи фокусирует энергию на приемнике, чтобы улучшить ОСШ ссылки. В этой схеме передатчик называется beamformer, а приемник - beamformee. Матрица управления используется параметром формирования луча, чтобы направить энергию на объект формирования луча. Матрица управления вычисляется с использованием информации о состоянии канала, полученной посредством измерений канала. В IEEE 802.11ac [1] эти измерения получаются путем зондирования канала между beamformer и beamformee. Для звука канала beamformer отправляет NDP (Null Data Packet) в beamformee. Beamformee использует информацию канала, предоставляемую посредством звучания, чтобы вычислить матрицу обратной связи. Эта матрица подается назад на устройство формирования луча в сжатом формате. Затем блок формирования луча может использовать матрицу обратной связи, чтобы создать управляющую матрицу и передачи формы луча к блоку формирования луча. Процесс формирования матрицы управления показан на этой схеме.

В IEEE 802.11ac возможность однопользовательского beamformee не является обязательной. Поэтому передатчику с множеством антенн, возможно, придется использовать другую схему для передачи пакетов в приемник, который не может действовать как объект формирования луча. Одной из таких схем является пространственное расширение. Пространственное расширение позволяет передавать несколько пространственно-временных потоков на большем количестве передающих антенн. Использование пространственного расширения может обеспечить небольшой коэффициент усиления разнесения передачи в каналах с плоским замиранием по сравнению с непосредственным отображением пространственно-временных потоков на передающие антенны [2].

В этом примере рассматривается строение MIMO 4x2 между передатчиком и приемником с двумя пространственно-временными потоками, используемыми для передачи пакета данных. Сначала рассматривается сценарий приемника, который не способен быть лучистым. Передача выполняется с использованием пространственного расширения, и символы данных восстанавливаются, и качество сигнала измеряется. Чтобы показать преимущества формирования луча передачи, пакет данных затем передается по той же реализации канала, но на этот раз с использованием формирования луча передачи. Затем сравнивают эффективность двух схем. Эти этапы показаны на схеме ниже.

Строение формы волны

В этом примере используется строение 4x2 MIMO с 2 потоками пространственного времени.

NumTxAnts = 4;  % Number of transmit antennas
NumSTS = 2;     % Number of space-time streams
NumRxAnts = 2;  % Number of receive antennas

Форматирование строения формы волны VHT описывается с помощью объекта строения формата VHT. В этом примере форма волны сконфигурирована с пропускной способностью 20 МГц и строением MIMO, указанной выше.

cfgVHT = wlanVHTConfig;
cfgVHT.ChannelBandwidth = 'CBW20';
cfgVHT.APEPLength = 4000;
cfgVHT.NumTransmitAntennas = NumTxAnts;
cfgVHT.NumSpaceTimeStreams = NumSTS;
cfgVHT.MCS = 4; % 16-QAM, rate 3/4

Строение канала

В этом примере модель канала TGac используется с профилем задержки Model-B. Реализацией канала управляют с помощью seed, чтобы обеспечить повторяемость.

tgacChannel = wlanTGacChannel;
tgacChannel.DelayProfile = 'Model-B';
tgacChannel.ChannelBandwidth = cfgVHT.ChannelBandwidth;
tgacChannel.SampleRate = wlanSampleRate(cfgVHT);
tgacChannel.NumReceiveAntennas = NumRxAnts;
tgacChannel.NumTransmitAntennas = NumTxAnts;
tgacChannel.TransmitReceiveDistance = 100; % Meters
tgacChannel.RandomStream = 'mt19937ar with seed';
tgacChannel.Seed = 70; % Seed to allow repeatability

Шум добавляется к форме волны во временном интервале на выходе канала с степенью, noisePower.

noisePower = -37; % dBW

Настройте другие объекты и переменные для симуляции.

% Indices for extracting fields
ind = wlanFieldIndices(cfgVHT);

% AWGN channel to add noise with a specified noise power. The random
% process controlling noise generation is seeded to allow repeatability.
awgnChannel = comm.AWGNChannel;
awgnChannel.RandomStream = 'mt19937ar with seed';
awgnChannel.Seed = 5;
awgnChannel.NoiseMethod = 'Variance';
awgnChannel.Variance = 10^(noisePower/10);

% Calculate the expected noise variance after OFDM demodulation
noiseVar = vhtBeamformingNoiseVariance(noisePower,cfgVHT);

% Number of spatial streams
Nss = NumSTS/(cfgVHT.STBC+1);

% Get the number of occupied subcarriers in VHT fields
ofdmInfo = wlanVHTOFDMInfo('VHT-Data',cfgVHT);
Nst = ofdmInfo.NumTones;

% Generate a random PSDU which will be transmitted
rng(0); % Set random state for repeatability
psdu = randi([0 1],cfgVHT.PSDULength*8,1);

Передача с пространственным расширением

Сначала осуществляют передачу с использованием пространственного расширения. Этот тип передачи может быть осуществлен передатчиком с множеством антенн к приемнику, который не способен быть лучистым. The SpatialMapping свойство объекта строения формата позволяет выбирать различные схемы пространственного отображения. В этом примере используется матрица пространственного расширения, представленная в разделе 2.3.11.1.1.2 [3]. Поэтому a 'Custom' сконфигурировано пространственное отображение. Пользовательская матрица пространственного отображения используется путем назначения SpatialMappingMatrix объекта строения формата. Эта матрица описывает отображение каждой поднесущей для каждого пространственно-временного потока ко всем передающим антеннам. Поэтому размер используемой матрицы пространственного отображения Nst-by-Nsts-by-Nt. Nst количество занятых поднесущих, Nsts количество потоков в пространстве-времени и Nt - количество передающих антенн. Матрица пространственного отображения дублирует некоторые из пространственно-временных потоков, чтобы сформировать желаемое количество потоков передачи.

% Configure a spatial expansion transmission
vhtSE = cfgVHT;
vhtSE.SpatialMapping = 'Custom'; % Use custom spatial expansion matrix
vhtSE.SpatialMappingMatrix = helperSpatialExpansionMatrix(vhtSE);

% Generate waveform
tx = wlanWaveformGenerator(psdu,vhtSE);

% Pass waveform through a fading channel and add noise. Trailing zeros
% are added to allow for channel filter delay.
rx = tgacChannel([tx; zeros(15,NumTxAnts)]);
% Allow same channel realization to be used subsequently
reset(tgacChannel);
rx = awgnChannel(rx);
% Allow same noise realization to be used subsequently
reset(awgnChannel);

% Estimate symbol timing
tOff = wlanSymbolTimingEstimate(rx(ind.LSTF(1):ind.LSIG(2),:),vhtSE.ChannelBandwidth);

% Channel estimation
vhtltf = rx(tOff+(ind.VHTLTF(1):ind.VHTLTF(2)),:);
vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,vhtSE);
chanEstSE = wlanVHTLTFChannelEstimate(vhtltfDemod,vhtSE);

Принятое поле данных демодулируется и выравнивается, чтобы восстановить символы OFDM для каждого пространственного потока.

% Demodulate and equalize the data
vhtdata = rx(tOff+(ind.VHTData(1):ind.VHTData(2)),:);
[~,~,symSE] = wlanVHTDataRecover(vhtdata,chanEstSE,noiseVar,vhtSE,...
    'PilotPhaseTracking','None');

Созвездие каждого пространственного потока нанесено на график ниже.

refSym = wlanReferenceSymbols(cfgVHT); % Reference constellation
seConst = vhtBeamformingPlotConstellation(symSE,refSym, ...
    'Spatial Expansion Transmission Equalized Symbols');

Отклонение в созвездии приблизительно одинаковая для каждого пространственного потока, поскольку ОСШ примерно одинаковы. Это связано с тем, что средняя степень в канале в среднем примерно одинаковая на поток в пространстве-времени:

disp('Mean received channel power per space-time stream with spatial expansion: ')
for i = 1:NumSTS
    fprintf('  Space-time stream %d: %2.2f W\n',i, ...
        sum(mean(chanEstSE(:,i,:).*conj(chanEstSE(:,i,:)),1),3))
end
Mean received channel power per space-time stream with spatial expansion: 
  Space-time stream 1: 0.73 W
  Space-time stream 2: 0.50 W

Коробка передач с формированием луча

Когда приемник способен быть лучистым, лучевая передача может создать более высокий ОСШ по сравнению с пространственным расширением. Теперь мы покажем преимущество наличия информации о состоянии канала, доступной для создания и использования матрицы управления. Чтобы вычислить матрицу управления формированием луча, NDP передается через канал. 'Direct' пространственное отображение используется для передачи NDP, и количество пространственно-временных потоков сконфигурировано, чтобы соответствовать количеству передающих антенн. Это позволяет использовать VHT-LTF для звуковых каналов между каждой передающей антенной и приемной антенной. Вычисленная матрица формирования луча затем используется для формирования луча передачи через канал. Та же реализация канала используется для зондирования и передачи данных, и нет сжатия с обратной связью между beamformee и beamformer, поэтому формирование луча может быть рассмотрено как совершенное в этом примере.

% Configure a sounding packet
vhtSound = cfgVHT;
vhtSound.APEPLength = 0; % NDP so no data
vhtSound.NumSpaceTimeStreams = NumTxAnts;
vhtSound.SpatialMapping = 'Direct'; % Each TxAnt carries a STS

% Generate sounding waveform
soundingPSDU = [];
tx = wlanWaveformGenerator(soundingPSDU,vhtSound);

% Pass sounding waveform through the channel and add noise. Trailing zeros
% are added to allow for channel filter delay.
rx = tgacChannel([tx; zeros(15,NumTxAnts)]);
% Allow same channel realization to be used subsequently
reset(tgacChannel);
rx = awgnChannel(rx);
% Allow same noise realization to be used subsequently
reset(awgnChannel);

% Estimate symbol timing
tOff = wlanSymbolTimingEstimate(rx(ind.LSTF(1):ind.LSIG(2),:),vhtSound.ChannelBandwidth);

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

% Channel estimation
vhtLLTFInd = wlanFieldIndices(vhtSound,'VHT-LTF');
vhtltf = rx(tOff+(vhtLLTFInd(1):vhtLLTFInd(2)),:);
vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,vhtSound);
chanEstSound = wlanVHTLTFChannelEstimate(vhtltfDemod,vhtSound);

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

% Remove impact of cyclic shift from channel estimate
chanEstSound = vhtBeamformingRemoveCSD(chanEstSound, ...
    vhtSound.ChannelBandwidth,vhtSound.NumSpaceTimeStreams);

В этом примере матрица управления формированием луча вычисляется с использованием сингулярного разложения (SVD) [3]. SVD матрицы канала приводит к двум унитарным матрицам, U и Vи диагональ матрица сингулярных значений S. Первый NumSTS столбцы V В качестве матрицы управления формирования луча используются поднесущие. SVD вычисляется с помощью функции svd.

chanEstPerm = permute(chanEstSound,[3 2 1]); % permute to Nr-by-Nt-by-Nst
V = zeros(Nst,NumTxAnts,NumRxAnts);
for i = 1:Nst
    [U,S,V(i,:,:)] = svd(chanEstPerm(:,:,i),'econ');
end
steeringMatrix = V(:,:,1:NumSTS); % Nst-by-Nt-by-Nsts

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

% Configure a transmission with beamforming
vhtBF = cfgVHT;
vhtBF.SpatialMapping = 'Custom';
% Permute steering matrix to Nst-by-Nsts-by-Nt
vhtBF.SpatialMappingMatrix = permute(steeringMatrix,[1 3 2]);

% Generate beamformed data transmission
tx = wlanWaveformGenerator(psdu,vhtBF);

% Pass through the channel and add noise. Trailing zeros
% are added to allow for channel filter delay.
rx = tgacChannel([tx; zeros(15,NumTxAnts)]);
rx = awgnChannel(rx);

% Estimate symbol timing
tOff = wlanSymbolTimingEstimate(rx(ind.LSTF(1):ind.LSIG(2),:),vhtBF.ChannelBandwidth);

% Channel estimation
vhtltf = rx(tOff+(ind.VHTLTF(1):ind.VHTLTF(2)),:);
vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,vhtBF);
chanEstBF = wlanVHTLTFChannelEstimate(vhtltfDemod,vhtBF);

Принятое поле данных демодулируется и выравнивается, чтобы восстановить символы OFDM для каждого пространственного потока.

% Demodulate and equalize the data
vhtdata = rx(tOff+(ind.VHTData(1):ind.VHTData(2)),:);
[~,~,symBF] = wlanVHTDataRecover(vhtdata,chanEstBF,noiseVar,vhtBF,...
    'PilotPhaseTracking','None');

Уравненное созвездие для каждого пространственного потока нанесено ниже. Обратите внимание, что пространственный поток более высокого порядка имеет большое отклонение. Это связано с упорядоченными сингулярными значениями каналов, используемых в SVD-формировании луча.

bfConst = vhtBeamformingPlotConstellation(symBF,refSym, ...
    'Beamformed Transmission Equalized Symbols');

Это упорядоченное расположение также виден в средней степени принимаемых потоков пространства-времени. Степень принимаемого первого пространственно-временного потока больше, чем второго пространственно-временного потока. Это связано с тем, что сила принимаемого сигнала является функцией сингулярных значений канала, который SVD заказывает уменьшающимся образом.

disp('Mean received channel power per space-time stream with SVD transmit beamforming: ')
for i = 1:NumSTS
    fprintf('  Space-time stream %d: %2.2f W\n',i, ...
        sum(mean(chanEstBF(:,i,:).*conj(chanEstBF(:,i,:)),1),3))
end
Mean received channel power per space-time stream with SVD transmit beamforming: 
  Space-time stream 1: 2.08 W
  Space-time stream 2: 0.45 W

Сравнение и заключение

Рисунок ниже строит графики уравненного созвездия из пространственного расширения и лучевых передач для всех пространственных потоков. Обратите внимание на улучшенное созвездие, использующее основанное на SVD формирование передающего луча.

str = sprintf('%dx%d',NumTxAnts,NumRxAnts);
compConst = vhtBeamformingPlotConstellation([symSE(:) symBF(:)],refSym, ...
    'Beamformed Transmission Equalized Symbols', ...
    {[str ' Spatial Expansion'],[str ' Transmit Beamforming']});

Улучшение также может быть измерено через RMS и максимальную величину вектора ошибок (EVM). EVM является мерой качества демодулированного сигнала.

EVM = comm.EVM;
EVM.AveragingDimensions = [1 2]; % Average over all subcarriers and symbols
EVM.MaximumEVMOutputPort = true;
EVM.ReferenceSignalSource  = 'Estimated from reference constellation';
EVM.ReferenceConstellation = refSym;

[rmsEVMSE,maxEVMSE] = EVM(symSE); % EVM using spatial expansion
[rmsEVMBF,maxEVMBF] = EVM(symBF); % EVM using beamforming

for i = 1:Nss
    fprintf(['Spatial stream %d EVM:\n' ...
        '  Spatial expansion:    %2.1f%% RMS, %2.1f%% max\n' ...
        '  Transmit beamforming: %2.1f%% RMS, %2.1f%% max\n'], ...
        i,rmsEVMSE(i),maxEVMSE(i),rmsEVMBF(i),maxEVMBF(i));
end
Spatial stream 1 EVM:
  Spatial expansion:    9.2% RMS, 44.8% max
  Transmit beamforming: 2.0% RMS, 8.6% max
Spatial stream 2 EVM:
  Spatial expansion:    9.2% RMS, 52.3% max
  Transmit beamforming: 4.1% RMS, 12.7% max

Этот пример демонстрирует, что, если приемник способен быть лучистым, ОСШ потенциально может быть улучшен, когда передача сформирована лучом по сравнению с пространственной передачей расширения. Увеличение мощности приемника при использовании формирования луча может привести к более надежной демодуляции или, возможно, даже к схеме модуляции и кодирования более высокого порядка, которая будет использоваться для передачи.

В реалистичной рабочей симуляции эффективность формирования луча будет ухудшаться из-за задержки между вычислением информации о состоянии канала и обратной связью со стороны beamformee и квантованием с обратной связью. Для получения дополнительной информации см. раздел [2].

Приложение

Этот пример использует эти вспомогательные функции.

Избранная библиография

  1. Стандарт IEEE Std 802.11ac™-2013 IEEE на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Беспроводное управление доступом к локальной сети (MAC) и физический уровень (PHY) Спецификации - Поправка 4: Улучшения для очень высокой пропускной способности

  2. Перахия, Элдад и Роберт Стейси. Беспроводные LANS следующей генерации: 802.11n и 802.11ac. Cambridge University Press, 2013.

  3. Стандарт IEEE Std 802.11™-2012 IEEE на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Беспроводное управление доступом к среде локальной сети (MAC) и физический слой (PHY) Спецификации.