主要内容

wlanVHTDataRecover

从VHT-Data字段恢复位

描述

例子

dataBits= wlanVHTDataRecover (rxDataSig胸部noiseVarEstcfgVHT复苏dataBits,位的列向量,从rxDataSig,是VHT单用户传输的接收VHT- data字段。功能恢复正常dataBits通过使用胸部,已占用子载波的信道估计,noiseVarEst,噪声方差估计,和cfgVHT,包含VHT传输参数的配置对象。

有关VHT-Data字段的详细信息,请参见VHT-Data领域

例子

dataBits= wlanVHTDataRecover (rxDataSig胸部noiseVarEstcfgVHTuserIdx复苏dataBits对于单个用户,由用户索引指定userIdx,在VHT多用户传输中。

dataBits= wlanVHTDataRecover (rxDataSig胸部noiseVarEstcfgVHTuserIdxnumSTS复苏dataBits用于VHT多用户传输中的一个用户numSTS,即传输中的时空流的数量。

例子

dataBits= wlanVHTDataRecover (___名称,值除了以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定算法选项。例如,“LDPCDecodingMethod”、“layered-bp”表示分层信念传播低密度奇偶校验(LDPC)解码算法。

(dataBitscrcBits= wlanVHTDataRecover(___返回VHT-SIG-B校验和位,crcBits,使用以前语法中的任何输入参数组合。

(dataBitscrcBitseqSym= wlanVHTDataRecover(___返回eqSym,构成VHT-Data字段的数据子载波的均衡OFDM符号,使用来自前面语法的任何输入参数组合。

(dataBitscrcBitseqSymcpe= wlanVHTDataRecover(___返回cpe,接收到的OFDM符号和预期的OFDM符号之间的共同相位错误,使用来自前面语法的任何输入参数组合。

例子

全部折叠

利用VHT长训练场(VHT- ltf)上的信道估计,从2x2衰落信道传输的VHT波形的VHT- data字段中恢复比特。

配置VHT传输,通道带宽160mhz, 2个发射天线,2条传输路径。

cfgVHT = wlanVHTConfig(“ChannelBandwidth”“CBW160”“NumTransmitAntennas”2,“NumSpaceTimeStreams”2,“APEPLength”, 512);

生成VHT-LTF和VHT-Data字段信号。

psduLength = 8*cfgVHT.PSDULength;bits = randi([0 1],psduLength,1);txLTF = wlanVHTLTF(cfgVHT);txDataSig = wlanVHTData(bits,cfgVHT);

将传输的波形通过带有加性高斯白噪声(AWGN)的2x2准静态衰落信道。

信噪比= 10;H =复数(randn(2,2),randn(2,2))/根号(2);rxLTF = awgn(txLTF*H,信噪比);rxDataSig = awgn(txDataSig*H,snr);

计算接收信号功率,估计噪声方差。

powerDB = 10*log10(var(rxDataSig));noiseVarEst = mean(10.^(0.1*(powerDB-snr)));

基于VHT-LTF进行信道估计。

sym = wlanVHTLTFDemodulate(rxLTF,cfgVHT,1);chEst = wlanVHTLTFChannelEstimate(sym,cfgVHT);

从接收的VHT-Data字段恢复位,并确认接收的位与传输的位匹配。

dataBits = wlanVHTDataRecover(rxDataSig,chEst,noiseVarEst,cfgVHT);numErr = biterr(位,数据)
数字= 0

通过在VHT- ltf上使用信道估计从衰落MU-MIMO信道恢复的VHT多用户传输的VHT- data字段中恢复位。

此示例可能返回高误码率,因为传输不包括预编码以减轻时空流之间的干扰。但是,该示例显示了典型的VHT信号恢复工作流以及所涉及函数的适当语法使用。

配置VHT传输,通道带宽160mhz, 2个用户,4根发射天线。给第一个用户分配一个时空流,给第二个用户分配三个时空流。

生化武器=“CBW160”;numSTS = [1 3];cfgVHT = wlanVHTConfig(“ChannelBandwidth”生化武器,“NumUsers”2,...“NumTransmitAntennas”4“NumSpaceTimeStreams”, numSTS);

为每个用户生成比特的有效负载。这个有效载荷必须是a × aN单元格数组,其中N是用户的数量。

psduLength = 8*cfgVHT.PSDULength;numUsers = cfgVHT.NumUsers;Bits = cell(1,2);nu = 1:numUsers bits{nu} = randi([0 1], psulength (nu),1);结束

生成VHT-LTF和VHT-Data字段信号。

txLTF = wlanVHTLTF(cfgVHT);txDataSym = wlanVHTData(bits,cfgVHT);

通过4x1通道为第一个用户传递VHT-Data字段信号,因为该信号由单个时空流组成。通过4x3通道传递第二个用户数据的VHT-Data字段,因为该信号由三个时空流组成。对每个信号应用AWGN,假设信噪比为15 dB。

信噪比= 15;H{1} = complex(randn(4,1),randn(4,1))/√(2);H{2} = complex(randn(4,3),randn(4,3))/√(2);数字= 0 (2,1);比率= 0 (2,1);userIdx = 1:numUsers rxDataSym = awgn(txDataSym*H{userIdx},snr,“测量”);

对每个用户的VHT-LTF应用相同的通道处理。

rxLTF = awgn(txLTF*H{userIdx},信噪比,“测量”);

计算每个用户的接收信号功率,并估计噪声方差。

powerDB = 10*log10(var(rxDataSym));noiseVarEst = mean(10.^(0.1*(powerDB-snr)));

利用VHT-LTF估计信道特性。

demod = wlanVHTLTFDemodulate(rxLTF,cbw,numSTS);chEst = wlanVHTLTFChannelEstimate(demod,cbw,numSTS);

从每个用户接收的VHT-Data字段中恢复位,并通过将恢复的位与原始有效载荷位进行比较来确定误码率。

dataBits = wlanVHTDataRecover(rxDataSym,chEst,noiseVarEst,cfgVHT,userIdx);[number(userIdx),ratio(userIdx)] = biterr(bits{userIdx},dataBits);disp(数量(userIdx) disp(比率(userIdx))结束
4269
0.5082
2444
0.0968

使用零强制均衡算法从SISO AWGN信道恢复的VHT传输的VHT- data字段信号中恢复位。

配置VHT传输并为随机的位有效载荷生成VHT- data字段。

cfgVHT = wlanVHTConfig(“APEPLength”, 512);psduLength = 8*cfgVHT.PSDULength;bits = randi([0 1],psduLength,1);txDataSig = wlanVHTData(bits,cfgVHT);

通过AWGN信道传输。

信噪比= 10;rxDataSig = awgn(txDataSig,snr);

使用所有1的完美信道估计和零强制均衡恢复有效载荷位。

chEst = ones(242,1);noiseVarEst = 10^(-snr/10);[dataBits,crcBits,eqSym,cpe] = wlanVHTDataRecover(rxDataSig,chEst,noiseVarEst,cfgVHT,“EqualizationMethod”“ZF”);

确认恢复的信号没有误码。

number = biterr(bits,dataBits)
数字= 0

显示VHT-Data字段的CRC校验和位。

disp (crcBits”)
1 1 0 1 0 1 1 10 0

计算并显示最大共相位误差。

马克斯(abs (cpe))
Ans = 0.2828

输入参数

全部折叠

接收的VHT-Data字段,指定为大小的复值数组N年代——- - - - - -NR

  • N年代大于或等于时域样本数的整数。

  • NR接收天线数。

请注意

该函数为每个条目处理一个PPDU数据字段。如果你指定N年代作为大于字段长度的值,函数不会在末尾处理额外的样本rxDataSig.要处理PPDU数据字段的连接流,必须多次调用该函数。

数据类型:
复数支持:万博1manbetx是的

占用子载波的信道估计,指定为大小的复值数组N——- - - - - -NSTS——- - - - - -NR

  • N是占用子载波的数量,取决于哪个ChannelBandwidth的属性cfgVHT按照这个表格输入。

    的价值ChannelBandwidth财产 的价值N
    “CBW20” 56
    “CBW40” 114
    “CBW80” 242
    “CBW160” 484

  • NSTS是多少个时空流,必须匹配哪个NumSpacetimeStreams的属性cfgVHT输入。对于多用户传输,NSTS是所有用户的时空流的总数。

  • NR接收天线数。

数据类型:
复数支持:万博1manbetx是的

噪声方差估计,指定为非负标量。

数据类型:

VHT传输配置,指定为wlanVHTConfig对象。

用户索引,指定为间隔为[1]的整数,N用户),N用户是传输中的用户总数。

时空流的数量。

  • 对于单用户传输,将此输入指定为间隔[1,4]中的整数

  • 对于多用户传输,将此输入指定为长度间隔[1,4]的整数行向量N用户,在那里N用户是传输中的用户总数。

例子:[1 3 2]反映三用户传输的时空流个数。在这种情况下,传输将分别为第一、第二和第三用户分配一个、三个和两个时空流。

请注意

这个属性的元素之和不能超过8。

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“PilotPhaseTracking”、“没有”禁用导频相位跟踪。

OFDM符号采样偏移量表示为循环前缀(CP)长度的一个分数,指定为由逗号分隔的对组成“OFDMSymbolOffset”和区间[0,1]中的标量。您指定的值指示OFDM解调相对于CP开始的开始位置0表示CP的开始,值为1表示CP的结束。

数据类型:

均衡方法,指定为由逗号分隔的对组成“EqualizationMethod”其中一个值。

  • “患者”—接收机采用最小均方误差均衡器。

  • “ZF”—接收机使用强制零均衡器。

当接收信号有多个接收天线时,该函数在均衡过程中利用接收机分集。当传输的时空流的数量为1时你指定这个参数为“ZF”时,函数进行极大比组合。

请注意

将此参数指定为“ZF”当这两个条件中的任何一个适用时。

  • NumSpaceTimeStreams的属性cfgVHT输入是1

  • NumSpaceTimeStreams而且摘要的属性cfgVHT输入是2而且1真正的),分别。

数据类型:字符|字符串

导频相位跟踪,指定为由逗号分隔的对组成“PilotPhaseTracking”其中一个值。

  • “PreEQ”-启用先导相位跟踪,该功能在任何均衡操作之前执行。

  • “没有”-禁用先导相位跟踪。

数据类型:字符|字符串

LDPC译码算法,由逗号分隔的对组成“LDPCDecodingMethod”其中一个值。

  • “英国石油公司”—使用BP (belief propagation)解码算法。有关更多信息,请参见信念传播解码

  • “layered-bp”-采用分层BP译码算法,适用于准循环奇偶校验矩阵(PCMs)。有关更多信息,请参见分层信念传播解码

  • “norm-min-sum”-使用归一化最小和近似的分层BP解码算法。有关更多信息,请参见归一化最小和解码

  • “offset-min-sum”-使用偏移最小和逼近的分层BP解码算法。有关更多信息,请参见偏移最小和解码

请注意

当您将此输入指定为“norm-min-sum”“offset-min-sum”时,函数设置大于的输入对数似然比(LLR)值1 e10汽油或者小于1 e10汽油1 e10汽油而且1 e10汽油,分别。然后,函数在执行LDPC解码算法时使用这些值。

依赖关系

要启用此参数,请设置ChannelCoding的属性cfgVHT输入“方法”属性对应的用户userIdx输入。

数据类型:字符|字符串

标准化最小和LDPC解码的比例因子,指定为逗号分隔的对,由“MinSumScalingFactor”和区间(0,1)中的标量。

依赖关系

要启用此参数,请指定LDPCDecodingMethod名-值对参数为“norm-min-sum”

数据类型:

用于偏移量最小和LDPC解码的偏移量,指定为逗号分隔的对,由“MinSumOffset”一个非负标量。

依赖关系

要启用此参数,请指定LDPCDecodingMethod名-值对参数为“offset-min-sum”

数据类型:

LDPC解码迭代的最大次数,指定为由逗号分隔的对组成“MaximumLDPCIterationCount”一个正整数。

依赖关系

要启用此参数,请设置ChannelCoding的属性cfgVHT输入“方法”属性对应的用户userIdx输入。

数据类型:

启用LDPC解码的早期终止,指定为由逗号分隔的对组成“EarlyTermination”而且1真正的)或0).

  • 当您将此值设置为时0), LDPC解码完成指定的迭代次数“MaximumLDPCIterationCount”无论奇偶校验状态。

  • 当您将此值设置为时1真正的),当所有奇偶校验都满足时,LDPC解码终止。

依赖关系

要启用此参数,请设置ChannelCoding的属性cfgVHT输入“方法”属性对应的用户userIdx输入。

数据类型:逻辑

输出参数

全部折叠

从VHT-Data字段中恢复的位,作为长度为8×的列向量返回lPSDU,在那里lPSDUPSDU的长度,单位为字节。

数据类型:int8

VHT-SIG-B校验和位,作为长度为8的二进制值列向量返回。

数据类型:int8

由VHT-Data字段组成的均衡OFDM符号,作为大小的复值数组返回NSD——- - - - - -N信谊——- - - - - -N党卫军

  • NSD数据子载波数

  • N信谊VHT-Data字段中的OFDM符号的数量是多少

  • N党卫军是空间流的数量。当摘要的属性cfgVHT输入是0),N党卫军等于NSTS,即传输中的时空流的数量。当摘要的属性cfgVHT输入是0),N党卫军等于NSTS/ 2

数据类型:
复数支持:万博1manbetx是的

接收到的OFDM符号和期望的OFDM符号之间的共同相位误差,以弧度为单位,作为实值列向量返回。这个输出的长度是N信谊, VHT-Data字段中OFDM符号的数量。

数据类型:

更多关于

全部折叠

VHT-Data领域

VHT-Data字段携带来自介质访问控制(MAC)层的一个或多个帧。该字段位于VHT ppdu中的VHT- sig - b字段之后。

有关VHT-Data字段的详细描述,请参见IEEE的21.3.10节®性病802.11™-2016。VHT数据字段由四个子字段组成。

  • 服务领域-包含7位扰码器初始化状态,1位为未来考虑保留,8位为VHT-SIG-B循环冗余检查(CRC)字段

  • PSDU—可变长字段,包含PLCP业务数据单元

  • 体育垫-传递给发射机以创建完整OFDM符号的可变位数

  • 尾巴-终止卷积码所需的比特(当传输使用LDPC信道编码时不需要)

算法

全部折叠

本功能支持这四种LDPC译码万博1manbetx算法。

信念传播解码

该函数实现了基于中给出的译码算法的BP算法[2].用于传输的ldp编码码字 c c 0 c 1 ... c n 1 时,LDPC解码器的输入为所给出的LLR

l c 日志 公关 c 0 | 的通道输出 c 公关 c 0 | 的通道输出 c

在每次迭代中,函数都会根据以下公式更新算法的关键组件:

l r j 2 atanh V j \ 双曲正切 1 2 l j

l j l c + j C \ j l r j ,初始化为 l j l c 在第一次迭代之前,和

l l c + j C l r j

在每次迭代结束时, l 是对传输位的LLR值的更新估计, c .的值 l 软决策输出是为了什么 c .如果 l 是负的,硬决策输出为 l 是1。否则,输出为0。

指标集 C \ j 而且 V j \ 都是基于PCM这样的集 C 而且 V j 对应于列中的所有非零元素和行j,分别为PCM。

该图演示了如何为PCM计算这些索引集 H 对于这种情况= 5和j= 3。

为了避免算法方程中出现无限数,将atanh(1)和atanh(-1)分别设为19.07和-19.07。由于精度有限,MATLAB®tanh(19.07)返回1,tanh(-19.07)返回-1。

当您指定EarlyTermination名-值对参数为0方法指定的迭代次数后,解码终止MaximumLDPCIterationCount名称-值对参数。当您指定EarlyTermination名-值对参数为1真正的),当所有奇偶校验都满足时,解码终止( H c T 0 方法指定的迭代次数之后MaximumLDPCIterationCount名称-值对参数。

分层信念传播解码

该函数基于第二节给出的译码算法实现了分层BP算法。一个的[3].解码循环遍历PCM的行(层)子集。

对于每一行,,在一个层中,每个位索引,j,实现基于这些方程对算法的关键组件进行更新。

(1) l j l j R j

(2) Ψ x 日志 | 双曲正切 x / 2 |

(3) 一个 j n N \ j Ψ l n

(4) 年代 j n N \ j 胡志明市 l n

(5) R j 年代 j Ψ 一个 j

(6) l j l j + R j

对于每一层,解码方程(6)作用于从当前LLR输入获得的组合输入, l j ,上一层更新, R j

由于分层BP算法只更新一层中节点的一个子集,因此该算法比BP算法更快。为了达到与BP解码相同的错误率,在使用分层BP算法时使用一半的解码迭代次数。

归一化最小和解码

函数遵循分层BP算法,将式(3)替换为,实现归一化最小和解码算法

一个 j 最小值 n N \ j α | l n |

在哪里α的比例因子是否指定MinSumScalingFactor名称-值对参数。这个方程是对式(4)的改编[4]

偏移最小和解码

该函数遵循分层BP算法,将式(3)替换为,实现偏移最小和解码算法

一个 j 马克斯 最小值 n N \ j | l n | β 0

在哪里β偏移量是否由MinSumOffset名称-值对参数。此方程是式(5)的改编[4]

参考文献

[1] IEEE STD 802.11ac™-2013 (IEEE STD 802.11-2012的修订版,由IEEE STD 802.11ae™-2012、IEEE STD 802.11a™-2012和IEEE STD 802.11ad™-2012修订)。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改4:增强在6 GHz以下频段的非常高吞吐量操作。”IEEE信息技术标准。系统间的电信和信息交换局域网和城域网。特殊要求

[2] Robert G. Gallager。低密度奇偶校验码.马萨诸塞州剑桥:麻省理工学院出版社,1963年。

[3] Hocevar D.E.LDPC码分层解码的低复杂度译码器结构在IEEE信号处理系统研讨会,2004。口2004107 - 12。美国德克萨斯州奥斯汀:IEEE, 2004。https://doi.org/10.1109/SIPS.2004.1363033

[4]陈静虎,R.M. Tanner, C. Jones,李燕。不规则LDPC码的改进最小和译码算法。在程序。国际信息理论学术研讨会,2005。2005年有更深的了解., 449- 53,2005。https://doi.org/10.1109/ISIT.2005.1523374

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2015b中引入