主要内容

blkdiagbfweights

MIMO信道块对角化权值

描述

例子

wpwc) = blkdiagbfweights (chanmatns返回预编码权重,wp,以及组合权重,wc,由MATLAB中包含的信道响应矩阵导出®单元阵列chanmat

  • 您可以通过将每个通道放在chanmat细胞。chanmat{k}代表kth信道从发射机到用户。

    • 对于单个频率,将信道单元指定为矩阵。

    • 对于“倍频”,请将通道单元指定为三维数组,其中的行表示不同的频率副载波

  • 属性指定每个通道的多个子通道ns论点。子通道表示不同的数据流。ns指定每个用户频道的子频道数。将数据流乘以预编码权重,wp

预编码和组合权值将信道对角化为独立的子信道,以便于kth用户,矩阵wp*chanmat{k}*wc{k}每个都是对角的副载波

例子

wpwc) = blkdiagbfweights (chanmatnspt还指定总发射功率,pt,每副载波。

例子

全部崩溃

从由均匀线性阵列(ULA)组成的基站开始使用16个天线,两个用户分别使用8个和4个天线的接收机阵列。显示使用基于块对角化的预编码和组合权重实现空间复用,其中每个用户处的接收信号可以在不受其他用户干扰的情况下解码。为每个用户指定两个数据流。

指定发送器位置txpos和两个用户接收器位置rxpos1rxpos2.阵列元素的间距为波长的一半。

txpos=(0:15)*0.5;rxpos1=(0:7)*0.5;rxpos2=(0:3)*0.5;

使用。创建通道矩阵单元阵列scatteringchanmtx然后计算波束形成权值wpwc. 每个频道对应一个用户。假设通道有10个散射体。每个通道有两个由矢量指定的子通道ns

chanmat = {scatteringchanmtx (txpos rxpos1 10),...散射Chanmtx(txpos,rxpos2,10)};ns=[2];[wp,wc]=blkdiagbfweights(chanmat,ns);

权重将每个用户的信道矩阵对角化。

为通道1:

* wc disp (wp * chanmat {1} {1})
6.1371 - 0.00000 i - 0.00000 - 0.00000 i 0.0000 + 0.00000 i 0.0000 + 0.00000 i

通道2:

disp (wp * chanmat {2} * wc {2})
0.0000-0.0000i 0.0000-0.0000i-0.0000+0.0000i-0.0000+0.0000i 8.7543+0.0000i 0.0000-0.0000i 0.0000+0.0000i 4.4372+0.0000i

首先创建四个子通道来传输数据流:每个通道两个子通道。每个数据流包含20个 ± 1 .对输入流进行预编码,并将这些流组合起来以产生恢复的信号。

x=2*轮(兰特([20,4])-1;xp=x*wp;y1=xp*chanmat{1}+0.1*randn(20,8);y2=xp*chanmat{2}+0.1*randn(20,4);y=[y1*wc{1},y2*wc{2}];

叠加输入信号和恢复信号的干图,表明接收到的用户信号与发送的信号相同。

m = 1:4次要情节(4 1米)s =茎([x(:,米)2 *((真实(y (:, m)) > 0) - 0.5)]);(1)。lineWidth = 2; s(2).MarkerEdgeColor =“没有”;(2)。MarkerFaceColor =“r”;ylabel (“信号”)标题(sprintf ('用户%d流%d',ceil(m/2),rem(m-1,2)+1)如果m==1图例(“输入”“恢复”“位置”“最好的”结束结束xlabel(“样本”

从一个由16个天线组成的统一线性阵列(ULA)基站开始,两个用户分别拥有8个和5个天线的接收器ULA阵列。演示如何使用信道矩阵的三维阵列来处理两个子载波。然后,第一个用户的通道矩阵采用2 × 16 × 8的形式,第二个用户的通道矩阵采用2 × 16 × 5的形式。还假设每个用户有两个数据流。

指定发送器位置txpos和两个用户接收器位置rxpos1rxpos2.阵列元素的间距为波长的一半。

nr1=8;nr2=5;txpos=(0:15)*0.5;rxpos1=(0:(nr1-1))*0.5;rxpos2=(0:(nr2-1))*0.5;

使用以下命令创建通道矩阵:scatteringchanmtx把它们放到单元格数组中。要为每个接收器创建第二个子信道,请复制每个信道矩阵。假设在计算信道矩阵时采用10点散射体。

smtmp1 = scatteringchanmtx (txpos rxpos1 10);smtmp2 = scatteringchanmtx (txpos rxpos2 10);sm1 = 0 (2 16 8);sm2 = 0 (2 16 5);sm1 (1::) = smtmp1;sm1 (2::) = smtmp1;sm2 (1::) = smtmp2;sm2 (2::) = smtmp2;chanmat = {sm1, sm2};

指定每个用户有两个数据流。

ns=[2];

指定每个子载波的发射功率。

Pt = [1.0 1.5];

计算波束形成权重。

[wp, wc] = blkdiagbfweights (ns, chanmat pt);

显示第一个子载波的信道是对角化的。

ksubcr = 1;wpx =挤压(wp (ksubcr,:,:));chanmat1 =挤压(chanmat {1} (ksubcr,:,:));chanmat2 =挤压(chanmat {2} (ksubcr,:,:));wc1 =挤压(wc {1} (ksubcr,:,:));wc2 =挤压(wc {2} (ksubcr,:,:));wpx * chanmat1 * wc1
ans=4×2复杂8.2104-0.0000i-0.0000-0.0000i 0.0000+0.0000i 5.9732-0.0000i 0.0000-0.0000i 0.0000+0.0000i-0.0000-0.0000i-0.0000
wpx * chanmat2 * wc2
ans=4×2复杂0.0000-0.0000i-0.0000+0.0000i-0.0000-0.0000i-0.0000-0.0000i 8.8122+0.0000i-0.0000+0.0000i-0.0000-0.0000i 4.8186-0.0000i

将信号传播给每个用户,然后解码。生成四个随机数据流,包含-1和+1,每个用户有两列。每个流都是一个子通道。

x=2*(四舍五入(兰特([20 4]))-1;

预编码数据流。

xp=x*wpx;y1=xp*chanmat1+0.1*randn(20,8);y2=xp*chanmat2+0.1*randn(20,5);

对数据流进行解码。

y = [* wc1 y1, y2 * wc2];

叠加输入信号和恢复信号的干图,表明接收到的用户信号与发送的信号相同。

m = 1:4次要情节(4 1米)s =茎([x(:,米)2 *((真实(y (:, m)) > 0) - 0.5)]);(1)。lineWidth = 2; s(2).MarkerEdgeColor =“没有”;(2)。MarkerFaceColor =“r”;ylabel (“信号”)标题(sprintf ('用户%d流%d',ceil(m/2),rem(m-1,2)+1)如果m==1图例(“输入”“恢复”“位置”“最好的”结束结束xlabel(“样本”

输入参数

全部崩溃

信道响应矩阵,指定为Nu元胞数组中。Nu是接收数组的数目。每个单元对应于一个不同的通道,并包含一个通道响应矩阵或三维MATLAB阵列。单元格数组必须包含所有矩阵或所有数组。对于矩阵,所有矩阵的行数必须相同。对于三维数组,行数和列数必须相同。

  • 如果kth单元格是一个矩阵,这个矩阵有大小Nt-借-Nrk).Nt是发射阵列中的元素数,并且Nrk的元素数kth接收数组。

  • 如果kth单元格是一个数组,数组有大小l-借-Nt-借-Nrk).l为子载波数。Nt发射阵列中的元素个数和Nrk的元素数kth接收数组。

数据类型:双重的
复数的支持:金宝app是的

每个接收数组的数据流数量,指定为Nu-元素的正整数行向量。Nu是接收数组的数目。

数据类型:双重的

每副载波的总传输功率,用正标量或l-元素的正数向量。l为子载波数。如果pt是标量,所有子载波具有相同的发射功率。如果pt是一个矢量,每个矢量元素指定对应子载波的传输功率。功率是线性单位。

数据类型:双重的

输出参数

全部崩溃

预编码权重,作为复数值返回N-借-Nt矩阵还是复值矩阵l-借-N-借-NtMATLAB阵列。

  • 如果chanmat包含矩阵,wp是一个复数N-借-Nt矩阵N为数据通道的总数(总和(纳秒)).

  • 如果chanmat包含三维MATLAB阵列,wp是一个复数l-借-N-借-NtMATLAB数组在哪里N为数据通道的总数(总和(纳秒)).

单位是无量纲。

数据类型:双重的
复数的支持:金宝app是的

组合权重,返回为anNu元胞数组中。单位是无量纲。

  • 如果chanmat包含矩阵kth细胞内wc包含一个复数值Nrk)-借-N年代k)矩阵。N年代k)是参数的值nskth接收数组。

  • 如果chanmat包含三维MATLAB阵列kth细胞的wc包含一个复数值l-借-Nrk)-借-N年代k)MATLAB阵列。N年代k)是这个值吗kth条目的ns矢量。

数据类型:双重的
复数的支持:金宝app是的

参考文献

[1] Heath, Robert W.等,“毫米波MIMO系统信号处理技术综述”。IEEE信号处理选题期刊,第10卷,第5期。3、2016年4月,第436-53页。DOI.org (Crossref), doi: 10.1109 / JSTSP.2016.2523924。参考书目

[2] 谢博士和P.维斯瓦纳,无线通信基础,剑桥:剑桥大学出版社,2005年。

[3] 保拉杰,A。时空无线通信概论,剑桥:剑桥大学出版社,2003年。

等。多用户MIMO信道下行空间复用的零强迫方法IEEE信号处理汇刊,第52卷,第2期,2004年2月,第461-471页。DOI.org (Crossref), doi: 10.1109 / TSP.2003.821107。

扩展功能

在R2020a中引入