omusubi techblog

This website is my technical memo (Mobile/Wireless)

5Gの物理層まとめ②' ~MIBからSIB1を得るまで~

この記事は、下記記事で省略したMIBからSIB1受信までの複雑な手順をまとめたものです。

5Gの物理層まとめ② ~端末の電源ONからセルサーチ~ - omusubi techblog

④PBCHからMIBを取得し、SIB1を受信するための情報を得る ←ここの話

 

参考リンク:

5G | ShareTechnote

5G NR CORESET - Control Resource Set - Techplayon

5G NR pdcch-ConfigSIB1 - ControlResourceSetZero & SearchSpaceZero

MIBの中身を改めてみる

MIBの中身

SIB1を得るための全体的な流れとしては、下記となります。

<SIB1(PDSCH)を得たい >

  • PDSCHで伝送されるので、伝送スケジュールが記されたDCI(PDCCH)を得る必要がある
  • SIB1向けのDCI(PDCCH)はCORESET0と呼ばれる領域なので、これを得る必要がある
  • CORESET0の場所はMIB(pdcch-configSIB1)から導出できる

かなり回りくどいですが、まずはCORESET#0という領域が時間軸・周波数軸でどこにあるのか見つければよさそうです。

※DCI=Downlink Control Information:PDCCHで伝送される制御情報。上り下り両方の通信のスケジューリングをする超重要信号

※CORESET=COntrol REsource SET:PDCCHが存在する領域。LTEではある時間のすべての周波数領域でPDCCHが伝送されていたが、5Gでは一部周波数領域でのみ伝送される。SIB1はSIB1専用のDCIが用いられ、このDCIが存在するCORESETをCORESET#0と呼ぶ。

CORESETのわかりやすい図

https://www.techplayon.com/5g-nr-coreset-control-resource-set/

ちなみに、PDCCHとかPDSCHって何ぞやは下記の図を参照ください。

mappingの図



CORESET#0を導出する(周波数領域)


話を戻して、まずはCORESET#0の領域をpdcch-configSIB1から導き出します。

pdcch-configSIB1は0~255の整数とされていますが、さらに2つのパラメータが存在します。

pdcch-configSIB1

ここで、controlResourceSetZeroは上位4ビット、searchSpaceZeroは下位4ビットであらわされます。仮に、pdcch-ConfigSIB1="10110010"とすれば、

  • controlResourceSetZero=1011(bin)=11
  • searchSpaceZero=0010(bin)=2

となります。この2つの値とSSB及びPDCCHのサブキャリア間隔をもとに、TS38.213で定義された数多くの表からマッチする値を読み取る必要があります。

こんなテーブルが10個ぐらいある

どの表を見れば良いかすらわからなくなってしまいますが、Sharetechnote先生が

分類わけしてくれています。

ありがたい分類表

https://www.sharetechnote.com/html/5G/5G_CommonSearchSpace_Type0_PDCCH.html

仮に、n78のSSB,PDCCHともにサブキャリア間隔30kHzの場合、上記表に従ってTable13-4を参照すればよいことが分かります。ここで、controlResourceSetZeroの値がindexの値となります。この表からは、CORESET#0の周波数領域の位置が分かります。

index=controlResourceSetZero=1011(bin)=11の行を見る

各列の項目については下記イメージです。

  • multiplexing pattern:SSBとの相対位置(SSBと周波数や時間で同じタイミングか)
  • Number of RBs:リソースグリッドの周波数軸占有分
  • Number of Symbols:リソースグリッドの時間軸占有分
  • Offset(RBs):周波数軸のオフセット分

CORESET#0の周波数領域

https://www.techplayon.com/5g-nr-pdcch-configsib1-controlresourcesetzero-search-space-zero/

※KssB=SSBとリソースブロック間のオフセット


ここまでで、CORESET#0の周波数軸(縦軸)上の位置がつかめました。
次に、まだ使ってないsearchSpaceZeroの値をもとに、時間軸(横軸)上の位置(≒UEがサーチする対象の期間)を求めていきます。

 

CORESET#0を導出する(時間領域)

searchSpaceZeroの値を参照する表は、周波数やmultiplexing patternに応じて定義されていて、今回、n78(FR1)かつ先ほど見たmultiplexing pattern:1の場合は下記表を参照します。

index=searchspaceZero=0010(bin)=2の行を見る

各列の項目については下記イメージです。

  • O:フレームの先頭を基準としたスロットのオフセット
  • M:Number of Search speace sets per slotによって変わる係数的なもの
  • Number of Search speace sets per slot:スロット当たりのサーチスペースセット(PDCCHを探しに行く期間)数
  • First Symbol Index:スロット内のサーチ スペースセットの開始シンボル位置

表から読み取った各項目を下記のTS38.213内の式にあてはめます。

TS38.213 を頑張ってみるしかない

multiplexing pattern:1の場合、上の式で求めたn0から連続する2スロット、つまりn0とn0+1番目のスロットの最初(0番目)が、CORESET#0の位置候補となります。

今回の場合、n0=4と計算できるので、スロット4とスロット5の最初のシンボルでCORESET#0(SIB1のDCI)をサーチすることになります。

CORESET#0をサーチする場所

これで、SIB1をスケジューリングするDCIを含むCORESET#0の周波数領域と時間領域の位置が分かり、こちらに含まれるDCIからSIB1のPDSCH位置を読み取ります。

まとめ

前回、MIBからSIB1を受信するための情報を得る、とさらっと書きましたが、

計算式や定義された表を多く参照する必要があり、非常に複雑であることが分かりました。次回はDCIからPDSCHを読み取るまでを見ていきます。