このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
HRP UWB IEEE 802.15.4a/z の波形生成
この例では、Communications Toolbox™ を使用して、IEEE® 802.15.4a/z 規格 ([1]、[2]) に準拠した高レート パルス繰り返し周波数 (HRP) 超広帯域 (UWB) 波形を生成する方法を示します。
背景
IEEE 802.15.4 規格は、低速無線パーソナル エリア ネットワーク (LR-WPAN) [ 1 ] の PHY レイヤーと MAC レイヤーを定義します。IEEE 802.15.4 の PHY レイヤーと MAC レイヤーは、ZigBee®、WirelessHart®、6LoWPAN、MiWi などの上位レイヤーの規格で使用されます。
複数の PHY スキームが、IEEE 802.15.4 規格のそれぞれの修正規格で規定されています。
HRP UWB PHY では、チャネル帯域幅が 0.5 ~ 1.3 GHz で、パルス幅が 2 ns に規定されています。パルス持続時間が非常に短いため、UWB PHY は測距アプリケーションに適しています。これは、測距手法で使用される計算がパケット送信の持続時間に依存するためです。時間領域での粒度が細かいほど、距離推定の誤差が小さくなります。
この例では、3 つのパルス繰り返し周波数 (PRF) 送信モード (802.15.4a、および 802.15.4z の BPRF と HPRF) について、規格準拠の HRP UWB 802.15.4a/z 波形を生成します。IEEE 802.15.4a の場合、有効な平均 PRF 値は 3.9、15.6、または 62.4 MHz です。IEEE 802.15.4z 修正規格では、次の 2 つの PRF モードが定義されています。
ベース パルス繰り返し周波数 (BPRF)。平均 PRF は 62.4 MHz、ペイロード データ レートは 6.81 Mbps です。
高パルス繰り返し周波数 (HPRF)。平均 PRF は 124.8 MHz または 249.6 MHz です。
スクランブルされたタイムスタンプ シーケンス (STS) フィールドは、データの整合性を強化するために 802.15.4z で導入されたもう 1 つの重要な機能です。BRPF モードおよび HPRF モードでは、STS フィールドの送信はオプションです。
HRP 波形生成の構成
lrwpanHRPConfig
オブジェクトは、各送信モードの波形を構成します。関数 lrwpanWaveformGenerator
は、lrwpanHRPConfig
オブジェクトと PHY サービス データ ユニット (PSDU) を入力として使用し、HRP UWB IEEE 802.15.4a/z 波形を生成します。
IEEE 802.15.4z の HPRF モード
IEEE 802.15.4z の高パルス繰り返し周波数 (HPRF) モードの平均 PRF は 124.8 MHz または 249.6 MHz です。HPRF モードは BPRF または IEEE 802.15.4a よりも高い PRF を使用するため、HPRF モードは範囲をより正確に推定できます。lrwpanHRPConfig
オブジェクトの既定の平均 PRF は 249.6 MHz です。
msg = randi([0 1], 1000, 1); cfgHPRF = lrwpanHRPConfig(Mode='HPRF', PSDULength=length(msg)/8) %#ok<NOPTS> waveHPRF = lrwpanWaveformGenerator(msg, cfgHPRF); lrwpanPlotFrame(waveHPRF, cfgHPRF);
cfgHPRF = lrwpanHRPConfig with properties: Channel: 0 Mode: 'HPRF' MeanPRF: 249.6000 SamplesPerPulse: 4 CodeIndex: 25 PreambleDuration: 64 SFDNumber: 0 Ranging: 0 ConstraintLength: 3 PSDULength: 125 STS: STSPacketConfiguration: 1 NumSTSSegments: 1 STSSegmentLength: 64 Read-only properties: SampleRate: 1.9968e+09
HPRF フレームは、次のフィールドで構成されます。
同期 (SYNC) フィールド: SYNC フィールドには、PreambleSpreadingFactor
プロパティに従って拡散された 91 シンボルの長符号の指定回数の繰り返し (Nsync) が含まれます。CodeIndex
プロパティによって、使用される符号が決まります。(Nsync) は、PreambleDuration
プロパティによって指定されます。
フレーム開始区切り記号 (SFD) フィールド: SFD フィールドは、CodeIndex
プロパティに対応する SYNC 符号で拡散された 4、8、16、または 32 個のシンボルからなるシーケンスです。開始 SFD シーケンスの長さは、SFDNumber
プロパティによって決まります。
スクランブルされたタイムスタンプ シーケンス (STS) フィールド: STS フィールドについては、次のセクションで説明します。
PHY ヘッダー (PHR) フィールド: PHR フィールドは、single 誤差訂正 double エラー検出 (SECDED) ハミング ブロック符号によって生成された 6 つのパリティ ビットを含む 19 ビットのシーケンスです。Ranging
プロパティによって、13 個の組織的 PHR ビットの 1 つが決まります。その後、PHR が符号化率 1/2 の畳み込み符号で畳み込み符号化されます。ConstraintLength
プロパティ (3 または 7) によって、符号化率 1/2 の 2 つの畳み込み符号化器のいずれかが選択されます。
HPRF 変調スキーム ([ 2 ] の Section 15.3.4) では、各 PHR 畳み込みコードワードは、16 パルスまたは 32 パルスのシーケンスにマッピングされます (平均 PRF はそれぞれ 249.6 MHz および 124.8 MHz)。パルス シーケンスはガード インターバルで区切られます。ChipsPerSymbol
プロパティの最初の要素は、各 PHR シンボルのパルス数を伝えます。
ペイロード: PSDU は (63, 55) リード・ソロモン符号で符号化されます。その後、符号化率 1/2 の畳み込み符号で (PHR と共に) 畳み込み符号化されます。ConstraintLength
プロパティ (3 または 7) によって、符号化率 1/2 の 2 つの畳み込み符号化器のいずれかが選択されます。
HPRF 変調スキーム ([ 2 ] の Section 15.3.4) では、ペイロードの各畳み込みコードワードは、8 パルスまたは 16 パルスのシーケンスにマッピングされます (平均 PRF はそれぞれ 249.6 MHz および 124.8 MHz)。パルス シーケンスはガード インターバルで区切られます。ChipsPerSymbol
プロパティの最後の要素は、各ペイロード シンボルのパルス数を伝えます。次の図は、249.6 MHz の平均 PRF での単一のペイロード シンボルを示しています。
fig = lrwpanPlotFrame(waveHPRF, cfgHPRF); hZoomTo1stHPRFPayloadSymbol(fig, cfgHPRF)
シンボルの 2 番目と 4 番目の四半分はガード インターバルです。最初の四半分と 3 番目の四半分には、4 つのチップ伝送がそれぞれ含まれています。
スクランブルされたタイムスタンプ シーケンス (STS)
STS フィールドを使用して、測距推定値の信頼性を確保できます。このフィールドは、HPRF モードおよび BPRF モードではオプションです。STSPacketConfiguration
プロパティは、STS フィールドの初期構成を指定します。STS フィールドを省略するには、STSPacketConfiguration
プロパティに 0
を指定します。その他の値により、STS および PHY フレーム内の PHR/ペイロードの配置が決まります。
STS フィールドは、ギャップで区切られた複数のセグメントで構成されます。NumSTSSegments
プロパティはセグメントの数 (1 ~ 4) を決定し、STSSegmentLength
プロパティは各セグメントの長さを決定します (512 チップの倍数で 16、32、64、128、または 256)。
次のコードは、各セグメントの前後にギャップがある 2 つの STS セグメントを含む波形を構成、生成、および可視化します。前の SFD フィールドの一部が含まれます。
msg = randi([0 1], 2000, 1); cfgSTS = lrwpanHRPConfig( ... Mode='HPRF', ... NumSTSSegments=2, ... STSSegmentLength=16, ... PSDULength=length(msg)/8); waveSTS = lrwpanWaveformGenerator(msg,cfgSTS); lrwpanPlotFrame(waveSTS, cfgSTS); ind = lrwpanHRPFieldIndices(cfgSTS); set(gca,'XLim',ind.STS - [5e3 0]) % portion of preceding field (SFD) title('STS field with 2 segments')
この例の STS 生成では、STS 構造 (セグメント数、ギャップ、セグメント長、STS 拡散、およびパルス極性を含む) を作成しますが、AES-128 暗号化は実行しません。AES-128 出力の代わりにランダム ビットが使用されます。AES-128 を実装するには、lrwpan.internal.lrwpanHRPWaveformGenerator
のサブ関数 aes128Placeholder
を組み込みます。サブ関数 aes128Placeholder
には、カウンターと 128 ビットの V 値が含まれます。
IEEE 802.15.4a/z の BPRF モード
ベース パルス繰り返し周波数 (BPRF) モードでは、平均 PRF は 62.4 MHz で、データ レートは 6.81 Mbps になります。
BPRF モードと HPRF モードの主な違いは、BPRF では PHR とペイロードがバースト位置変調 (BPM) BPSK 手法で変調されることです。
msg = randi([0 1],1016,1); cfgBPRF = lrwpanHRPConfig(Mode='BPRF',CodeIndex=9, PSDULength=length(msg)/8) %#ok<NOPTS> waveBPRF = lrwpanWaveformGenerator(msg,cfgBPRF); lrwpanPlotFrame(waveBPRF,cfgBPRF);
cfgBPRF = lrwpanHRPConfig with properties: Channel: 0 Mode: 'BPRF' PHRDataRate: 0.8500 SamplesPerPulse: 4 CodeIndex: 9 PreambleDuration: 64 SFDNumber: 0 Ranging: 0 PSDULength: 127 STS: STSPacketConfiguration: 1 Read-only properties: SampleRate: 1.9968e+09
BPRF フレームには SYNC フィールドと SFD フィールドが含まれ、BPM-BPSK 変調されます。
SYNC フィールドは HPRF モードと同様に構築されますが、選択された符号は 127 シンボル長になる可能性があるため、
CodeIndex
プロパティの設定は 9 まで低くすることができます。
SFD フィールドは常に 8 シンボル長です。
Section 15.3 ([ 1 ]) では、BPM-BPSK 変調スキームが規定されています。次のコードが示すように、BPRF モードの BPM-BPSK 変調では、単一の PHR と単一のペイロード シンボルが一緒に表示されます。
fig = lrwpanPlotFrame(waveBPRF,cfgBPRF); hZoomToBPMBPSKSymbols(fig,cfgBPRF);
プロットでは、黒の実線によって PHR とペイロード シンボルの区間が区分され、破線によってさまざまなバースト候補位置が区分されています。BPM-BPSK 変調では、各シンボル区間が 4 つの四半分に分割され、送信が最初または 3 番目の四半分で発生します。畳み込みコードワードの組織ビットによって、送信がいつ行われるかが決まります。各四半分は、NumHopBursts
プロパティによって指定され、平均 PRF によって決定される 2、8、または 32 の候補バーストに分割されます。平均 PRF が 62.4 MHz (BPRF) の場合、四半分のシンボル内のアクティブ候補バーストの数は 2 で、これはシンボルあたり合計 8 バースト区間に相当します。PHR およびペイロード シンボルのプロットでは、アクティブな送信がシンボル区間の 1/8 を占めています。組織ビットによって決まる四半分シンボル内において、単一バースト送信の位置は、PN シーケンスによって決まります。具体的には、時間の経過とともにバースト ホッピングが発生する場所です。選択されたバースト位置内で、ChipsPerBurst
プロパティの指定に従って、Ncpb 個のチップが送信されます。最初の要素には PHR が含まれ、最後の要素にはペイロードが含まれます。バーストあたりのチップ数は、平均 PRF とデータ レートの組み合わせによって決まります。
PHR: PHR データ レートは、PHRDataRate
プロパティによって、850 kbps または 6.81 Mbps のいずれかに決まります。850 kbps の PHR データ レートは、バーストあたり 64 チップ、シンボルあたり 512 チップに相当します。6.81 Mbps の PHR データ レートは、バーストあたり 8 チップ、シンボルあたり 64 チップに相当します。PHR フィールドの長さ (19 ビット) と符号化 (SECDED および畳み込み) は、HPRF モードと同じです。
ペイロード: [ 2 ] の Table 15-9a で示されているように、BPRF モードの場合、ペイロード データ レートは 6.81 Mbps で、これはバーストあたり 8 チップ、シンボル区間あたり 64 チップに相当します。HPRF モードと同様に、ペイロード フィールドは符号化率 1/2 の畳み込み符号化を使用しますが、BPRF では拘束長は 3 のみが可能です。
IEEE 802.15.4a
BPRF モードと同様に、IEEE 802.15.4a は BPM-BPSK 変調スキームを使用します。レガシの 15.4a と BPRF モードの主な違いは以下のとおりです。
IEEE 802.15.4a には STS フィールドがない。
ペイロードの平均 PRF は、3.9、15.6、または 62.4 MHz。平均 PRF 値が 3.9 または 15.6 MHz の場合、SYNC 符号の拡散係数 (
PreambleSpreadingFactor
) は、PreambleMeanPRF
プロパティによって構成可能。ペイロード データ レートは平均 PRF に依存し、6.81 Mbps に制限されない。データ レートと平均 PRF 値により、ホップ バースト数 (
NumHopBursts
は 2、8、または 32) とバーストあたりのチップ数 (ChipsPerBurst
は 1、2、4、8、16、32、64、128、または 512) の値は異なる。PHR のデータ レートは、850 kbps の最小値とペイロードのデータ レートに等しくなる。データ レートは 110 kbps または 850 kbps のいずれか。
畳み込み符号化は、それぞれ 3.9 MHz と 15.6 MHz の平均 PRF の最高データ レート (6.81 Mbps と 27.24 Mbps) では無効になる。
802.15.4a 構成では、データ レートが 6.81 Mbps でないときにのみ、平均 PRF を 62.4 MHz に設定できます。6.82 MHz のデータ レートは BPRF モードに対応します。平均 PRF が 3.9 MHz または 15.6 MHz の場合、符号インデックスは [1, 6] の範囲内でなければなりません。平均 PRF が 62.4 MHz の場合、符号インデックスは [9, 16] または [21, 24] の範囲内でなければなりません。
msg = randi([0 1],800,1); cfg4a = lrwpanHRPConfig( ... Mode='802.15.4a', ... MeanPRF=15.6, ... Channel=3, ... CodeIndex=6, ... PSDULength=length(msg)/8) %#ok<NOPTS> wave4a = lrwpanWaveformGenerator(msg,cfg4a); lrwpanPlotFrame(wave4a,cfg4a);
cfg4a = lrwpanHRPConfig with properties: Channel: 3 Mode: '802.15.4a' MeanPRF: 15.6000 DataRate: 0.8500 SamplesPerPulse: 4 CodeIndex: 6 PreambleMeanPRF: 16.1000 PreambleDuration: 64 Ranging: 0 PSDULength: 100 Read-only properties: SampleRate: 1.9968e+09
RF 適合性
この例で生成されたすべての IEEE 802.15.4a/z 波形は、バタワース パルスの繰り返しです。このようなパルスは、3 進数シンボルのシーケンス (-1、0、または 1) をバタワース フィルターに渡すことによって得られます。
IEEE 802.15.4a/z HRP 規格では、HRP パルスの準拠性チェックが規定されています ([ 1 ] の Section 15.4.4 を参照)。具体的には、使用するパルスとロールオフ係数 0.5 のルート レイズド コサイン パルスの間の "相互相関" が、メイン (中央) ローブでは 0.5 ns について 0.8 より高くなければならず、他のすべてのサイド ローブでは相互相関が 0.3 未満でなければなりません。
IEEE 802.15.4z 修正規格では、送信されるパルスが [ 2 ] の Figure 15-13a に示されている "時間領域マスク" に準拠すると規定されています。この例で使用されるバタワース パルスは、送信マスクの推奨事項に準拠しています。
lrwpanHRPPulseConformance(cfgHPRF);
IEEE 802.15.4 規格では、送信パワー スペクトル密度 PSD のマスクが規定されています ([ 1 ] の Section 15.4.5 を参照)。補助関数 lrwpanHRPTxPSDMask
は、生成された波形のスペクトル密度を表示し、スペクトル マスクに対する適合性を調べます。
lrwpanHRPTxPSDMask(waveHPRF,cfgHPRF)
生成された他の波形についても、これらのコマンドを使用して同様の結果を得ることができます。
% lrwpanHRPTxPSDMask(waveBPRF,cfgBPRF) % lrwpanHRPTxPSDMask(wave4a,cfg4a)
その他の調査
この例では、以下の機能、サポート ファイル、およびユーティリティを使用します。ドキュメンテーションにないユーティリティの API と機能は、将来変更される可能性があります。ユーティリティのソース コードを表示するには、関数
を使用します。edit
:HRP 波形の構成lrwpanHRPConfig
:IEEE 802.15.4a/z HRP UWB 波形の作成lrwpanWaveformGenerator
lrwpanPlotFrame
:HRP UWB IEEE 802.15.4a/z 波形の可視化lrwpanHRPFieldIndices
:PHY フレームの各フィールドの開始インデックスと終了インデックスの検索。
参考文献
"IEEE Standard for Low-Rate Wireless Networks," in IEEE Std 802.15.4-2020 (Revision of IEEE Std 802.15.4-2015), pp.1-800, 23 July 2020, doi: 10.1109/IEEESTD.2020.9144691.
"IEEE Standard for Low-Rate Wireless Networks--Amendment 1: Enhanced Ultra Wideband (UWB) Physical Layers (PHYs) and Associated Ranging Techniques," in IEEE Std 802.15.4z-2020 (Amendment to IEEE Std 802.15.4-2020), pp.1-174, 25 Aug. 2020, doi: 10.1109/IEEESTD.2020.9179124.