主要内容

提取 PBCH 符号及信道估计值进行解码

从接收的网格中提取物理广播信道 (PBCH) 符号及相关信道估计值,为解码波束成形 PBCH 做准备。

PBCH 编码与波束成形

生成与 BCH 码字对应的随机二进制值序列。码字长度为 864,如 TS 38.212 第 7.1.5 节所规定。使用该码字,为 PBCH 传输创建符号和索引。指定物理层小区标识号。

E = 864;
cw = randi([0 1],E,1);
ncellid = 17;
v = 0;
pbchTxSym = nrPBCH(cw,ncellid,v);
pbchInd = nrPBCHIndices(ncellid);

使用 nrExtractResources 为波束成形的 PBCH 创建两个发射天线的索引。使用这些索引将波束成形的 PBCH 映射到发射机资源数组中。

carrier = nrCarrierConfig('NSizeGrid',20);
P = 2;
txGrid = nrResourceGrid(carrier,P);
F = [1 0.3i];
[~,bfInd] = nrExtractResources(pbchInd,txGrid);
txGrid(bfInd) = pbchTxSym*F;

OFDM 对映射到发射机资源数组的 PBCH 符号进行调制。

txWaveform = nrOFDMModulate(carrier,txGrid);

PBCH 传输与解码

创建信道矩阵并将其应用到波形。接收传输的波形。

R = 3;
H = dftmtx(max([P R]));
H = H(1:P,1:R);
H = H/norm(H);
rxWaveform = txWaveform*H;

创建包含波束成形的信道估计。

 hEstGrid = repmat(permute(H.'*F.',[3 4 1 2]),[240 4]);
 nEst = 0;

使用正交频分复用 (OFDM) 对接收到的波形进行解调。

 rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

为准备 PBCH 解码,从接收到的网格和信道估计网格中提取符号。

[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid);
scatterplot(pbchRxSym(:),[],[],'y+');
title('Received PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Received PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

通过对提取的资源进行 MMSE 均衡处理,实现符号均衡。绘制结果。

pbchEqSym = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
scatterplot(pbchEqSym(:),[],[],'y+');
title('Equalized PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Equalized PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

通过对均衡后的符号执行 PBCH 解码来获取软比特。

pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v)
pbchBits = 864×1
1010 ×

   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
    2.0000
   -2.0000
   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
   -2.0000
      ⋮

另请参阅

函数