Цель системы радиосвязи состоит в том, чтобы служить многими пользователями с максимально возможной скоростью передачи данных, данной ограничения, такие как предел степени излучения и текущий бюджет. Чтобы улучшить скорость передачи данных, ключ должен улучшить сигнал до шумового отношения (ОСШ). Чтобы служить большему количеству пользователей, ключ должен снова использовать ресурсы. За прошлые несколько десятилетий многочисленные алгоритмы были приняты, чтобы улучшить ОСШ и снова использовать ресурсы вовремя, частоту и пробелы кодирования. В этом примере показано, как принятие антенных решеток может помочь улучшить ОСШ и способность беспроводной ссылки.
Антенные решетки стали частью стандартной настройки в системах радиосвязи 5G. Поскольку существует несколько элементов в антенной решетке, такие системы радиосвязей часто упоминаются как системы нескольких вводят несколько выходов (MIMO). Антенные решетки могут помочь улучшиться, ОСШ путем исследования сокращения через несколько передают и получают каналы. Они также позволяют снова использовать пространственную информацию в системе, чтобы улучшить покрытие.
В данном примере примите, что система развертывается на уровне 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
функция будет использоваться, чтобы создать матрицу канала для различной передачи и получить конфигурации массивов. Функция симулирует несколько рассеивателей между передачей, и получите массивы. Перемещения сигнала от массива передачи до всех рассеивателей сначала и затем возвращаются от рассеивателей и прибывают в получить массив. Поэтому каждый рассеиватель задает путь прохождения сигнала между передачей и получить массивом, и получившаяся матрица канала описывает лучевую среду. Функция работает с антенными решетками произвольного размера в любом обозначенном диапазоне частот.
Самый простой беспроводной канал является распространением угла обзора (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')
Канал LOS SIMO
С базовой линией, установленной для системы SISO, этот раздел фокусируется на системе одного входа нескольких выходов (SIMO). В такой системе существует одна передающая антенна, но несколько получают антенны. Снова, это принято, что существует прямой путь между передатчиком и приемником.
Примите, что получить массив является ULA с 4 элементами с интервалом полудлины волны, затем канал SIMO может быть смоделирован как
rxarray = phased.ULA('NumElements',4,'ElementSpacing',lambda/2); rxmopos = getElementPosition(rxarray)/lambda; simochan = scatteringchanmtx(txsipos,rxmopos,txang,rxang,g);
В системе SIMO, потому что полученные сигналы через получают элементы массива, являются когерентными, возможно регулировать получить массив к передатчику, чтобы улучшить ОСШ. Обратите внимание на то, что это принимает, что входящее направление сигнала известно приемнику. В действительности угол часто получается с помощью направления алгоритмов оценки прибытия.
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 дБ, обеспеченных получить массивом.
Канал LOS MISO
Система нескольких вводят один выход (MISO) работает похожим способом. В этом случае передатчик является ULA с 4 элементами с интервалом полудлины волны.
txarray = phased.ULA('NumElements',4,'ElementSpacing',lambda/2); txmipos = getElementPosition(txarray)/lambda; misochan = scatteringchanmtx(txmipos,rxsopos,txang,rxang,g);
Система MISO угла обзора достигает лучшего ОСШ, когда передатчик имеет знание приемника и регулирует луч к приемнику. Кроме того, чтобы сделать справедливое сравнение с системой 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 дБ в ОСШ. Это не может быть столь же интуитивно по сравнению со случаем SIMO, потому что общая степень передачи не увеличивается. Однако заменяя одну изотропную антенну на массив передачи с 4 элементами, 6 усилений дБ достигаются.
Канал LOS MIMO
Поскольку система SIMO обеспечивает усиление массивов от полученного массива, и система MISO обеспечивает усиление массивов от массива передачи, система MIMO с распространением LOS может принести пользу от обоих передаче и получить усиление массивов.
Примите, что система MIMO с массивом передачи с 4 элементами и с 4 элементами получает массив.
mimochan = scatteringchanmtx(txmipos,rxmopos,txang,rxang,g);
Чтобы достигнуть лучшего ОСШ, массив передачи и получить массив должны управляться друг к другу. С этой настройкой кривая 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.
Все каналы в предыдущих разделах являются каналами угла обзора. Несмотря на то, что такие каналы найдены в некоторых системах радиосвязи, в общих радиосвязях происходит в многопутевых исчезающих средах. Остальная часть этого примера исследует, как использование массивов может помочь в лучевой среде.
SISO многопутевой канал
Примите, что существует 10 случайным образом помещенных рассеивателей в канале, затем будет 10 путей от передатчика к приемнику, как проиллюстрировано в следующем рисунке.
Nscat = 10; [~,~,~,scatpos] = ... helperComputeRandomScatterer(txcenter,rxcenter,Nscat); helperPlotSpatialMIMOScene(txsipos,rxsopos,... txcenter,rxcenter,scatpos);
Для простоты примите, что сигналы, перемещающиеся вдоль всех путей, прибывают в том же символьном периоде, таким образом, канал является плоской частотой.
Чтобы симулировать кривую BER для исчезающего канала, канал должен изменяться в зависимости от времени. Примите, что у нас есть 1 000 систем координат, и каждая система координат имеет 10 000 битов. Базовая SISO многопутевая кривая BER канала создается как
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 многопутевой канал
Когда больше получает антенны, используются в получить массиве, больше копий полученных сигналов доступно в приемнике. Снова, примите ULA с 4 элементами в приемнике.
Оптимальные веса объединения могут быть выведены путем соответствия с ответом канала. Такую схему объединения часто называют как максимальное объединение отношения (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 обеспечивает некоторые усиления ОСШ по сравнению с системой SISO, но наклон кривой BER системы SIMO также более крут по сравнению с кривой BER системы SISO. Усиление следовало из наклонного изменения, часто упоминается как усиление разнообразия.
MISO многопутевой канал
Вещи становятся более интересными, когда существует многопутевое распространение в системе MISO. Во-первых, если канал известен передатчику, то стратегия улучшить ОСШ похожа на максимальное объединение отношения. Сигнал, излученный от каждого элемента массива передачи, должен быть взвешен так, чтобы распространенный сигнал мог быть добавлен когерентно в приемнике.
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 многопутевая система не так хороша. Это вызвано тем, что существует только одна копия полученного сигнала все же, степень передачи распространена среди разнообразных путей. Конечно, возможно усилить сигнал в стороне передачи, чтобы достигнуть эквивалентного усиления, но это вводит дополнительную стоимость.
Если канал не известен передатчику, существуют все еще способы исследовать разнообразие через время пробела, кодируя. Например, код Alamouti является известной схемой кодирования, которая может использоваться, чтобы достигнуть усиления разнообразия, когда канал не известен. Заинтересованные читатели поощряются исследовать Введение в Системный пример MIMO в Communications Toolbox™.
MIMO многопутевой канал
Остальная часть этого примера фокусируется на многопутевом канале MIMO. В частности, этот раздел иллюстрирует случай, где количество рассеивателей в среде больше, чем число элементов в передаче, и получите массивы. Такую среду часто называют как богатая среда рассеивания.
Прежде, чем погрузиться в меры по реальному исполнению, полезно получить быстрый рисунок того, на что похож канал. Следующая функция помощника создает 4x4 канал MIMO, где и передатчик и приемник являются ULAs с 4 элементами.
[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 многопутевой канал с богатой средой рассеивателя может отправить несколько потоков данных одновременно через канал. Например, матрица канала 4x4 канал MIMO становится полным рангом из-за рассеивателей. Это означает, что возможно отправить целых 4 потока данных целиком. Цель пространственного мультиплексирования меньше об увеличении ОСШ, но больше об увеличении информационной пропускной способности.
Идея пространственного мультиплексирования состоит в том, чтобы разделить матрицу канала нескольким режим так, чтобы поток данных, отправленный от различных элементов в массиве передачи, мог быть независимо восстановлен с полученного сигнала. Чтобы достигнуть этого, поток данных предварительно закодирован перед передачей и затем объединен после приема. Предварительное кодирование и объединение весов могут быть вычислены из матрицы канала
[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 состоит в том, чтобы однородно разделить степень среди элементов передачи. Однако способность канала может быть далее улучшена, если канал известен в передатчике. В этом случае передатчик мог использовать waterfill алгоритм, чтобы сделать выбор передачи только в подканалах, где удовлетворяющий ОСШ может быть получен. Следующий рисунок показывает сравнение системной способности между двумя схемами распределения электроэнергии. Результат подтверждает, что waterfill алгоритм обеспечивает лучшую системную способность по сравнению с универсальным распределением электроэнергии. Различие становится меньшим, когда ОСШ уровня системы улучшается.
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;
Для получения дополнительной информации о пространственном мультиплексировании и его методах обнаружения, обратитесь к Пространственному примеру Мультиплексирования в Communications Toolbox.
Наконец, это стоит посмотреть на то, как эти различные способы использовать массивы относятся друг к другу. Начиная с канала LOS, как упомянуто в предыдущих разделах, преимущество, предоставленное массивом, является улучшением ОСШ.
[~,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)
Ясно из эскиза, что в этом случае, передача и получают форму весов два луча, которые указывают друг другу. Таким образом усиление массивов достигается beamforming методом. С другой стороны, при попытке создать подобный эскиз для канала 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))
Обратите внимание на то, что фигура только изображает шаблон для потока First Data, но тем не менее ясно, что шаблон больше обязательно имеет доминирующий основной луч. Однако, если количество рассеивателей сокращено одному, то сцена становится
[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, или более точно, один случай рассеивателя, может быть рассмотрен как особый случай предварительного кодирования. Когда существует только один путь, доступный передаче, и получите массивы, предварительное кодирование ухудшается к beamforming схеме.
Этот пример объясняет, как обработка матриц может использоваться, чтобы улучшить качество системы радиосвязи MIMO. В зависимости от природы канала массивы могут использоваться, чтобы или улучшить ОСШ через усиление массивов или усиление разнообразия, или улучшить способность через пространственное мультиплексирование. Пример также показывает, как использовать функции как scatteringchanmtx
и diagbfweights
симулировать те сценарии. Для получения дополнительной информации о системном моделировании MIMO заинтересованные читатели могут обратиться к примерам, обеспеченным в Communications Toolbox.
[1] Дэвид Се и Прэмод Висванэт, основные принципы радиосвязей, Кембриджа, 2005
[2] Arogyswami Paulraj, введение в пространственно-временную радиосвязь, Кембридж, 2003