主要内容

通过天线阵列提高SNR和无线通信能力

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

介绍

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

对于此示例,假设系统部署在60 GHz,这是用于5G系统的频率。

c = 3 e8;%传播速度fc = 60 e9;% 载频λ= c / fc;%的波长RNG(6466);

在没有损失的情况下,把发射机放在原点,把接收机放在大约1.6公里远的地方。

txcenter = (0, 0, 0);rxcenter = (1500; 500; 0);

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

通过阵列增益来改善SNR进行视线传播

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

输出洛杉矶通道

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

[~, txang] = rangeangle (rxcenter txcenter);[~, rxang] = rangeangle (txcenter rxcenter);txsipos = (0, 0, 0);rxsopos = (0, 0, 0);g = 1;路径的%增益Sisochan = SackeningChanmtx(TXSIPO,RXSOPOS,Txang,Rxang,G);

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

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

单洛杉矶通道

通过为SISO系统建立的基线,本节侧重于单个输入多输出(SIMO)系统。在这样的系统中,存在一个发射天线,但多个接收天线。同样,假设发射器和接收器之间存在直接路径。

假设接收阵列是一个带有半波长间距的4元件ULA,然后可以将SIMO通道建模为

rxarray =分阶段。齿龈('numElements'4“ElementSpacing”λ/ 2);rxmopos = getElementPosition (rxarray) /λ;simochan = scatteringchanmtx (txsipos rxmopos、txang rxang, g);

在SIMO系统中,由于接收阵列单元之间的接收信号是相干的,因此可以将接收阵列导向发射机以提高信噪比。注意,这是假设接收方知道信号进入的方向。在实际应用中,通常采用到达方向估计算法来获取角度。

rxarraystv =分阶段。SteeringVector (“SensorArray”,rxarray,...“PropagationSpeed”c);或者说是=连词(rxarraystv (fc rxang));ber_simo = helperMIMOBER (simochan x, ebn0_param 1 wr) / Nsamp;helperBERPlot (ebn0_param [ber_siso (:) ber_simo (:)));传奇(“输出”“极点”

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

味噌洛斯频道

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

txarray = phased.ula('numElements'4“ElementSpacing”λ/ 2);txmipos = getElementPosition (txarray) /λ;misochan = scatteringchanmtx (txmipos rxsopos、txang rxang, g);

当发射机知道接收机的信息并将波束导向接收机时,瞄准线MISO系统的信噪比最高。此外,为了与SISO系统进行公平比较,两种情况下的发射机总功率应相同。

txarraystv =分阶段。SteeringVector (“SensorArray”,txarray,...“PropagationSpeed”c);txang wt = txarraystv (fc) ';ber_miso = helperMIMOBER (misochan x, ebn0_param wt 1) / Nsamp;helperBERPlot (ebn0_param [ber_siso (:) ber_simo (:) ber_miso (:)));传奇(“输出”“极点”“味噌”

值得注意的是,在预先转向的情况下,MISO的性能与SIMO系统的性能相当,获得了6db的信噪比。与SIMO情况相比,它可能不那么直观,因为总发射功率没有增加。然而,通过用4元发射阵列代替单个各向同性天线,可以获得6db增益。

米姆洛通道

因为SIMO系统提供来自接收的阵列的阵列增益,并且MISO系统从发射阵列提供阵列增益,因此具有LOS传播的MIMO系统可以受益于发送和接收阵列增益。

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

Mimochan = SackeningChanmtx(TXMIPO,RxMopos,Txang,Rxang,G);

为了达到最好的信噪比,发射阵列和接收阵列需要相互导向。通过这种配置,误码率曲线可以计算为

txang wt = txarraystv (fc) ';或者说是=连词(rxarraystv (fc rxang));BER_MIMO = HELPERMIMOBOMER(Mimochan,X,EBN0_PARAM,WT,WR)/ NSAMP;Helperberplot(EBN0_Param,[BER_SISO(:) BER_SIMO(:) BER_MIMO(:)]);传奇(“输出”“极点”'mimo'

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

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

前一节中的所有频道都是视线频道。尽管在某些无线通信系统中发现了这样的信道,但是在多径衰落环境中发生一般无线通信。此示例的其余部分探讨了数组如何在多径环境中提供帮助。

输出多路通道

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

Nscat = 10;[~, ~, ~, scatpos] =...helperComputeRandomScatterer (txcenter rxcenter Nscat);螺杆瓣膜缺失(TXSIPO,RXSOPOS,...txcenter、rxcenter scatpos);

为简单起见,假设沿所有路径行进的信号到达在相同的符号周期内,以便信道是频率平。

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

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

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

单多路径通道

当接收阵列中使用更多的接收天线时,接收端可以获得更多的接收信号副本。同样,假设接收器上有一个4元的ULA。

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

Nsnr nerr = 0 (1);m = 1:nframe simompchan = scatteringchanmtx(txsipos,rxmopos,nscat);WR = Simompchan'/ Norm(Simompchan);NERR = NERR + HELPERMIMOBOMER(Simompchan,X,EBN0_PARAM,1,WR);结尾ber_simomp = nerr / Nsamp;helperBERPlot (ebn0_param [ber_sisomp (:) ber_simomp (:)));传奇(“输出路径”“单多路径”);

注意,接收到的信号不再由指向特定方向的方向矢量加权。相反,在这种情况下,接收阵列权值由信道响应的复共轭给出。否则,多路径可能使接收信号与发送信号相位不一致。这假设接收方知道信道响应。如果信道响应未知,导频信号可用来估计信道响应。

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

味噌多路径通道

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

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

注意BER曲线中显示的发射分集增益。与Simo Multipath频道案例相比,MISO多径系统的性能并不好。这是因为只有一个副本的接收信号,但是发射功率在多条路径之间传播。当然可以在发射侧放大信号以达到等效增益,但引入额外的成本。

如果发射机不知道信道,仍然有通过时空编码来探索分集的方法。例如,Alamouti码就是一种众所周知的编码方案,它可以在信道未知的情况下实现分集增益。鼓励有兴趣的读者探索通信工具箱™中的MIMO系统介绍示例。

MIMO多路径通道

本示例的其余部分重点介绍多路径MIMO信道。特别地,本节说明了环境中散射体的数量大于发送和接收数组中的元素数量的情况。这样的环境常被称为富散射环境。

在深入研究具体的性能度量之前,快速说明一下通道是什么样的是有帮助的。下面的辅助函数创建一个4x4 MIMO信道,其中发射器和接收器都是4元ULAs。

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

由于散射体的存在,在发射阵列和接收阵列之间有多条路径可用。每条路径由对应的散射体的单个反弹组成。

helperPlotSpatialMIMOScene (txmipos、rxmopos txcenter、rxcenter scatpos);

有两种方法可以利用MIMO信道。第一种方法是探索MIMO信道提供的分集增益。假设信道已知,下图为分集增益随误码率曲线的变化情况。

Nsnr nerr = 0 (1);m = 1:Nframe mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);[u, v] =圣言(mimompchan);wt = u(: 1)”;或者说是= v (: 1);nerr = nerr + helperMIMOBER (wt, mimompchan x, ebn0_param 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
6.0693 + 0.00000 i + 0.00000 i -0.0000 + 0.00000 i -0.0000 + 0.00000 i -0.0000 + 0.00000 i 2.4446 - 0.00000 i -0.0000 + 0.00000 i -0.0000 - 0.00000 i -0.0000 - 0.00000 - 0.00000 i 1.1049 - 0.00000 i

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

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 (wp, mimompchan x, ebn0_param wc);结尾ber_mimompdiag = nerr / Nsamp;helperBERPlot (ebn0_param [ber_sisomp (:) ber_mimomp (:)...: ber_mimompdiag(1)。:“ber_mimompdiag(2)。']);传奇(“输出洛”“MIMO多路径”“MIMO多路径流1”...“MIMO多路径流2”);

虽然第二流不能提供高于第一流的增益,但是由于它使用较少的主导子信道,但整体信息吞吐量得到了改进。因此,下一节通过频道容量而不是BER曲线测量性能。

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

Nsnr C_mimo_cu = 0 (1);Nsnr C_mimo_ck = 0 (1);Ntrial = 1000;m = 1: Nsnrn = 1:Ntrial mimompchan = scatteringchanmtx(txmipos,rxmopos,Nscat);N0 = db2pow (-ebn0_param (m));[~, ~, ~, ~,铜)= diagbfweights (mimompchan 1 N0,“统一”);[~, ~, ~, ~, ck) = diagbfweights (mimompchan 1 N0,“waterfill”);C_mimo_cu (m) = C_mimo_cu (m) +铜;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)');传奇(统一的功率分布的“Waterfill配电”);网格

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

从波束形成到预编码

最后,值得研究这些不同的方式如何彼此相关。从LOS频道开始,如前一节所述,阵列提供的好处是SNR的改进。

[~, txang] = rangeangle (rxcenter txcenter);[~, rxang] = rangeangle (txcenter rxcenter);mimochan = scatteringchanmtx (txmipos rxmopos、txang rxang, 1);txang wt = txarraystv (fc) ';或者说是=连词(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无线通信系统的质量。根据信道的性质,阵列可以通过阵列增益或分集增益来提高信噪比,也可以通过空间复用来提高容量。该示例还展示了如何使用类似的函数scatteringchanmtxdiagbfweights来模拟这些场景。有关MIMO系统建模的更多信息,感兴趣的读者可以参考通信工具箱中提供的示例。

参考

[1]谢国伟和Pramod Viswanath,无线通讯基础,剑桥,2005

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