mcpField
M
matlab-generate-5g-waveform

matlab-generate-5g-waveform

github.com/matlabその他1.2k85 回インストール1 日前に更新
リポジトリ

matlab-generate-5g-waveform について

`nrWaveformGenerator`を使った、標準準拠の5G NR上下リンク波形生成を支援するMATLABスキルです。測定、シミュレーション、検証に向けた設定やレイアウト上の注意点を案内します。

主な機能

  1. 01上下リンク波形の生成
  2. 025G NRテストモデルとFRC波形の生成
  3. 03キャリアと帯域幅部分の設定
  4. 04波形検証のガイダンス

活用シーン

  1. 01PDSCHまたはPUSCHテスト波形の作成
  2. 02帯域幅とサブキャリア間隔の設定
  3. 03参照チャネル波形の生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-generate-5g-waveform

インストール後、Claude Code で/matlab-generate-5g-waveformを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
references/
api-reference.md
critical-rules.md
documentation-links.md
multi-bwp-guidance.md
narrow-band-manual-config.md
patterns.md
test-models-and-frc.md

詳細

5G NR 波形を生成する

nrWaveformGenerator を使用して、テストおよび測定、シミュレーション、検証向けの標準準拠 5G NR ダウンリンクおよびアップリンク波形を生成します。

使用する場合

  • 5G、NR、または New Radio の波形を生成する場合(DL:PDSCH、PDCCH、SSBurst、CSI-RS;UL:PUSCH、PUCCH、SRS)
  • NR テストモデル(TM)または固定基準チャネル(FRC)の波形を生成する場合
  • 帯域幅、SCS、変調、電力、または複数帯域幅パートの配置を設定する場合

使用しない場合

  • チャネルモデリングまたは伝搬 — nrCDLChannel、nrTDLChannel を使用してください
  • 受信機の処理または復号 — nrPDSCHDecode、nrDLSCHDecoder を使用してください
  • リンクレベルのエンドツーエンドシミュレーション

API の選択

必要なものAPI
カスタム DL 波形nrDLCarrierConfig + nrWaveformGenerator
カスタム UL 波形nrULCarrierConfig + nrWaveformGenerator
標準テストモデル(TM)または FRChNRReferenceWaveformGenerator

波形生成にプリミティブレベルの関数(nrCarrierConfig + nrPDSCH + nrOFDMModulate)を使用しないでください。また、プリミティブの設定オブジェクト(nrPDSCHConfig、nrPUSCHConfig、nrCarrierConfig)を nrWaveformGenerator と組み合わせないでください。nrWavegen* オブジェクトを使用してください。nrWaveformGenerator は、チャネルの多重化、電力スケーリング、OFDM 変調を適切に処理します。 関数の完全なカタログ、プロパティ名、互換性のないオブジェクトの表については、 references/api-reference.md を参照してください。

コアワークフロー(カスタム DL/UL)

  1. 簡略化されたコンストラクターでキャリア設定を作成します(R2026a 以降)。このコンストラクターは、SCSCarriers、BandwidthParts、SSBurst/CORESET(DL)、および帯域幅に合わせたデフォルトの PDSCH/PUSCH を自動的にサイズ調整します。
cfg = nrDLCarrierConfig('FR1', 20, 30);  % DL: FR1, 20 MHz, 30 kHz SCS
cfg = nrULCarrierConfig('FR1', 20, 15);  % UL: FR1, 20 MHz, 15 kHz SCS

DL の場合、要求された SCS がデフォルトの SSB ニューメロロジーと異なると、コンストラクターは専用の SSB SCS キャリアを追加します(例:nrDLCarrierConfig('FR1', 5, 30) は非表示の 15 kHz キャリアを追加します)。R2026a より前のバージョンを使用する場合、または SCS キャリアの数を正確に制御する場合は、nrDLCarrierConfig(引数なし)を使用して手動で作成してください。

  1. タスクに必要なものだけをカスタマイズします(以下のルールを参照)。cfg.PDSCH{1}.Modulation = '64QAM'; のように、デフォルト以外の値を設定します。コンストラクターが設定した値を異なる値で上書きしないでください(例:コンストラクターが中央に配置した NStartBWP = 0 を強制するなど)。検証済みの配置が壊れます。

  2. 生成します — validateConfig は構造上のルールを確認しますが、チャネルの競合(重複する PDSCH/CSI-RS、CSI-RS/SSBurst)は検出しません。必ずジェネレーターを実行してください。ジェネレーターは波形とリソースグリッド情報を返します。

[waveform, info] = nrWaveformGenerator(cfg);

簡略化されたコンストラクターが作成する設定は、そのまま生成に使用できます。編集していない nrDLCarrierConfig(fr, bw, scs) または nrULCarrierConfig(fr, bw, scs) は、FR1/FR2 のすべての帯域幅/SCS の組み合わせで波形を生成するため、設定内容を再確認する必要はありません。これは、引数なしの nrDLCarrierConfig / nrULCarrierConfig には当てはまりません。これらのデフォルト(15 kHz、Case A SSB、52 RB の PRBSet)は手動でサイズ調整する必要があります。注意が必要な例外が 1 つあります。3 MHz / 15 kHz では SSB が 15 RB キャリアより広いため、PBCH がパンクチャされます。これは想定された動作です。SSB はそのままにしてください(詳細は「重要なルール」を参照)。手動で作成または変更したものについては、重要なルールを確認してください。対象となるのは、引数なしで作成した(手動の)キャリア、編集した NSizeGrid/BWP/CORESET/PRBSet、BlockPattern の上書き、追加した SCS キャリアまたは BWP(Point A のセンタリング)、BWP をまたぐ CSI-RS または PDCCH、あるいは 2 つのコードワード(レイヤー/DM-RS)です。これらの変更は、生成時に最も多くのエラーを引き起こします。

タスクに必要なものだけを設定する

タスクで必要なプロパティをすべて設定してください。指示に明記されていなくても、要求された機能によって必須となるパラメーターを含め、それ以外は設定しないでください。たとえば、2 つのコードワード → NumLayers が 5~8 → 4 ポートを超える数に対応した DM-RS(重要なルールを参照)、CSI-RS の要求 → CSIRS{1}.Enable = true(デフォルトではオフ)です。これらは必須設定であり、過剰な設定ではありません。SSBurst はデフォルトですでに有効なため、SS バーストを要求された場合でも Enable の行は不要です。

レシピとリファレンス

タスクに合ったリファレンスを開いてください。いずれもそのままコピーでき、動作確認済みのコードを掲載しています。

  • 一般的な単一キャリア波形(デュアルグリッドプロット付きの基本的な DL、基本的な UL、電力スペクトル):references/patterns.md
  • 狭帯域 11-RB キャリア、手動ビルド専用(5 MHz/30 kHz、10 MHz/60 kHz)。簡易コンストラクターではすでに対応しているため、これを使う場合はこのリファレンスをスキップしてください。引数なしのビルド(R2026a より前、または SSB キャリアの自動追加を避ける場合)でのみ開いてください。この場合、デフォルト設定では不十分なため、NSizeGrid = 11、SSB の無効化または移設、CORESET の縮小、AL1、および明示的な PRBSet が必要です:references/narrow-band-manual-config.md
  • マルチ BWP/マルチニューメロロジーのレイアウト:references/multi-bwp-guidance.md
  • テストモデル(TM)と固定リファレンスチャネル(FRC) — ヘルパー関数 hNRReferenceWaveformGenerator(RC, BW, SCS)(例:'DL-FRC-FR1-64QAM'、'NR-FR1-TM1.1')を使い、その後 generateWaveform と displayResourceGrid を実行します。これはデフォルトではパス上にありません。まず、ポータブルなセットアップ(setupExample('5g/NRTestModelWaveformGenerationExample', ...) + copyfile + cd、または openExample)で利用可能にしてください。ハードコードしたパスや、作り出した名前空間付きの名前は使用しないでください。有効な名前、ポータブルなセットアップ用ブロック、および makeConfigWritable の編集方法:references/test-models-and-frc.md
  • 完全な API カタログと出力構造(info のフィールド、正しいプロパティ名):references/api-reference.md
  • オンラインドキュメントへのリンク:references/documentation-links.md

規約

  • 波形を生成した後は、ユーザーから特定の指定がない限り、次のことを行います。
    1. 波形変数の名前と、その変数がワークスペースにあることをユーザーに伝えます。
    2. info.ResourceGrids(k).ResourceGridBWP(BWP サイズで、BWP ごとに 1 つ)からリソースグリッドをプロットします。ResourceGridInCarrier はキャリア全体を表示する場合にのみ使用します。SS バーストは独立したグリッドです。SSBurst.Enable が true で、SS バーストの出力が求められている場合は、info.ResourceGridSSBurst.ResourceGrid もプロットします(これは ResourceGridBWP の一部ではありません)。
    3. 生成コードを .m スクリプトとして保存し、edit('scriptName.m') で MATLAB エディターに表示します。
  • 可能な場合は、簡易コンストラクター nrDLCarrierConfig('FR1', bw, scs) から始めます。
  • 正しいプロパティ名: DMRSPower(PowerDMRS ではありません)、PTRSPower(PowerPTRS ではありません)、NSizeGrid(NRB ではありません)、ChannelBandwidth(Bandwidth ではありません)
  • SCSCarriers、BandwidthParts、CORESET、PDSCH、PUSCH はセル配列です。{} を使用してください。SSBurst は直接オブジェクトです。{} ではなく . を使用してください。
  • 複数パネルの図には tiledlayout/nexttile を使用します。軸には必ず単位を付けてラベルを付け、図のタイトルも含めます。
  • 分かりにくく相互に依存する設定(NSizeGrid の値を選んだ理由、SSBurst を無効にする理由、特定の AggregationLevel を選ぶ理由など)にはコメントを付け、コードだけで意図が伝わるようにします。

Copyright 2026 The MathWorks, Inc.

コメント