В этом примере показано, как улучшить рабочие характеристики линии связи IEEE ® 802.11ac™ путем формирования диаграммы направленности передачи, когда информация о состоянии канала доступна в передатчике.
Формирование луча передачи фокусирует энергию в направлении приемника для улучшения SNR линии связи. В этой схеме передатчик называется формирователем луча, а приемник - формирователем луча. Матрица управления используется формирователем луча для направления энергии на формирователь луча. Матрица управления вычисляется с использованием информации о состоянии канала, полученной посредством измерений канала. В IEEE 802.11ac [1] эти измерения получаются путем зондирования канала между формирователем луча и формирователем луча. Для звучания канала формирователь луча посылает NDP (нулевой пакет данных) в формирователь луча. Формирователь луча использует канальную информацию, предоставляемую путем зондирования, для вычисления матрицы обратной связи. Эта матрица подается обратно в формирователь луча в сжатом формате. Формирователь луча может затем использовать матрицу обратной связи для создания матрицы управления и передач формы луча в формирователь луча. Процесс формирования матрицы рулевого управления показан на этой диаграмме.

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

В этом примере используется конфигурация 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. Реализация канала управляется начальным числом для обеспечения повторяемости.
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);
Сначала осуществляют передачу с использованием пространственного расширения. Этот тип передачи может быть осуществлен мультиантенным передатчиком к приемнику, который не способен быть формирователем луча. 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');

Дисперсия в созвездии приблизительно одинакова для каждого пространственного потока, так как SNR приблизительно одинаковы. Это происходит потому, что средняя мощность в канале в среднем приблизительно одинакова на поток пространства-времени:
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
Когда приемник способен быть формирователем луча, передача с формированием луча может создавать более высокое SNR по сравнению с пространственным расширением. Теперь мы покажем преимущество наличия информации о состоянии канала для создания и использования матрицы управления. Для вычисления матрицы управления формированием луча NDP пропускается через канал. 'Direct' пространственное отображение используется для передачи NDP, и количество пространственно-временных потоков конфигурируется так, чтобы соответствовать количеству передающих антенн. Это позволяет использовать VHT-LTF для звучания каналов между каждой из передающих антенн и приемных антенн. Вычисленная матрица формирования луча затем используется для формирования луча передачи через канал. Одна и та же реализация канала используется для зондирования и передачи данных, и нет сжатия обратной связи между формирователем луча и формирователем луча, поэтому формирование луча можно рассматривать как совершенное в этом примере.
% 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']});

Улучшение также может быть измерено посредством среднеквадратичного значения и максимальной величины вектора ошибки (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
Этот пример демонстрирует, что если приемник способен быть формирователем луча, то SNR потенциально может быть улучшено, когда формируется луч по сравнению с передачей с пространственным расширением. Увеличение принимаемой мощности при использовании формирования луча может привести к более надежной демодуляции или, возможно, даже к схеме модуляции и кодирования более высокого порядка, которая должна использоваться для передачи.
При реалистичном рабочем моделировании эффективность формирования луча будет ухудшаться из-за задержки между вычислением информации о состоянии канала и обратной связью с помощью формирователя луча и квантования обратной связи. Для получения дополнительной информации см. [2].
В этом примере используются эти вспомогательные функции.
Стандарт IEEE Std 802.11ac™-2013 IEEE для информационных технологий - Связь и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 4: Улучшения для очень высокой пропускной способности для работы в диапазонах ниже 6 GY
Перахия, Эльдад и Роберт Стейси. Беспроводные LANS следующего поколения: 802.11n и 802.11ac. Издательство Кембриджского университета, 2013 год.
Стандарт IEEE Std 802.11™-2012 IEEE для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY).