文档

spheredecoder系统对象

使用球体解码器解码输入

描述

球面解码器系统对象™解码发送的符号NT天线采用球面译码算法。

使用球体解码器解码输入符号:

  1. 定义和设置球体解码器对象。看到建设

  2. 调用一步的性质来解码输入符号comm.SphereDecoder.的行为一步特定于工具箱中的每个对象。

请注意

从R2016b开始,而不是使用一步方法来执行System对象定义的操作,您可以调用带有参数的对象,就像调用函数一样。例如,Y = step(obj,x)而且Y = obj(x)执行等效操作。

建设

H = com . spheredecoder创建一个System对象,H.该对象使用球体解码算法为MIMO信道上接收的一组符号寻找最大似然解NT发射天线和NR接收天线。

H = com . spheredecoder (的名字价值创建一个球体解码器对象,H,并将指定的属性名称设置为指定的值。名称必须出现在单引号(")内。您可以以任意顺序指定多个名称-值对参数,如Name1、Value1、…、NameN、ValueN。

H = com . spheredecoder (星座BITTABLE创建一个球体解码器对象,H,并将Constellation属性设置为星座,以及BitTable属性设置为BITTABLE

属性

星座

每个发射天线的信号星座

将星座指定为一个复列向量,其中包含传输比特映射到的星座点。默认设置是一个平均功率为的QPSK星座1.向量的长度必须是2的幂。该对象假设每个发射天线使用相同的星座。

BitTable

用于每个星座点的位映射。

对象的符号指定位映射星座属性指定为数值矩阵。默认为[0 0;0 1;1 0;1 (1),与默认值匹配星座属性值。

矩阵的大小必须是[ConstellationLength bitsPerSymbol]ConstellationLength对象的长度星座财产。bitsPerSymbol表示每个符号编码的比特数。

InitialRadius

解码算法的初始搜索半径。

指定解码算法的初始搜索半径|ZF的解决方案.默认为

当您将此属性设置为,对象将初始搜索半径设置为

当您将此属性设置为ZF的解决方案,该对象将初始搜索半径设置为零强制解。这种计算在解码时使用输入信道的伪逆。大型星座和/或天线数量可以从搜索半径的初始减小中受益。然而,在大多数情况下,额外的计算ZF的解决方案不会提供任何好处。

DecisionType

将解码决策方法指定为任意一种|.默认为

当您将此属性设置为,解码器输出对数似然比(llr)或软位。

当您将此属性设置为,解码器将软llr转换为比特。硬决策输出逻辑数组遵循负LLR为0和所有其他值为1的映射。

方法

一步 用球解码算法解码接收到的符号
通用于所有系统对象
释放

允许系统对象属性值更改

例子

全部展开

使用16-QAM星座调制一组比特。通过MIMO通道将信号作为两个并行流传输。使用具有完美通道知识的球体解码器解码。

指定调制顺序、传输比特数、Eb/No比和符号映射。

M = 16;nBits = 13e3 *log2(M);Ebno = 10;symMap = [11 10 14 15 9 8 12 13 10 4 5 3 2 6 7];

创建一个使用名称-值对设置属性的矩形QAM调制器系统对象™。

hMod = comm.RectangularQAMModulator(<年代pan style="color:#0000FF">...“ModulationOrder”米,<年代pan style="color:#0000FF">...“BitInput”,真的,<年代pan style="color:#0000FF">...“NormalizationMethod”,<年代pan style="color:#A020F0">的平均功率,<年代pan style="color:#0000FF">...“SymbolMapping”,<年代pan style="color:#A020F0">“自定义”,<年代pan style="color:#0000FF">...“CustomSymbolMapping”, symMap);

显示16-QAM调制器的符号映射星座函数。

星座(hMod)

使用左位作为最高有效位(msb)将符号映射的十进制值转换为二进制位。M × log2(M)矩阵bitTable由球体解码器使用。

bitTable = de2bi(symMap,log2(M),<年代pan style="color:#A020F0">“left-msb”);

创建一个2x2 MIMO通道系统对象PathGainsOutputPort设置为真正的使用路径增益作为信道估计。为保证结果的可重复性,可将对象设置为全局随机数流。

hMIMO = comm.MIMOChannel(<年代pan style="color:#0000FF">...“PathGainsOutputPort”,真的,<年代pan style="color:#0000FF">...“RandomStream”,<年代pan style="color:#A020F0">“全球流”);

创建一个AWGN通道系统对象。

hAWGN = com . awgnchannel (<年代pan style="color:#A020F0">“EbNo”ebno,<年代pan style="color:#A020F0">“BitsPerSymbol”log2 (M));

创建一个球体解码器系统对象,使用硬决策解码处理位。

hSpDec = com . spheredecoder (<年代pan style="color:#A020F0">“星座”星座(hMod),<年代pan style="color:#0000FF">...“BitTable”bitTable,<年代pan style="color:#A020F0">“DecisionType”,<年代pan style="color:#A020F0">“硬”);

创建一个错误率系统对象。

hBER = com . errorrate;

设置全局随机数生成器种子。

rng (37)

生成一个随机数据流。

data = randi([0 1],nBits,1);

调制数据并将其重塑为两个流,以便与2x2 MIMO通道一起使用。

modData =步骤(hMod,data);modData =重塑(modData,[],2);

将调制后的数据通过MIMO衰落通道,添加AWGN。

[fadedSig, pathgain] = step(hMIMO,modData);rxSig = step(hAWGN,fadedSig);

解码接收到的信号使用pathGains作为一个完美的信道估计。

decodedData = step(hSpDec,rxSig,squeeze(pathgets));

将解码后的硬决策数据(逻辑矩阵)转换为双列向量,以便计算错误统计信息。计算并显示误码率和错误数。

dataOut = double(decodedData(:));errorStats = step(hBER,data,dataOut);errorStats (1:2)
ans =<年代pan class="emphasis">2×10.0380 - 152.0000

算法

该对象通过软输出Schnorr-Euchner球解码器(SESD)实现了一个软输出最大日志后验概率(APP) MIMO检测器,实现为单树搜索(STS)树遍历。该算法假设所有发射天线的星座和位表相同。给定输入、接收的符号向量和估计的信道矩阵,算法输出传输比特的对数似然比(LLRs)。

该算法假设一个MIMO系统模型NT发射天线和NR接收天线NT符号同时发送,表示为:

y海关+n

在哪里y是接收到的符号,H为MIMO信道矩阵,年代是传输的符号向量,和n是热噪声。

MIMO检测器寻找最大似然(ML)解,<年代pan class="inlinemediaobject">,以致于:

年代 l 参数 最小值 年代 o y H 年代 2

在哪里O的复值星座是N T的元素年代是选择。

软检测还为每个比特计算一个对数似然比(LLR),作为每个比特估计的可靠性的度量。LLR的计算方法是使用最大对数近似:

l x j b 最小值 年代 x j b 0 y H 年代 2 λ l 最小值 年代 x j b 1 y H 年代 2 λ j b l ¯

在哪里

  • lxj, b)为每个比特的LLR估计。

  • x j b 每发送一个比特,即b有一点j象征。

  • x j b 0 而且<年代pan class="inlineequation"> x j b 1 向量符号的不相交集是否具有b标签上的位j标量符号分别等于0和1。两个λ符号表示按模平方计算的距离。,特别是:

    • λ l 是距离<年代pan class="inlineequation"> 年代 l

    • λ j b l ¯ 到反假设的距离,它表示的是二元补b的二进制标签中的第Th位j的入口<年代pan class="inlineequation"> 年代 l ,即符号集的最小值<年代pan class="inlineequation"> x j b x j b l ¯ 的所有可能的向量b有一点j这个元素与相同的元素相比是翻转的<年代pan class="inlineequation"> 年代 l

基于是否<年代pan class="inlineequation"> x j b x j b l 01,位的LLR估计<年代pan class="inlineequation"> x j b 计算公式如下:

l x j b λ l λ j b l ¯ x j b l 0 λ j b l ¯ λ l x j b l 1

解码器的设计力求高效地查找<年代pan class="inlineequation"> 年代 l ,<年代pan class="inlineequation"> λ l ,<年代pan class="inlineequation"> λ j b l ¯

通过球解码算法,可以将这种搜索转化为树形搜索。为此,将信道矩阵分解为<年代pan class="inlineequation"> H R 通过QR分解。Left-multiplyingy通过H,这个问题可以重新表述为:

λ l 参数 最小值 年代 o y ¯ R 年代 2 λ j b l ¯ 年代 x j b x j b l ¯ 参数 最小值 y ¯ R 年代 2

使用这种重新表述的问题陈述,三角结构R可以利用来安排树结构,使每个叶节点对应于一个可能的年代向量和到树中节点的部分距离可以加到父节点的部分距离上累积计算。

在STS算法中,<年代pan class="inlineequation"> λ l 而且<年代pan class="inlineequation"> λ j b l ¯ 度量是并发搜索的。目标是有一个包含度量的列表<年代pan class="inlineequation"> λ l ,以及相应的位序列<年代pan class="inlineequation"> x l 还有指标<年代pan class="inlineequation"> x j b x j b l 在所有的反假设中。只有当结果可以导致更新任何一个节点时,才会搜索来自给定节点的子树<年代pan class="inlineequation"> λ l 或<年代pan class="inlineequation"> λ j b l ¯

STS算法流程可以总结为:

  1. 如果到达叶节点时,发现一个新的ML假设<年代pan class="inlineequation"> d x < λ l ,所有<年代pan class="inlineequation"> λ j b l ¯ 的<年代pan class="inlineequation"> x j b x j b l ¯ 设置为<年代pan class="inlineequation"> λ l 这就变成了一个有价值的反假设。然后,<年代pan class="inlineequation"> λ l 设置为当前距离,dx).

  2. 如果<年代pan class="inlineequation"> d x λ l ,只有反假设需要检查。对所有j而且b的<年代pan class="inlineequation"> d x < λ l 而且<年代pan class="inlineequation"> x j b x j b l ¯ ,解码器更新<年代pan class="inlineequation"> λ j b l ¯ dx).

  3. 如果节点的部分距离大于当前距离,则剪枝子树<年代pan class="inlineequation"> λ j b l ¯ 在遍历子树时可能会受到影响。

  4. 一旦所有的树节点都被访问过一次或修剪过,STS就会得出结论。

限制

  • 输出LLR值不受噪声方差的影响。对于采用迭代编码(LDPC或turbo)的编码链路或采用维特比译码的MIMO OFDM,输出LLR值应根据信道状态信息进行缩放,以获得更好的性能。

选定的参考书目

[1] Studer、C.、A. Burg、H. Bölcskei。软输出球解码:算法和VLSI实现。IEEE通讯选定领域杂志。第26卷第2期,2008年2月,第290-300页。

[2]赵永胜,等。“MATLAB的MIMO-OFDM无线通信”,IEEE出版社,2011。

[3]霍奇瓦尔德,b.m., s.10布林克。“在多天线信道上实现接近容量”,《IEEE通信汇刊》,第51卷第3期,2003年3月,第389-399页。

[4]阿格雷尔,E., T.埃里克森,A.瓦尔迪,K.齐格。“格中的最近点搜索”,《IEEE信息理论汇刊》,第48卷,第8期,2002年8月,第221 -2214页。

扩展功能

另请参阅

|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

在R2013a中介绍

这个话题有帮助吗?