主要内容

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

无线通信系统的目标是为具有诸如辐射功率限制和操作预算的约束的最高可能数据速率的用户提供服务。为了提高数据速率,关键是改善信噪比(SNR)的信号。要满足更多用户,关键是重用资源。在过去的几十年中,已经采用了许多算法来改进SNR并在时间,频率和编码空间中重复使用资源。此示例说明了天线阵列的采用如何帮助改善无线链路的SNR和容量。

介绍

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

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

c = 3 e8;%传播速度FC = 60E9;%载波频率lambda = c / fc;%的波长rng (6466);

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

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

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

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

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

Siso Los Channel.

在讨论MIMO系统的性能之前,用单输入单输出(SISO)通信系统建立一个基线是有用的。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 = 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 LOS频道

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

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

rxarray = phased.ula(“NumElements”4“ElementSpacing”λ/ 2);rxmopos = getElementPosition (rxarray) /λ;simochan = scatteringchanmtx (txsipos rxmopos、txang rxang, g);

在SIMO系统中,因为接收阵列元件的接收信号是连贯的,所以可以使接收阵列转向发射器以改善SNR。注意,这假设接收器已知信号传入方向。实际上,通常使用到达估计算法方向获得该角度。

rxarraystv =分阶段。SteeringVector (“SensorArray”rxarray,...'繁殖',C);或者说是=连词(rxarraystv (fc rxang));BER_SIMO = HELPERMIMOBOMER(SIMOCHAN,X,EBN0_PARAM,1,WR)/ NSAMP;Helperberplot(EBN0_PARAM,[BER_SISO(:) BER_SIMO(:)]);传奇('siso'“极点”

BER曲线显示由接收阵列提供的6 dB的增益。

味噌洛杉矶通道

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

txarray =分阶段。齿龈(“NumElements”4“ElementSpacing”λ/ 2);txmipos = getElementPosition (txarray) /λ;misochan = scatteringchanmtx (txmipos rxsopos、txang rxang, g);

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

txarraystv = phased.steringvector(“SensorArray”txarray,...'繁殖',C);txang wt = txarraystv (fc) ';BER_MISO = HELPERMIMOBOMER(MISOCHAN,X,EBN0_PARAM,WT,1)/ NSAMP;Helperberplot(EBN0_Param,[BER_SISO(:) BER_SIMO(:) BER_MISO(:)]);传奇('siso'“极点”“味噌”

请注意,通过预转向,MISO的性能与SIMO系统的性能相匹配,SNR中获得6 dB的性能。与SIMO案例相比,它可能不会是直观的,因为总发射功率不会增加。然而,通过用4元件发射阵列替换单个各向同性天线,实现了6dB的增益。

米姆洛通道

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

假设具有4元件发射阵列和4元件接收阵列的MIMO系统。

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

为了实现最佳SNR,需要向彼此转向传输阵列和接收阵列。利用这种配置,可以计算BER曲线

txang wt = txarraystv (fc) ';或者说是=连词(rxarraystv (fc rxang));ber_mimo = helperMIMOBER (wt, mimochan x, ebn0_param wr) / Nsamp;helperBERPlot (ebn0_param [ber_siso (:) ber_simo (:) ber_mimo (:)));传奇('siso'“极点”“再分配”

如预期的那样,BER曲线表明,发射阵列和接收阵列都有助于6 dB阵列增益,从而在SISO案例上产生12 dB的总增益。

通过多径频道的多样性增益来改善SNR

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

输出多路通道

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

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

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

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

nframe = 1e3;nbitperframe = 1E4;nsamp = nframe * nbitperframe;X = RANDI([0 1],NbitPerframe,1);NERR = Zeros(1,NSNR);m = 1:nframe sisompchan = scatteringchanmtx(txsipos,rxsopos,nscat);WR = SISOMPCHAN'/ NORM(SISOMPCHAN);NERR = NERR + HERPERMIMOMER(SISOMPCHAN,X,EBN0_PARAM,1,WR);结束BER_SISOMP = NERR / NSAMP;Helperberplot(EBN0_PARAM,[BER_SISO(:) BER_SISOMP(:)]);传奇('siso los''siso multipath');

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

Simo Multipath Channel.

随着在接收阵列中使用的更多接收天线,接收器可在接收信号中获得更多副本。同样,在接收器处假设一个4元素ULA。

可以通过匹配信道响应来导出最佳组合权重。这种组合方案通常被称为组合(MRC)的最大比率。尽管理论上这种方案需要了解信道的知识,但在实践中,通常可以在接收阵列处估计信道响应。

NERR = Zeros(1,NSNR);m = 1:Nframe simompchan = scatteringchanmtx(txsipos,rxmopos,Nscat);或者说是= simompchan ' /规范(simompchan);nerr = nerr + helperMIMOBER (simompchan x, ebn0_param 1 wr);结束BER_SIMOMP = NERR / NSAMP;Helperberplot(EBN0_PARAM,[BER_SISOMP(:) BER_SIMOMP(:)]);传奇('siso multipath''simo multipath');

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

从BER曲线可以看出,与SISO系统相比,SIMO系统不仅提供了一些SNR增益,而且SIMO系统的BER曲线的斜率与SISO系统的BER曲线相比也是陡峭的。坡度变化导致的增益通常被称为分集增益。

味噌多路径通道

当MISO系统中有多径传播时,事情会变得更有趣。首先,如果发射机已知通道,则改善SNR的策略类似于最大比率组合。应加权从发射阵列的每个元素辐射的信号,使得可以在接收器处连贯添加传播的信号。

NERR = Zeros(1,NSNR);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 (:)));传奇('siso multipath''simo multipath'“味噌多路径”);

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

如果发射机未知通道,则通过空间时间编码仍有方法探索分集。例如,Alamouti代码是众所周知的编码方案,当频道未知时,可用于实现分集增益。鼓励感兴趣的读者探讨通信系统工具箱™中的MIMO系统示例的介绍。

MIMO多路径通道

本例的其余部分主要讨论多径MIMO信道。特别是,本节说明了环境中的散射体数量大于发射和接收阵列中的元素数量的情况。这种环境常被称为富散射环境。

在潜入特定的性能措施之前,获得频道的快速说明是有帮助的。以下辅助功能创建一个4x4 MIMO通道,发送器和接收器都是4元ulas。

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

由于散射体的存在,发射阵列和接收阵列之间存在多条可用路径。每条路径由一个从相应的散射体反弹而成。

螺杆悬浮型普通烯(TXMIPOS,RXMOPOS,TXCENTER,RXCENTER,SCATPO);

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

NERR = Zeros(1,NSNR);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 (:)));传奇('siso multipath''simo multipath''mimo multipath');

将BER曲线从MIMO通道与SIMO系统获得的BER曲线进行比较。在多路径情况下,MIMO信道的分集增益不一定优于SIMO信道提供的分集增益。这是因为为了获得最佳分集增益,只使用MIMO信道中的主导模式尚未使用的频道中的其他模式。那么有替代方法可以利用频道吗?

通过空间多路复用提高MIMO多径信道的容量

上一个问题的答案在于一个称为空间复用的方案。空间复用背后的想法是具有丰富散射体环境的MIMO多径通道可以在通道上同时发送多个数据流。例如,由于散射体,4x4 MIMO信道的信道矩阵变为全等级。这意味着可以一次发送多达4个数据流。空间多路复用的目标少于增加SNR,但更多关于提高信息吞吐量的更多信息。

空间复用的思想是将信道矩阵分离为多个模式,使从发射阵列中不同元素发送的数据流可以从接收的信号中独立恢复。为了实现这一点,数据流在传输前被预先编码,然后在接收后被合并。预编码和组合权值由信道矩阵计算得到

[WP,WC] = Diagbfweights(MIMIMPCHAN);

要了解为什么合并预编码和合并权值可以帮助同时传输多个数据流,请检查权值和信道矩阵的乘积。

WP * MIMOMPCHAN * WC
Ans = 10.3543 - 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 0.00000 + 0.0000i 2.4446 - 0.0000i -0.0000 + 0.0000i - 0.0000i 0.0000 - 0.0000i 0.00000 - 0.0000i 1.1049 - 0.0000i

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

NTX = 4;nrx = 4;X = RANDI([0 1],NbitPerframe,NTX);NERR = Zeros(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_MIMIMPDIAG(1,:)。'BER_MIMIMPDIAG(2,:)。']);传奇('siso los''mimo multipath'“MIMO多径流1”...'MIMO Multipath Stream 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)+ cu;c_mimo_ck(m)= c_mimo_ck(m)+ ck;结束结束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(的能力(bps / Hz) ');传奇(统一的功率分布的'水利配电');网格;

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

从波束形成到预编码

最后,有必要看看这些使用数组的不同方式是如何相互关联的。正如前面提到的,从LOS通道开始,阵列提供的好处是提高了信噪比。

[~, 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] David TSE和Pramod Viswanath,无线通信基础知识,剑桥,2005年

[2] arogyswami paulraj,时空无线通信简介,剑桥,2003