exponenta event banner

Улучшение SNR и пропускной способности беспроводной связи с помощью антенных решеток

Цель системы беспроводной связи состоит в том, чтобы обслуживать как можно больше пользователей с максимально возможной скоростью передачи данных при таких ограничениях, как предел мощности излучения и рабочий бюджет. Для улучшения скорости передачи данных ключом является улучшение отношения сигнал/шум (SNR). Для обслуживания большего числа пользователей необходимо повторно использовать ресурсы. За последние несколько десятилетий были приняты многочисленные алгоритмы для улучшения SNR и повторного использования ресурсов во времени, частоте и пространствах кодирования. Этот пример показывает, как использование антенных решеток может помочь улучшить SNR и пропускную способность беспроводной линии связи.

Введение

Антенные решетки стали частью стандартной конфигурации в 5G системах беспроводной связи. Поскольку в антенной решетке имеется множество элементов, такие системы беспроводной связи часто называют системами с множеством входов и множеством выходов (MIMO). Антенные решетки могут помочь улучшить SNR, исследуя избыточность по нескольким каналам передачи и приема. Они также позволяют повторно использовать пространственную информацию в системе для улучшения охвата.

Для этого примера предположим, что система развернута на частоте 60 ГГц, которая является частотой, рассматриваемой для 5G системы.

c = 3e8;        % propagation speed
fc = 60e9;      % carrier frequency
lambda = c/fc;  % wavelength

rng(6466);

Без потерь в целом поместите передатчик в начало координат и разместите приемник примерно в 1,6 км.

txcenter = [0;0;0];
rxcenter = [1500;500;0];

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

Улучшение SNR за счет усиления массива для распространения по прямой видимости

Простейшим беспроводным каналом является распространение линии визирования (LOS). Хотя такие каналы просты, их часто можно найти в сельской местности. Применение антенной решетки в такой ситуации может улучшить отношение сигнал/шум в приемнике и, в свою очередь, улучшить частоту битовых ошибок линии связи (BER).

Канал LOS SISO

Прежде чем обсуждать производительность системы MIMO, полезно построить базовую линию с системой связи SISO. Канал LOS SISO имеет прямой путь от передатчика к приемнику. Такой канал может быть смоделирован как частный случай многолучевого канала.

[~,txang] = rangeangle(rxcenter,txcenter);
[~,rxang] = rangeangle(txcenter,rxcenter);

txsipos = [0;0;0];
rxsopos = [0;0;0];

g = 1;  % gain for the path
sisochan = scatteringchanmtx(txsipos,rxsopos,txang,rxang,g);

Используя модуляцию BPSK, коэффициент битовых ошибок (BER) для такого канала SISO может быть показан как

Nsamp = 1e6;
x = randi([0 1],Nsamp,1);

ebn0_param = -10:2:10;
Nsnr = numel(ebn0_param);

ber_siso = helperMIMOBER(sisochan,x,ebn0_param)/Nsamp;
helperBERPlot(ebn0_param,ber_siso);
legend('SISO')

Канал SIMO LOS

С базовой линией, установленной для системы SISO, этот раздел посвящен системе с одним входом и несколькими выходами (SIMO). В такой системе имеется одна передающая антенна, но множество приемных антенн. Опять же, предполагается, что существует прямой путь между передатчиком и приемником.

Предположим, что приемная матрица является 4-элементной ULA с интервалом в половину длины волны, то канал SIMO может быть смоделирован как

rxarray = phased.ULA('NumElements',4,'ElementSpacing',lambda/2);
rxmopos = getElementPosition(rxarray)/lambda;

simochan = scatteringchanmtx(txsipos,rxmopos,txang,rxang,g);

В системе SIMO, поскольку принятые сигналы по элементам матрицы приема являются когерентными, можно направлять матрицу приема к передатчику для улучшения SNR. Следует отметить, что это предполагает, что входящее направление сигнала известно приемнику. В реальности угол часто получают с использованием алгоритмов оценки направления прихода.

rxarraystv = phased.SteeringVector('SensorArray',rxarray,...
    'PropagationSpeed',c);
wr = conj(rxarraystv(fc,rxang));
ber_simo = helperMIMOBER(simochan,x,ebn0_param,1,wr)/Nsamp;
helperBERPlot(ebn0_param,[ber_siso(:) ber_simo(:)]);
legend('SISO','SIMO')

Кривая BER показывает коэффициент усиления 6 дБ, обеспечиваемый матрицей приема.

Канал MISO LOS

Система с несколькими входами и одним выходом (MISO) работает аналогичным образом. В этом случае передатчик представляет собой 4-элементный ULA с интервалом в половину длины волны.

txarray = phased.ULA('NumElements',4,'ElementSpacing',lambda/2);
txmipos = getElementPosition(txarray)/lambda;

misochan = scatteringchanmtx(txmipos,rxsopos,txang,rxang,g);

Система MISO прямой видимости обеспечивает наилучшее SNR, когда передатчик знает приемник и направляет луч к приемнику. Кроме того, для справедливого сравнения с системой SISO общая мощность передатчика должна быть одинаковой в обеих ситуациях.

txarraystv = phased.SteeringVector('SensorArray',txarray,...
    'PropagationSpeed',c);
wt = txarraystv(fc,txang)';
ber_miso = helperMIMOBER(misochan,x,ebn0_param,wt,1)/Nsamp;
helperBERPlot(ebn0_param,[ber_siso(:) ber_simo(:) ber_miso(:)]);
legend('SISO','SIMO','MISO')

Следует отметить, что при предварительном рулевом управлении производительность MISO соответствует производительности системы SIMO, набирая 6 дБ в SNR. Он может быть не столь интуитивным по сравнению со случаем SIMO, поскольку общая мощность передачи не увеличивается. Однако за счет замены одной изотропной антенны на 4-элементную передающую решетку достигается усиление 6 дБ.

Канал MIMO LOS

Поскольку система SIMO обеспечивает усиление массива от принятого массива, а система MISO обеспечивает усиление массива от передающего массива, система MIMO с распространением LOS может извлечь выгоду из усиления как передающего, так и принимающего массива.

Предположим, что система MIMO имеет 4-элементный передающий массив и 4-элементный принимающий массив.

mimochan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,g);

Чтобы достичь наилучшего SNR, передающий массив и принимающий массив должны быть направлены друг к другу. При такой конфигурации кривая BER может быть вычислена как

wt = txarraystv(fc,txang)';
wr = conj(rxarraystv(fc,rxang));
ber_mimo = helperMIMOBER(mimochan,x,ebn0_param,wt,wr)/Nsamp;
helperBERPlot(ebn0_param,[ber_siso(:) ber_simo(:) ber_mimo(:)]);
legend('SISO','SIMO','MIMO')

Как и ожидалось, кривая BER показывает, что и передающий массив, и принимающий массив вносят коэффициент усиления 6 дБ, что приводит к общему коэффициенту усиления 12 дБ в случае SISO.

Улучшение SNR за счет усиления разнесения для канала многолучевого распространения

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

Многолучевой канал SISO

Предположим, что в канале имеется 10 случайно размещенных рассеивателей, затем будет 10 путей от передатчика к приемнику, как показано на следующем рисунке.

Nscat = 10;

[~,~,~,scatpos] = ...
    helperComputeRandomScatterer(txcenter,rxcenter,Nscat);
helperPlotSpatialMIMOScene(txsipos,rxsopos,...
    txcenter,rxcenter,scatpos);

Для простоты предположим, что сигналы, проходящие по всем путям, поступают в пределах одного периода символа, так что канал является плоским по частоте.

Для моделирования кривой BER для канала с замиранием канал должен изменяться с течением времени. Предположим, что у нас 1000 кадров и каждый кадр имеет 10000 битов. Базовая кривая BER многолучевого канала SISO построена как

Nframe = 1e3;
Nbitperframe = 1e4;
Nsamp = Nframe*Nbitperframe;

x = randi([0 1],Nbitperframe,1);

nerr = zeros(1,Nsnr);

for m = 1:Nframe
    sisompchan = scatteringchanmtx(txsipos,rxsopos,Nscat);
    wr = sisompchan'/norm(sisompchan);
    nerr = nerr+helperMIMOBER(sisompchan,x,ebn0_param,1,wr);
end
ber_sisomp = nerr/Nsamp;
helperBERPlot(ebn0_param,[ber_siso(:) ber_sisomp(:)]);
legend('SISO LOS','SISO Multipath');

По сравнению с кривой BER, полученной из канала LOS, BER падает намного медленнее с увеличением отношения спектральной плотности энергии на бит к мощности шума (Eb/N0) из-за замирания, вызванного многолучевым распространением.

Многолучевой канал SIMO

Поскольку в матрице приема используется больше приемных антенн, в приемнике доступно больше копий принятых сигналов. Опять же, предположим, что 4-элементный ULA в приемнике.

Оптимальные весовые коэффициенты комбинирования могут быть получены путем согласования отклика канала. Такую схему объединения часто называют объединением максимального отношения (MRC). Хотя теоретически такая схема требует знания канала, на практике отклик канала часто может быть оценен в матрице приема.

nerr = zeros(1,Nsnr);

for m = 1:Nframe
    simompchan = scatteringchanmtx(txsipos,rxmopos,Nscat);
    wr = simompchan'/norm(simompchan);
    nerr = nerr+helperMIMOBER(simompchan,x,ebn0_param,1,wr);
end
ber_simomp = nerr/Nsamp;
helperBERPlot(ebn0_param,[ber_sisomp(:) ber_simomp(:)]);
legend('SISO Multipath','SIMO Multipath');

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

Из кривой BER видно, что не только система SIMO обеспечивает некоторое усиление SNR по сравнению с системой SISO, но и наклон кривой BER системы SIMO также круче по сравнению с кривой BER системы SISO. Коэффициент усиления, возникающий в результате изменения наклона, часто называют коэффициентом усиления разнесения.

Многолучевой канал MISO

Все становится интереснее, когда в системе MISO происходит многолучевое распространение. Во-первых, если канал известен передатчику, то стратегия улучшения SNR аналогична объединению максимального отношения. Сигнал, излучаемый из каждого элемента матрицы передачи, должен быть взвешен так, чтобы распространяемый сигнал мог быть когерентно добавлен в приемнике.

nerr = zeros(1,Nsnr);

for m = 1:Nframe
    misompchan = scatteringchanmtx(txmipos,rxsopos,Nscat);
    wt = misompchan'/norm(misompchan);
    nerr = nerr+helperMIMOBER(misompchan,x,ebn0_param,wt,1);
end
ber_misomp = nerr/Nsamp;

helperBERPlot(ebn0_param,[ber_sisomp(:) ber_simomp(:) ber_misomp(:)]);
legend('SISO Multipath','SIMO Multipath','MISO Multipath');

Обратите внимание на усиление разнесения передачи, показанное на кривой BER. По сравнению со случаем многолучевого канала SIMO, производительность системы многолучевого распространения MISO не так хороша. Это происходит потому, что имеется только одна копия принятого сигнала, но мощность передачи расширяется среди множества трактов. Безусловно, можно усилить сигнал на стороне передачи для достижения эквивалентного усиления, но это приводит к дополнительным затратам.

Если канал не известен передатчику, существуют способы исследования разнесения посредством пространственно-временного кодирования. Например, код Аламути является хорошо известной схемой кодирования, которая может быть использована для достижения усиления разнесения, когда канал неизвестен. Заинтересованным читателям рекомендуется изучить пример введения в системы MIMO в Communication System Toolbox™.

Многолучевой канал MIMO

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

Перед погружением в конкретные показатели эффективности полезно получить быструю иллюстрацию того, как выглядит канал. Следующая вспомогательная функция создает канал 4x4 MIMO, где как передатчик, так и приемник являются 4-элементными ULA.

[txang,rxang,scatg,scatpos] = ...
    helperComputeRandomScatterer(txcenter,rxcenter,Nscat);
mimompchan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,scatg);

Существует множество путей, доступных между передающим массивом и принимающим массивом из-за существования рассеивателей. Каждый путь состоит из одного отскока от соответствующего рассеивателя.

helperPlotSpatialMIMOScene(txmipos,rxmopos,txcenter,rxcenter,scatpos);

Существует два способа использования преимуществ канала MIMO. Первый способ заключается в изучении усиления разнесения, обеспечиваемого каналом MIMO. Предполагая, что канал известен, следующий рисунок показывает усиление разнесения с кривой BER.

nerr = zeros(1,Nsnr);

for m = 1:Nframe
    mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);
    [u,s,v] = svd(mimompchan);
    wt = u(:,1)';
    wr = v(:,1);
    nerr = nerr+helperMIMOBER(mimompchan,x,ebn0_param,wt,wr);
end
ber_mimomp = nerr/Nsamp;

helperBERPlot(ebn0_param,[ber_sisomp(:) ber_simomp(:) ber_mimomp(:)]);
legend('SISO Multipath','SIMO Multipath','MIMO Multipath');

Сравните кривую BER из канала MIMO с кривой BER, полученной из системы SIMO. В случае многолучевого распространения усиление разнесения от канала MIMO не обязательно лучше, чем усиление разнесения, обеспечиваемое каналом SIMO. Это объясняется тем, что для получения наилучшего усиления разнесения используется только доминирующий режим в канале MIMO, но в канале имеются другие режимы, которые не используются. Так есть ли альтернативный способ использовать канал?

Повышение пропускной способности за счет пространственного мультиплексирования для многолучевого канала MIMO

Ответ на предыдущий вопрос лежит в схеме, называемой пространственным мультиплексированием. Идея пространственного мультиплексирования заключается в том, что многолучевой канал MIMO с богатой средой рассеивателя может посылать несколько потоков данных одновременно по каналу. Например, матрица канала канала 4x4 MIMO становится полным рангом из-за рассеивателей. Это означает, что можно отправить до 4 потоков данных одновременно. Цель пространственного мультиплексирования заключается не в увеличении SNR, а в увеличении пропускной способности информации.

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

[wp,wc] = diagbfweights(mimompchan);

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

wp*mimompchan*wc
ans =

  10.3543 + 0.0000i  -0.0000 + 0.0000i   0.0000 - 0.0000i  -0.0000 - 0.0000i
   0.0000 + 0.0000i   6.0693 + 0.0000i   0.0000 + 0.0000i   0.0000 - 0.0000i
  -0.0000 + 0.0000i  -0.0000 + 0.0000i   2.4446 + 0.0000i  -0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   1.1049 - 0.0000i

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

Ntx = 4;
Nrx = 4;

x = randi([0 1],Nbitperframe,Ntx);

nerr = zeros(Nrx,Nsnr);

for m = 1:Nframe
    mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);
    [wp,wc] = diagbfweights(mimompchan);
    nerr = nerr+helperMIMOMultistreamBER(mimompchan,x,ebn0_param,wp,wc);
end
ber_mimompdiag = nerr/Nsamp;
helperBERPlot(ebn0_param,[ber_sisomp(:) ber_mimomp(:)...
    ber_mimompdiag(1,:).' ber_mimompdiag(2,:).']);
legend('SISO LOS','MIMO Multipath','MIMO Multipath Stream 1',...
    'MIMO Multipath Stream 2');

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

Наиболее интуитивным способом передачи данных в системе MIMO является равномерное разделение мощности между элементами передачи. Однако пропускная способность канала может быть дополнительно улучшена, если канал известен в передатчике. В этом случае передатчик может использовать алгоритм заполнения водой, чтобы сделать выбор передачи только в подканалах, где может быть получено удовлетворяющее SNR. На следующем рисунке показано сравнение пропускной способности системы между двумя схемами распределения питания. Результат подтверждает, что алгоритм водосброса обеспечивает лучшую пропускную способность системы по сравнению с равномерным распределением мощности. Разница уменьшается при улучшении SNR на уровне системы.

C_mimo_cu = zeros(1,Nsnr);
C_mimo_ck = zeros(1,Nsnr);
Ntrial = 1000;
for m = 1:Nsnr
    for n = 1:Ntrial
        mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);
        N0 = db2pow(-ebn0_param(m));
        [~,~,~,~,cu] = diagbfweights(mimompchan,1,N0,'uniform');
        [~,~,~,~,ck] = diagbfweights(mimompchan,1,N0,'waterfill');
        C_mimo_cu(m) = C_mimo_cu(m)+cu;
        C_mimo_ck(m) = C_mimo_ck(m)+ck;
    end
end
C_mimo_cu = C_mimo_cu/Ntrial;
C_mimo_ck = C_mimo_ck/Ntrial;

plot(ebn0_param,C_mimo_cu(:),'-*',ebn0_param,C_mimo_ck(:),'-^');
xlabel('SNR (dB)');
ylabel('Capacity (bps/Hz)');
legend('Uniform Power Distribution','Waterfill Power Distribution');
grid on;

Дополнительные сведения о пространственном мультиплексировании и методах его обнаружения см. в примере пространственного мультиплексирования на панели инструментов системы связи.

От формирования луча к предварительному кодированию

Наконец, стоит посмотреть, как эти различные способы использования массивов связаны друг с другом. Начиная с канала LOS, как упоминалось в предыдущих разделах, преимуществом, обеспечиваемым массивом, является улучшение SNR.

[~,txang] = rangeangle(rxcenter,txcenter);
[~,rxang] = rangeangle(txcenter,rxcenter);

mimochan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,1);

wt = txarraystv(fc,txang)';
wr = conj(rxarraystv(fc,rxang));

helperPlotSpatialMIMOScene(txmipos,rxmopos,txcenter,rxcenter,...
    (txcenter+rxcenter)/2,wt,wr)

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

[txang,rxang,scatg,scatpos] = ...
    helperComputeRandomScatterer(txcenter,rxcenter,Nscat);
mimompchan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,scatg);

[wp,wc] = diagbfweights(mimompchan);
helperPlotSpatialMIMOScene(txmipos,rxmopos,txcenter,rxcenter,...
    scatpos,wp(1,:),wc(:,1))

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

[txang,rxang,scatg,scatpos] = ...
    helperComputeRandomScatterer(txcenter,rxcenter,1);
mimompchan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,scatg);

[wp,wc] = diagbfweights(mimompchan);
helperPlotSpatialMIMOScene(txmipos,rxmopos,txcenter,rxcenter,...
    scatpos,wp(1,:),wc(:,1))

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

Резюме

В этом примере поясняется, как можно использовать обработку массива для улучшения качества системы беспроводной связи MIMO. В зависимости от характера канала массивы могут использоваться либо для улучшения SNR посредством усиления матрицы или усиления разнесения, либо для улучшения пропускной способности посредством пространственного мультиплексирования. В примере также показано, как использовать такие функции, как scatteringchanmtx и diagbfweights для моделирования этих сценариев. Для получения дополнительной информации о моделировании систем MIMO, заинтересованные читатели могут обратиться к примерам, приведенным в Communications Toolbox™.

Ссылка

[1] Дэвид Це и Прамод Висванат, Основы беспроводной связи, Кембридж, 2005

[2] Арогисвами Паулрадж, Введение в беспроводную связь в пространстве-времени, Кембридж, 2003