技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
matlab-model-rf【数据与研究】RF Toolbox and RF Blockset in MATLAB -- S-parameter I/O, network conversions (S/Z/Y/ABCD/T/H/G, mixed-mode), cascade/de-embedding, rfbudget analysis, circuit composition, matching networks, amplifier stability, mixer spurs, rational fitting, SI channels, baseband processing, Circuit Envelope simulation. Trigger: sparameters, Touchstone, .s2p, .s4p, r…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Design, analyze, and simulate RF systems in MATLAB -- from measured S-parameter data through full time-domain Circuit Envelope simulation. One unified workflow covering passive networks, active device characterization, system cascade budgets, and behavioral time-domain modeling.
Measured data workflows
System design and analysis
Circuit-level design
Time-domain and signal integrity
These apply across ALL RF Toolbox workflows. Violating them produces silent errors or blocks execution.
rfwrite blocks on existing files -- Always pass 'ForceOverwrite', true. Without it, MATLAB opens an interactive overwrite dialog that halts unattended execution.clone(element) for independent copies.'IFAmp' not 'IF Amp'.tiledlayout/nexttile -- Not subplot. For all multi-panel figures.rfparam returns complex, not dB -- Always use 20*log10(abs(rfparam(...))) for dB magnitude.sparameters(filename, Z0) is invalid -- Cannot pass reference impedance at load time. Load first, then newref(s, Z0).rfinterp1 interpolates real/imag independently -- Not magnitude and angle. Can produce artifacts near sharp resonances.cascadesparams and deembedsparams require identical frequency vectors. Always rfinterp1 to a common grid first.deembedsparams always requires 3 arguments -- (sMeasured, sFixture1, sFixture2). For one-sided, pass an ideal thru for the unused side.s2sdd option 1 (default) treats ports 1,2 as positive and 3,4 as negative. Verify which option matches your VNA port numbering.snp2smp argument order: ports before impedance -- snp2smp(s, portList, Z0), not snp2smp(s, Z0, portList).SignalBandwidth is required -- The 4th positional arg to rfbudget. Without it, NF/IP3/SNR remain empty.rfelement, NF should equal abs(Gain). Prefer attenuator which handles this automatically.nport Name is positional -- nport('file.s2p', 'MyName'), not name-value syntax.ResponseType is shape, FilterType is algorithm -- rffilter('FilterType', 'Bandpass') errors. Use rffilter('ResponseType', 'Bandpass').show(b) opens a GUI -- Produces no command-window output. Use properties (b.TransducerGain, b.NF) for programmatic access.setports/setterminals can only be called once -- Plan topology before defining terminals.add(ckt, [in out inRef outRef], elem) for amplifier, modulator, nport, all txline types. Primitive 2-terminal elements (resistor, capacitor, inductor) use 2-node mapping.resistor(100, 'R1'), not resistor('Resistance', 100).setterminals takes a node vector -- setterminals(ckt, [1 2]), not setterminals(ckt, 1, 2).powergain gain type string must be last -- powergain(s, 50, 50, 'Gt'), not powergain(s, 'Gt', 50, 50).powergain returns linear, not dB -- Convert with 10*log10(g) (power gain uses 10x, not 20x).Gmag returns NaN when conditionally stable -- Use Gmsg at frequencies where K < 1.rational vs rationalfit -- Use rational for new code (AAA). Use rationalfit only for delay extraction.iscell(result).freqresp takes Hz -- Not rad/s. Pass s.Frequencies directly.Vin = sqrt(Pin_W). This differs from rfsystem which uses 50-ohm.PassFreq_bp=[2.395e9 2.405e9] means absolute GHz. Not baseband offsets.release(obj) before modifying Nontunable properties.rfsystem takes an rfbudget, not raw elements.close_system needs save flag -- Use close_system(rfs, 0) to discard changes.| Task | Entry Point | Details |
|---|---|---|
| Load/plot S-parameters | sparameters, rfplot, smithplot | reference/sparameters-io.md |
| Convert S/Z/Y/ABCD, mixed-mode | zparameters, s2sdd, snp2smp | reference/network-conversions.md |
| Cascade or de-embed networks | cascadesparams, deembedsparams | reference/cascade-deembed.md |
| Create rfbudget elements | amplifier, modulator, rffilter, etc. | reference/rfbudget-elements.md |
| Run cascade budget analysis | rfbudget, rfplot(b, 'Pout') | reference/rfbudget-analysis.md |
| Compose RF circuits | circuit, add, setports | reference/circuit-composition.md |
| Design matching networks | matchingnetwork, richards | reference/matching-networks.md |
| Analyze amplifier stability/gain | stabilityk, powergain, gammams | reference/amplifier-analysis.md |
| Mixer spurs and IF planning | mixerIMT, OpenIF | reference/mixer-analysis.md |
| Fit rational models, TDR | rational, stepresp, generateSPICE | reference/rational-fitting.md |
| Build SI channel models | nport + txlineWRLGC + circuit | reference/si-channel-modeling.md |
| Process complex baseband | rf.Amplifier, rf.Mixer, rf.Filter | reference/baseband-processing.md |
| Time-domain system simulation | rfsystem, Circuit Envelope | reference/system-simulation.md |
tiledlayout/nexttile for multi-panel figures (not subplot)'LNA', 'DCBlock', 'PCBTrace')clone() liberally for element reuseFor design, analysis, or sweep tasks -- write code to .m files on disk, not inline snippets. For quick one-off checks, inline evaluate_matlab_code is fine.
tiledlayout/nexttile instead of subplotdatetime instead of datenumrational instead of rationalfit (unless delay extraction needed)smithplot instead of smithrfplot for S-parameter visualization (handles dB conversion automatically)Load the relevant reference file before writing code for a specific workflow. Each reference contains correct calling conventions, constructor arguments, property names, gotchas, and executable code patterns.
Copyright 2026 The MathWorks, Inc.