主要内容

利用天线阵列提高无线通信的信噪比和容量

无线通信系统的目标是在给定诸如辐射功率限制和运行预算等限制条件下,以尽可能高的数据速率为尽可能多的用户服务。提高数据传输速率的关键是提高信噪比(SNR)。为更多的用户服务,关键是资源的重用。在过去的几十年里,人们采用了许多算法来提高信噪比,并在时间、频率和编码空间上重用资源。本例展示了天线阵列的采用如何有助于提高无线链路的信噪比和容量。

简介

天线阵列已经成为5G无线通信系统标准配置的一部分。由于天线阵列中有多个元件,因此这种无线通信系统通常被称为多输入多输出(MIMO)系统。天线阵列可以通过探索多个发射和接收通道的冗余来帮助提高信噪比。它们还可以重用系统中的空间信息,以提高覆盖率。

对于本例,假设系统部署在60 GHz,这是5G系统考虑的频率。

C = 3e8;传播速度%Fc = 60e9;%载频Lambda = c/fc;%的波长rng (6466);

在一般不损失的情况下,将发射机放置在原点,将接收机放置在大约1.6公里外。

Txcenter = [0;0;0];Rxcenter = [1500;500;0];

在整个示例中,scatteringchanmtx函数将用于为不同的发射和接收阵列配置创建通道矩阵。该函数模拟发射和接收阵列之间的多个散射器。信号首先从发射阵列传播到所有散射体,然后从散射体反弹到接收阵列。因此,每个散射器定义了发射和接收阵列之间的信号路径,得到的信道矩阵描述了一个多路径环境。该功能适用于任何指定频带上任意大小的天线阵列。

利用阵列增益提高视距传播的信噪比

最简单的无线信道是视线(LOS)传播。这种渠道虽然简单,但在农村地区往往可以找到。在这种情况下,采用天线阵列可以提高接收机的信噪比,进而提高通信链路的误码率。

单isolos信道

在讨论MIMO系统的性能之前,用单输入单输出(SISO)通信系统建立一个基线是很有用的。单通道单通道LOS信道具有从发射机到接收机的直接路径。这样的信道可以建模为多路径信道的一种特殊情况。

[~,txang] = rangeangle(rxcenter,txcenter);[~,rxang] = rangeangle(txcenter,rxcenter);Txsipos = [0;0;0];Rxsopos = [0;0;0];G = 1;%增益的路径Sisochan = scatteringchanmtx(txsipos,rxsopos,txang,rxang,g);

使用BPSK调制,这种SISO信道的误码率(BER)可以绘制为

Nsamp = 1e6;x = randi([0 1],Nsamp,1);Ebn0_param = -10:2:10;Nsnr = number (ebn0_param);ber_siso = helperMIMOBER(sisochan,x,ebn0_param)/Nsamp;helperBERPlot (ebn0_param ber_siso);传奇(“输出”

SIMO LOS频道

在为SIMO系统建立了基线之后,本节将重点介绍单输入多输出(SIMO)系统。在这种系统中,有一个发射天线,但有多个接收天线。同样,假设发射机和接收机之间有一条直接路径。

假设接收阵列为四元半波长间隔的ULA,则SIMO信道可以建模为

Rxarray =相控。齿龈(“NumElements”4“ElementSpacing”λ/ 2);rxmopos = getElementPosition(rxarray)/lambda;Simochan = scatteringchanmtx(txsipos,rxmopos,txang,rxang,g);

在SIMO系统中,由于跨接收阵列单元的接收信号是相干的,因此可以将接收阵列转向发射机以提高信噪比。注意,这假设信号的输入方向是接收器已知的。在现实中,通常使用到达方向估计算法来获得角度。

Rxarraystv = phase。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 (:)));传奇(“输出”“极点”

误码率曲线显示了接收阵列提供的6 dB增益。

MISO LOS频道

多输入单输出(MISO)系统以类似的方式工作。在这种情况下,发射器是具有半波长间距的4元ULA。

Txarray =相控。齿龈(“NumElements”4“ElementSpacing”λ/ 2);txmipos = getElementPosition(txarray)/lambda;Misochan = scatteringchanmtx(txmipos,rxsopos,txang,rxang,g);

当发射端对接收端有一定的了解并将波束转向接收端时,瞄准线MISO系统可获得最佳信噪比。此外,为了与SISO系统进行公平的比较,两种情况下的发射机总功率应该是相同的。

Txarraystv =相控的。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(:)]);传奇(“输出”“极点”“味噌”

注意,通过预转向,MISO的性能与SIMO系统的性能相匹配,获得了6 dB的信噪比。与SIMO情况相比,它可能没有那么直观,因为总发射功率没有增加。然而,通过将单个各向同性天线替换为4单元发射阵列,可获得6 dB增益。

MIMO LOS信道

由于SIMO系统从接收阵列提供阵列增益,MISO系统从发射阵列提供阵列增益,具有LOS传播的MIMO系统可以从发射和接收阵列增益中受益。

假设一个MIMO系统有一个四元发射阵列和一个四元接收阵列。

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

为了获得最佳信噪比,发射阵列和接收阵列需要相互引导。通过这种配置,误码率曲线可以计算为

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(:)]);传奇(“输出”“极点”“再分配”

正如预期的那样,误码率曲线显示,发射阵列和接收阵列都贡献了6 dB的阵列增益,在SISO情况下,总增益为12 dB。

利用分集增益提高多径信道的信噪比

前面部分中的所有通道都是视距通道。虽然在一些无线通信系统中可以找到这样的信道,但一般无线通信都发生在多径衰落环境中。本示例的其余部分将探讨如何在多路径环境中使用数组。

多路径信道

假设信道中有10个随机放置的散射体,那么从发射机到接收机将有10条路径,如下图所示。

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

为简单起见,假设沿着所有路径传播的信号在相同的符号周期内到达,因此信道是频率平坦的。

为了模拟衰落信道的误码率曲线,信道需要随时间变化。假设我们有1000帧,每帧有10000位。所构造的基线单输入自适应多径信道误码率曲线为

Nframe = 1e3;Nbitperframe = 1e4;Nsamp = Nframe*Nbitperframe;x = randi([0 1],Nbitperframe,1);nerr = 0 (1,Nsnr);m = 1:Nframe sisompchan = scatteringchanmtx(txsipos,rxsopos,Nscat);Wr = sisompchan'/norm(sisompchan);nerr = nerr+helperMIMOBER(sisompchan,x,ebn0_param,1,wr);结束ber_sisomp = nerr/Nsamp;helperBERPlot (ebn0_param [ber_siso (:) ber_sisomp (:)));传奇(“输出洛”“输出路径”);

与LOS信道的误码率曲线相比,由于多径传播引起的衰落,随着比特能量与噪声功率谱密度比(Eb/N0)的增加,误码率下降得更慢。

SIMO多路径通道

由于在接收阵列中使用了更多的接收天线,接收端可获得更多接收信号的副本。同样,假设在接收端有一个4元素的ULA。

通过匹配信道响应,可以得到最优组合权值。这种组合方案通常被称为最大比例组合(MRC)。虽然在理论上这种方案需要了解信道,但在实践中,信道响应通常可以在接收阵列上估计出来。

nerr = 0 (1,Nsnr);m = 1:Nframe simompchan = scatteringchanmtx(txsipos,rxmopos,Nscat);Wr = simompchan'/norm(simompchan);nerr = nerr+helperMIMOBER(simompchan,x,ebn0_param,1,wr);结束ber_simomp = nerr/Nsamp;helperBERPlot (ebn0_param [ber_sisomp (:) ber_simomp (:)));传奇(“输出路径”“单多路径”);

注意,接收到的信号不再由指向特定方向的转向矢量进行加权。相反,在这种情况下,接收阵列权值由信道响应的复共轭给出。否则,多路径有可能使接收信号与发射信号失相。这假设信道响应是接收机已知的。在信道响应未知的情况下,可用导频信号估计信道响应。

从误码率曲线可以看出,与SISO系统相比,SIMO系统不仅提供了一定的信噪比增益,而且SIMO系统的误码率曲线斜率也比SISO系统的误码率曲线更陡。由斜率变化产生的增益通常被称为分集增益。

MISO多路径通道

当MISO系统中存在多路径传播时,事情变得更加有趣。首先,如果发射机知道信道,那么提高信噪比的策略类似于最大比组合。从发射阵列的每个单元辐射的信号应该被加权,以便传播的信号可以在接收机上相干地添加。

nerr = 0 (1,Nsnr);m = 1:Nframe misompchan = scatteringchanmtx(txmipos,rxsopos,Nscat);Wt = misompchan'/norm(misompchan);nerr = nerr+helperMIMOBER(misompchan,x,ebn0_param,wt,1);结束ber_misomp = nerr/Nsamp;helperBERPlot(ebn0_param,[ber_sisomp(:) ber_simomp(:) ber_misomp(:)]);传奇(“输出路径”“单多路径”“味噌多路径”);

请注意误码率曲线中显示的发射分集增益。与SIMO多路径信道情况相比,MISO多路径系统的性能不如SIMO多路径系统。这是因为接收到的信号只有一个副本,而发射功率却分散在多个路径上。在发射端放大信号以获得等效增益当然是可能的,但这会带来额外的成本。

如果发射机不知道信道,仍然有方法通过时空编码来探索多样性。例如,Alamouti码是一种著名的编码方案,可用于在信道未知时实现分集增益。鼓励感兴趣的读者探索通信工具箱™中的MIMO系统介绍示例。

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通道提供的多样性增益。假设信道是已知的,下图显示了基于误码率曲线的分集增益。

nerr = 0 (1,Nsnr);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);结束ber_mimomp = nerr/Nsamp;helperBERPlot(ebn0_param,[ber_sisomp(:) ber_simomp(:) ber_mimomp(:)]);传奇(“输出路径”“单多路径”“MIMO多路径”);

将MIMO信道的误码率曲线与SIMO系统的误码率曲线进行比较。在多路径情况下,MIMO通道提供的分集增益不一定比SIMO通道提供的分集增益更好。这是因为为了获得最佳分集增益,只使用MIMO信道中的主导模式,而信道中还有其他模式没有使用。那么有没有其他方法来利用这个渠道呢?

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 1.1049 + 0.0000i

请注意,乘积是一个对角矩阵,这意味着每个接收数组元素接收的信息只是发射数组元素的缩放版本。所以它就像原始通道中的多个正交子通道。第一个子信道对应于主要的发射和接收方向,因此在分集增益中没有损失。此外,现在也可以使用其他子信道来携带信息,如前两个子信道的误码率曲线所示。

Ntx = 4;Nrx = 4;x = randi([0 1],Nbitperframe,Ntx);nerr = 0 (Nrx,Nsnr);m = 1:Nframe mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);[wp,wc] = diagbfweights(mimompchan);nerr = nerr+helperMIMOMultistreamBER(mimompchan,x,ebn0_param,wp,wc);结束ber_mimompdiag = nerr/Nsamp;helperBERPlot (ebn0_param [ber_sisomp (:) ber_mimomp (:)...: ber_mimompdiag(1)。:“ber_mimompdiag(2)。']);传奇(“输出洛”“MIMO多路径”MIMO多径流1...MIMO多径流2);

尽管第二个流不能提供像第一个流那样高的增益,因为它使用了一个不那么占优势的子通道,但总体信息吞吐量得到了提高。因此,下一节通过信道容量而不是误码率曲线来衡量性能。

在MIMO系统中传输数据最直观的方法是在传输单元之间均匀地分配功率。然而,如果发射机知道信道,信道的容量可以进一步提高。在这种情况下,发射机可以使用注水算法来选择只在能够获得满意信噪比的子信道中发射。两种配电方案的系统容量对比如下图所示。结果表明,与均匀功率分配相比,注水算法能提供更好的系统容量。随着系统级信噪比的提高,差异逐渐减小。

C_mimo_cu = 0 (1,Nsnr);C_mimo_ck = 0 (1,Nsnr);Ntrial = 1000;m = 1:非信噪比n = 1:Ntrial mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);N0 = db2pow(-ebn0_param(m));[~,~,~,~,cu] = diagbfweights(mimompchan,1,N0,“统一”);[~,~,~,~,ck] = diagbfweights(mimompchan,1,N0,“waterfill”);C_mimo_cu(m) = C_mimo_cu(m)+cu;C_mimo_ck(m) = C_mimo_ck(m)+ck;结束结束C_mimo_cu = C_mimo_cu/Ntrial;C_mimo_ck = C_mimo_ck/Ntrial;情节(ebn0_param C_mimo_cu (:),“- *”、ebn0_param C_mimo_ck (:),”——^”);包含(“信噪比(dB)”);ylabel (的能力(bps / Hz) ');传奇(“均匀功率分配”“注水动力分配”);网格

有关空间多路复用及其检测技术的更多详细信息,请参阅通信工具箱中的空间多路复用示例。

从波束形成到预编码

最后,值得研究一下这些使用数组的不同方式是如何相互关联的。从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无线通信系统的质量。根据信道的性质,阵列既可以通过阵列增益或分集增益来提高信噪比,也可以通过空间复用来提高容量。这个例子还展示了如何使用函数scatteringchanmtx而且diagbfweights来模拟这些场景。有关MIMO系统建模的更多信息,感兴趣的读者可以参考通信工具箱中提供的示例。

参考

[1] David Tse和Pramod Viswanath,无线通信基础,剑桥,2005

[2] Arogyswami Paulraj,时空无线通信导论,剑桥,2003