matlab-model-rf について
RFシステムの設計、解析、シミュレーションに使う MATLAB の RF Toolbox/RF Blockset スキルです。測定Sパラメーターの処理から、回路レベルおよび時間領域のモデル化まで扱います。
主な機能
- 01Sパラメーターの読み込み、描画、変換
- 02ネットワークのカスケードとデエンベディング
- 03RFカスケード予算指標の計算
- 04回路構成とマッチングネットワーク設計
- 05モデルフィッティングと時間領域シミュレーション
活用シーン
- 01Touchstone測定値とネットワークパラメーターの確認
- 02RF信号チェーンの利得と雑音の評価
- 03インピーダンス整合設計と安定性解析
- 04シグナルインテグリティのチャネルモデル構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-model-rfインストール後、Claude Code で/matlab-model-rfを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.yamlreference/amplifier-analysis.mdamplifier-models.mdamplifier-nonlinear-models.mdbaseband-processing.mdcascade-deembed.mdcircle-computations.mdcircuit-composition.mdifft-step-response.mdlumped-to-distributed.mdmatching-networks.mdmixer-analysis.mdnetwork-conversions.mdrational-fitting.mdrfbudget-analysis.mdrfbudget-elements.mdrffilter-synthesis.mdsi-channel-modeling.mdsparameters-io.mdsystem-simulation.mdtime-domain-analysis.mdtransmission-lines.md詳細
RF Toolbox and RF Blockset
測定済みの S パラメータデータから完全な時間領域 Circuit Envelope シミュレーションまで、MATLAB で RF システムを設計、解析、シミュレーションします。受動ネットワーク、アクティブデバイスの特性評価、システムのカスケード予算、振る舞いベースの時間領域モデリングを網羅する、統一されたワークフローです。
使用する場面
測定データのワークフロー
- Touchstone ファイル(.s1p から .snp)を読み込み、品質(パッシビティ、因果性、IEEE P370)を検証する
- スミスチャートや直交座標プロットに描画し、補間してインピーダンスの基準を変更する
- S、Z、Y、ABCD、T、H、G パラメーター間で変換し、混合モード差動パラメーターを計算する
- S パラメータネットワークをカスケード接続してディエンベディングし、フィクスチャを除去する
システム設計と解析
- 振る舞いベースの要素(アンプ、モジュレーター、rffilter、nport など)から RF 信号チェーンを構築する
- rfbudget を使用して、カスケード接続時のゲイン、雑音指数、IP3、SNR、出力電力を計算する
- Friis と Harmonic Balance ソルバーの精度を比較する
- RF Blockset Simulink モデル、Communications Toolbox、または MATLAB スクリプトにエクスポートする
回路レベルの設計
- ノード配線(SPICE のようなネットリスト)で任意の RF 回路を構成する
- インピーダンス整合ネットワーク(L、Pi、Tee トポロジー、Richards スタブ)を設計する
- アンプの安定性(K ファクター、mu)、電力ゲイン、整合条件を解析する
- ミキサーの相互変調を解析し、スプリアスのない IF 周波数を計画する
時間領域とシグナルインテグリティ
- S パラメーターを有理モデルにフィッティングし、TDR、インパルス応答、ステップ応答を計算する
- 広帯域回路モデルを SPICE または Verilog-A にエクスポートする
- nport ブロック、損失のある伝送線路、寄生成分から SI チャネルモデルを構築する
- rf.Amplifier、rf.Mixer、rf.Filter System Objects を通じて複素ベースバンド信号を処理する
- rfsystem を介して Circuit Envelope の完全な時間領域シミュレーションを実行する(Simulink の知識は不要)
使用しない場面
- アンテナ設計と放射パターン -- Antenna Toolbox を使用してください
- RF 伝搬モデリング(パス損失、フェージング、レイトレーシング) -- Communications Toolbox または Phased Array System Toolbox を使用してください
- SerDes/高速シリアルリンクのイコライゼーション(FFE、CTLE、DFE、IBIS-AMI) -- SerDes Toolbox を使用してください
- レーダー波形設計またはフェーズドアレイ -- Phased Array System Toolbox を使用してください
必ず守るルール
以下は、すべての RF Toolbox ワークフローに適用されます。違反すると、エラーが表示されずに誤った結果が生じたり、実行が停止したりします。
共通
rfwriteは既存のファイルがあると処理を停止します -- 必ず'ForceOverwrite', trueを渡してください。これを指定しないと、MATLAB は対話形式の上書きダイアログを開き、無人実行が停止します。- 要素は再利用できません -- 同じ要素オブジェクトを rfbudget または回路内に 2 回配置することはできません。独立したコピーには
clone(element)を使用してください。 - 要素の Name は有効な MATLAB 識別子である必要があります -- スペースや特殊文字は使用できません。
'IF Amp'ではなく'IFAmp'を使用してください。 tiledlayout/nexttileを使用してください -- 複数パネルの図ではsubplotを使用しないでください。rfparamの戻り値は dB ではなく複素数です -- dB の振幅には必ず20*log10(abs(rfparam(...)))を使用してください。
S パラメーターとネットワークパラメーター
sparameters(filename, Z0)は無効です -- 読み込み時に基準インピーダンスを渡すことはできません。先に読み込み、その後newref(s, Z0)を使用してください。rfinterp1は実部と虚部を個別に補間します -- 振幅と位相は補間しません。鋭い共振の近くではアーティファクトが生じる場合があります。- カスケード接続/ディエンベディングには周波数の整合が必要です --
cascadesparamsとdeembedsparamsには、同一の周波数ベクトルが必要です。必ず事前にrfinterp1を使用して共通のグリッドに補間してください。 deembedsparamsには必ず 3 つの引数が必要です --(sMeasured, sFixture1, sFixture2)。片側のみの場合は、未使用側に理想スルーを渡してください。- 混合モードのポート順序は最も多いエラーの原因です --
s2sddのオプション 1(デフォルト)では、ポート 1、2 を正、ポート 3、4 を負として扱います。どのオプションが VNA のポート番号に対応するかを確認してください。 snp2smpの引数の順序:インピーダンスより先にポートを指定します --snp2smp(s, portList, Z0)を使用してください。snp2smp(s, Z0, portList)ではありません。
rfbudget と Elements
SignalBandwidthは必須です --rfbudgetの4番目の位置引数です。指定しないと、NF/IP3/SNR は空のままになります。- 受動素子の NF は損失と等しくなります --
rfelementでは、NF はabs(Gain)と等しくする必要があります。この処理を自動で行うattenuatorを使うことをおすすめします。 nportの Name は位置引数です --nport('file.s2p', 'MyName')のように指定します。名前と値の構文ではありません。- rffilter:
ResponseTypeは形状、FilterTypeはアルゴリズムです --rffilter('FilterType', 'Bandpass')はエラーになります。rffilter('ResponseType', 'Bandpass')を使ってください。 show(b)は GUI を開きます -- コマンドウィンドウには出力されません。プログラムからアクセスする場合は、プロパティ(b.TransducerGain、b.NF)を使ってください。
回路の構成
setports/setterminalsは1回しか呼び出せません -- 端子を定義する前に、トポロジーを計画してください。- 2ポート RF 素子には4ノードのマッピングを使います -- アンプ、変調器、nport、すべての txline タイプでは
add(ckt, [in out inRef outRef], elem)を使います。プリミティブな2端子素子(抵抗、コンデンサ、インダクタ)には2ノードのマッピングを使います。 - プリミティブのコンストラクターは位置引数を使います --
resistor(100, 'R1')のように指定します。resistor('Resistance', 100)ではありません。 setterminalsはノードベクトルを受け取ります --setterminals(ckt, [1 2])のように指定します。setterminals(ckt, 1, 2)ではありません。- すべての txline コンストラクターは名前と値のペアのみを使います -- 位置引数は使えません。
アンプの解析
powergainのゲインタイプ文字列は最後に指定します --powergain(s, 50, 50, 'Gt')のように指定します。powergain(s, 'Gt', 50, 50)ではありません。powergainは線形値を返し、dB ではありません --10*log10(g)で変換します(電力ゲインでは20倍ではなく10倍を使います)。- 条件付き安定性がある場合、
Gmagは NaN を返します -- K < 1 の周波数ではGmsgを使ってください。
有理関数フィッティング
rationalとrationalfit-- 新しいコードではrational(AAA)を使ってください。rationalfitは遅延抽出の場合にのみ使います。- 単一パラメーターのフィッティングは通常のベクトルを返し、マルチポートではセル配列を返します -- 必ず
iscell(result)で確認してください。 freqrespは Hz を受け取ります -- rad/s ではありません。s.Frequenciesをそのまま渡してください。
システムオブジェクト(rf.*)
- rf.Amplifier/rf.Mixer は1オームの電力を使います --
Vin = sqrt(Pin_W)です。50オームを使う rfsystem とは異なります。 - rf.Filter の周波数は絶対 RF 周波数です --
PassFreq_bp=[2.395e9 2.405e9]は GHz 単位の絶対周波数を意味します。ベースバンドのオフセットではありません。 - 使用中はプロパティがロックされます -- Nontunable プロパティを変更する前に
release(obj)を呼び出してください。
rfsystem
- rfbudget が必要です --
rfsystemが受け取るのは生の素子ではなく、rfbudget です。 close_systemには保存フラグが必要です -- 変更を破棄するにはclose_system(rfs, 0)を使ってください。- IdealizedBaseband がサポートするのは amplifier/modulator/rffilter/nport のみです -- その他の素子には CircuitEnvelope が必要です。
ワークフローのクイックリファレンス
| タスク | エントリーポイント | 詳細 |
|---|---|---|
| S パラメーターの読み込み/プロット | sparameters, rfplot, smithplot | reference/sparameters-io.md |
| S/Z/Y/ABCD、混合モードの変換 | zparameters, s2sdd, snp2smp | reference/network-conversions.md |
| ネットワークのカスケード接続またはディエンベディング | cascadesparams, deembedsparams | reference/cascade-deembed.md |
| rfbudget の要素の作成 | amplifier, modulator, rffilter など | reference/rfbudget-elements.md |
| カスケードの予算解析の実行 | rfbudget, rfplot(b, 'Pout') | reference/rfbudget-analysis.md |
| RF 回路の構成 | circuit, add, setports | reference/circuit-composition.md |
| 整合ネットワークの設計 | matchingnetwork, richards | reference/matching-networks.md |
| アンプの安定性/ゲインの解析 | stabilityk, powergain, gammams | reference/amplifier-analysis.md |
| ミキサーのスプリアスと IF のプランニング | mixerIMT, OpenIF | reference/mixer-analysis.md |
| 有理モデルのフィッティング、TDR | rational, stepresp, generateSPICE | reference/rational-fitting.md |
| SI チャネルモデルの構築 | nport + txlineWRLGC + circuit | reference/si-channel-modeling.md |
| 複素ベースバンドの処理 | rf.Amplifier, rf.Mixer, rf.Filter | reference/baseband-processing.md |
| 時間領域システムシミュレーション | rfsystem, Circuit Envelope | reference/system-simulation.md |
規約
コードスタイル
- 複数パネルの図には
subplotではなく、tiledlayout/nexttileを使用します - 軸には必ず単位(GHz、dB、ns、dBm)を付け、図のタイトルも含めます
- トポロジーを読みやすくするため、要素には説明的な名前(
'LNA'、'DCBlock'、'PCBTrace')を付けます - 要素の再利用には積極的に
clone()を使用します
スクリプト優先のワークフロー
設計、解析、またはスイープのタスクでは、コードをインラインのスニペットではなく、ディスク上の .m ファイルに記述します。手早い単発の確認であれば、インラインの evaluate_matlab_code を使用してもかまいません。
モダン API
subplotではなくtiledlayout/nexttiledatenumではなくdatetimerationalfitではなくrational(遅延の抽出が必要な場合を除く)smithではなくsmithplot- S パラメーターの可視化には
rfplot(dB 変換を自動的に処理します)
リファレンス
特定のワークフローのコードを書く前に、該当するリファレンスファイルを読み込みます。各リファレンスには、正しい呼び出し規約、コンストラクターの引数、プロパティ名、注意点、実行可能なコードパターンが記載されています。
Copyright 2026 The MathWorks, Inc.
コメント
Markdown 対応