wlanVHTDataRecover
从VHT-Data字段恢复位
语法
描述
复苏dataBits
= wlanVHTDataRecover (rxDataSig
,胸部
,noiseVarEst
,cfgVHT
)dataBits
,位的列向量,从rxDataSig
,是VHT单用户传输的接收VHT- data字段。功能恢复正常dataBits
通过使用胸部
,已占用子载波的信道估计,noiseVarEst
,噪声方差估计,和cfgVHT
,包含VHT传输参数的配置对象。
有关VHT-Data字段的详细信息,请参见VHT-Data领域.
例子
从2x2衰落信道传输的VHT信号恢复位
利用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
从MU-MIMO信道传输的VHT信号恢复比特
通过在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
使用零强制均衡从vht数据字段恢复位
使用零强制均衡算法从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
输入参数
rxDataSig
- - - - - -Received VHT-Data字段
复数的数组
接收的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是的
noiseVarEst
- - - - - -噪声方差估计
负的标量
噪声方差估计,指定为非负标量。
数据类型:双
cfgVHT
- - - - - -VHT传输配置
wlanVHTConfig
对象
VHT传输配置,指定为wlanVHTConfig
对象。
userIdx
- - - - - -用户指数
区间[1]的整数,N用户]
用户索引,指定为间隔为[1]的整数,N用户),N用户是传输中的用户总数。
numSTS
- - - - - -时空流的数量
区间[1,4]中的整数|区间[1,4]中整数的行向量
时空流的数量。
对于单用户传输,将此输入指定为间隔[1,4]中的整数
对于多用户传输,将此输入指定为长度间隔[1,4]的整数行向量N用户,在那里N用户是传输中的用户总数。
例子:[1 3 2]
反映三用户传输的时空流个数。在这种情况下,传输将分别为第一、第二和第三用户分配一个、三个和两个时空流。
请注意
这个属性的元素之和不能超过8。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“PilotPhaseTracking”、“没有”
禁用导频相位跟踪。
OFDMSymbolOffset
- - - - - -OFDM符号采样偏移量
0.75
(默认)|区间[0,1]中的标量
OFDM符号采样偏移量表示为循环前缀(CP)长度的一个分数,指定为由逗号分隔的对组成“OFDMSymbolOffset”
和区间[0,1]中的标量。您指定的值指示OFDM解调相对于CP开始的开始位置0
表示CP的开始,值为1
表示CP的结束。
数据类型:双
EqualizationMethod
- - - - - -均衡方法
“患者”
(默认)|“ZF”
均衡方法,指定为由逗号分隔的对组成“EqualizationMethod”
其中一个值。
“患者”
—接收机采用最小均方误差均衡器。“ZF”
—接收机使用强制零均衡器。
当接收信号有多个接收天线时,该函数在均衡过程中利用接收机分集。当传输的时空流的数量为1时你指定这个参数为“ZF”
时,函数进行极大比组合。
请注意
将此参数指定为“ZF”
当这两个条件中的任何一个适用时。
的
NumSpaceTimeStreams
的属性cfgVHT
输入是1
.的
NumSpaceTimeStreams
而且摘要
的属性cfgVHT
输入是2
而且1
(真正的
),分别。
数据类型:字符
|字符串
PilotPhaseTracking
- - - - - -先导相位跟踪
“PreEQ”
(默认)|“没有”
导频相位跟踪,指定为由逗号分隔的对组成“PilotPhaseTracking”
其中一个值。
“PreEQ”
-启用先导相位跟踪,该功能在任何均衡操作之前执行。“没有”
-禁用先导相位跟踪。
数据类型:字符
|字符串
LDPCDecodingMethod
- - - - - -LDPC译码算法
“英国石油公司”
(默认)|“layered-bp”
|“norm-min-sum”
|“offset-min-sum”
MinSumScalingFactor
- - - - - -标准化最小和LDPC解码的比例因子
0.75
(默认)|区间(0,1)中的标量
标准化最小和LDPC解码的比例因子,指定为逗号分隔的对,由“MinSumScalingFactor”
和区间(0,1)中的标量。
依赖关系
要启用此参数,请指定'
LDPCDecodingMethod
'
名-值对参数为“norm-min-sum”
.
数据类型:双
MinSumOffset
- - - - - -偏移量最小和LDPC解码
0.5
(默认)|负的标量
用于偏移量最小和LDPC解码的偏移量,指定为逗号分隔的对,由“MinSumOffset”
一个非负标量。
依赖关系
要启用此参数,请指定'
LDPCDecodingMethod
'
名-值对参数为“offset-min-sum”
.
数据类型:双
EarlyTermination
- - - - - -开启LDPC解码的提前终止功能
假
或0
(默认)|真正的
或1
启用LDPC解码的早期终止,指定为由逗号分隔的对组成“EarlyTermination”
而且1
(真正的
)或0
(假
).
当您将此值设置为时
0
(假
), LDPC解码完成指定的迭代次数“MaximumLDPCIterationCount”
无论奇偶校验状态。当您将此值设置为时
1
(真正的
),当所有奇偶校验都满足时,LDPC解码终止。
依赖关系
要启用此参数,请设置ChannelCoding
的属性cfgVHT
输入“方法”
属性对应的用户userIdx
输入。
数据类型:逻辑
输出参数
dataBits
-从VHT-Data字段恢复的位
二值列向量
从VHT-Data字段中恢复的位,作为长度为8×的列向量返回lPSDU,在那里lPSDUPSDU的长度,单位为字节。
数据类型:int8
crcBits
—VHT-SIG-B校验和位
二值列向量
VHT-SIG-B校验和位,作为长度为8的二进制值列向量返回。
数据类型:int8
eqSym
-均衡OFDM符号
复数的数组
由VHT-Data字段组成的均衡OFDM符号,作为大小的复值数组返回NSD——- - - - - -N信谊——- - - - - -N党卫军.
NSD数据子载波数
N信谊VHT-Data字段中的OFDM符号的数量是多少
N党卫军是空间流的数量。当
摘要
的属性cfgVHT
输入是0
(假
),N党卫军等于NSTS,即传输中的时空流的数量。当摘要
的属性cfgVHT
输入是0
(假
),N党卫军等于NSTS/ 2.
数据类型:双
复数支持:万博1manbetx是的
cpe
-常见相位误差
实值列向量
接收到的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编码码字 时,LDPC解码器的输入为所给出的LLR
.
在每次迭代中,函数都会根据以下公式更新算法的关键组件:
,
,初始化为 在第一次迭代之前,和
.
在每次迭代结束时, 是对传输位的LLR值的更新估计, .的值 软决策输出是为了什么 .如果 是负的,硬决策输出为 是1。否则,输出为0。
指标集 而且 都是基于PCM这样的集 而且 对应于列中的所有非零元素我和行j,分别为PCM。
该图演示了如何为PCM计算这些索引集 对于这种情况我= 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
(真正的
),当所有奇偶校验都满足时,解码终止(
方法指定的迭代次数之后'
MaximumLDPCIterationCount
'
名称-值对参数。
分层信念传播解码
该函数基于第二节给出的译码算法实现了分层BP算法。一个的[3].解码循环遍历PCM的行(层)子集。
对于每一行,米,在一个层中,每个位索引,j,实现基于这些方程对算法的关键组件进行更新。
(1)
(2)
(3)
(4)
(5)
(6)
对于每一层,解码方程(6)作用于从当前LLR输入获得的组合输入, ,上一层更新, .
由于分层BP算法只更新一层中节点的一个子集,因此该算法比BP算法更快。为了达到与BP解码相同的错误率,在使用分层BP算法时使用一半的解码迭代次数。
归一化最小和解码
偏移最小和解码
参考文献
[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++代码。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。