Matlab Model Rf
MathWorksOfficialCreated by MathWorks
- Skill
- Guidelines
- Science and research
- BSD-2-Clause
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to utilizing MATLAB's RF Toolbox and RF Blockset for end-to-end RF system development. It covers workflows ranging from measured S-parameter data validation and network conversions to complex circuit-level design, amplifier stability analysis, and time-domain Circuit Envelope simulation. The documentation emphasizes best practices for script-based workflows, proper element handling, and avoiding common pitfalls in RF parameter manipulation and system modeling.
What it does
- Validates and processes measured S-parameter data from Touchstone files.
- Performs network parameter conversions and mixed-mode analysis.
- Enables RF signal chain design and cascaded budget analysis.
- Supports circuit-level composition and impedance matching network design.
- Facilitates amplifier stability analysis and mixer intermodulation planning.
- Provides tools for rational fitting and time-domain system simulation.
When to use it
- When working with measured S-parameter data for validation or de-embedding.
- When designing RF signal chains and performing cascaded budget analysis.
- When composing arbitrary RF circuits using node-based netlists.
- When analyzing amplifier stability or mixer spur performance.
- When performing time-domain signal integrity or Circuit Envelope simulations.
Advantages
- Unified workflow for both passive and active RF device characterization.
- Strict adherence to MATLAB identifier and object handling rules prevents silent errors.
- Comprehensive support for modern visualization tools like tiledlayout and smithplot.
- Clear separation between script-based design workflows and interactive analysis.
- Detailed guidance on avoiding common errors in port ordering and parameter units.
Usage examples
- “How do I load an S-parameter file and plot it on a Smith chart?”
- The agent will guide you to use sparameters() to load the file, followed by smithplot() for visualization, ensuring you handle reference impedance correctly via newref() if needed.
- “Calculate the cascaded gain and noise figure for my RF chain.”
- The agent will help you define elements using rfbudget, ensuring you set the SignalBandwidth and use clone() for reused elements, then run the budget analysis.
- “How do I analyze the stability of an amplifier?”
- The agent will instruct you to use stabilityk and stabilitymu, and calculate power gain using powergain with the correct linear-to-dB conversion.
- “I need to export my S-parameters to a new file.”
- The agent will provide the rfwrite command, specifically reminding you to include 'ForceOverwrite', true to avoid interactive dialogs.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/matlab/matlab-model-rf/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip matlab-model-rf.zip -d .agents/skills
Documentation by MathWorks
RF Toolbox and RF Blockset
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.
When to Use
Measured data workflows
Loading Touchstone files (.s1p through .snp), validating quality (passivity, causality, IEEE P370)
Plotting on Smith charts and rectangular plots, interpolating, re-referencing impedance
Converting between S, Z, Y, ABCD, T, H, G parameters; computing mixed-mode differential
Cascading and de-embedding S-parameter networks; fixture removal
System design and analysis
Building RF signal chains from behavioral elements (amplifier, modulator, rffilter, nport, etc.)
Computing cascaded gain, noise figure, IP3, SNR, output power with rfbudget
Comparing Friis vs Harmonic Balance solver accuracy
Exporting to RF Blockset Simulink models, Communications Toolbox, or MATLAB scripts
Circuit-level design
Composing arbitrary RF circuits with node wiring (SPICE-like netlist)
Designing impedance matching networks (L, Pi, Tee topologies, Richards stubs)
Analyzing amplifier stability (K-factor, mu), power gain, and matching conditions
Mixer intermodulation analysis and spur-free IF frequency planning
Time-domain and signal integrity
Fitting S-parameters to rational models; computing TDR, impulse, step responses
Exporting broadband circuit models to SPICE or Verilog-A
Building SI channel models from nport blocks, lossy transmission lines, and parasitics
Processing complex baseband signals through rf.Amplifier, rf.Mixer, rf.Filter System Objects
Full Circuit Envelope time-domain simulation via rfsystem (no Simulink knowledge required)
When NOT to Use
Antenna design and radiation patterns -- use Antenna Toolbox
RF propagation modeling (path loss, fading, ray tracing) -- use Communications Toolbox or Phased Array System Toolbox
SerDes/high-speed serial link equalization (FFE, CTLE, DFE, IBIS-AMI) -- use SerDes Toolbox
Radar waveform design or phased arrays -- use Phased Array System Toolbox
Must-Follow Rules
These apply across ALL RF Toolbox workflows. Violating them produces silent errors or blocks execution.
Universal
rfwriteblocks on existing files -- Always pass'ForceOverwrite', true. Without it, MATLAB opens an interactive overwrite dialog that halts unattended execution.Elements cannot be reused -- The same element object cannot appear twice in an rfbudget or circuit. Use
clone(element)for independent copies.Element Name must be a valid MATLAB identifier -- No spaces, no special characters. Use
'IFAmp'not'IF Amp'.Use
tiledlayout/nexttile-- Notsubplot. For all multi-panel figures.rfparamreturns complex, not dB -- Always use20*log10(abs(rfparam(...)))for dB magnitude.
S-Parameters and Network Parameters
sparameters(filename, Z0)is invalid -- Cannot pass reference impedance at load time. Load first, thennewref(s, Z0).rfinterp1interpolates real/imag independently -- Not magnitude and angle. Can produce artifacts near sharp resonances.Frequency alignment required for cascade/de-embed --
cascadesparamsanddeembedsparamsrequire identical frequency vectors. Alwaysrfinterp1to a common grid first.deembedsparamsalways requires 3 arguments --(sMeasured, sFixture1, sFixture2). For one-sided, pass an ideal thru for the unused side.Mixed-mode port ordering is the #1 error source --
s2sddoption 1 (default) treats ports 1,2 as positive and 3,4 as negative. Verify which option matches your VNA port numbering.snp2smpargument order: ports before impedance --snp2smp(s, portList, Z0), notsnp2smp(s, Z0, portList).
rfbudget and Elements
SignalBandwidthis required -- The 4th positional arg torfbudget. Without it, NF/IP3/SNR remain empty.Passive NF equals loss -- For
rfelement, NF should equalabs(Gain). Preferattenuatorwhich handles this automatically.nportName is positional --nport('file.s2p', 'MyName'), not name-value syntax.rffilter:
ResponseTypeis shape,FilterTypeis algorithm --rffilter('FilterType', 'Bandpass')errors. Userffilter('ResponseType', 'Bandpass').show(b)opens a GUI -- Produces no command-window output. Use properties (b.TransducerGain,b.NF) for programmatic access.
Circuit Composition
setports/setterminalscan only be called once -- Plan topology before defining terminals.2-port RF elements use 4-node mapping --
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.Primitive constructors are positional --
resistor(100, 'R1'), notresistor('Resistance', 100).setterminalstakes a node vector --setterminals(ckt, [1 2]), notsetterminals(ckt, 1, 2).All txline constructors use name-value pairs only -- No positional arguments.
Amplifier Analysis
powergaingain type string must be last --powergain(s, 50, 50, 'Gt'), notpowergain(s, 'Gt', 50, 50).powergainreturns linear, not dB -- Convert with10*log10(g)(power gain uses 10x, not 20x).Gmagreturns NaN when conditionally stable -- UseGmsgat frequencies where K < 1.
Rational Fitting
rationalvsrationalfit-- Userationalfor new code (AAA). Userationalfitonly for delay extraction.Single-param fit returns plain vectors; multi-port returns cell arrays -- Always check with
iscell(result).freqresptakes Hz -- Not rad/s. Passs.Frequenciesdirectly.
System Objects (rf.*)
rf.Amplifier/rf.Mixer use 1-ohm power --
Vin = sqrt(Pin_W). This differs from rfsystem which uses 50-ohm.rf.Filter frequencies are ABSOLUTE RF --
PassFreq_bp=[2.395e9 2.405e9]means absolute GHz. Not baseband offsets.Properties locked during use -- Call
release(obj)before modifying Nontunable properties.
rfsystem
Requires rfbudget --
rfsystemtakes an rfbudget, not raw elements.close_systemneeds save flag -- Useclose_system(rfs, 0)to discard changes.IdealizedBaseband only supports amplifier/modulator/rffilter/nport -- Other elements require CircuitEnvelope.
Workflow Quick Reference
| 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 |
Conventions
Code Style
Use
tiledlayout/nexttilefor multi-panel figures (notsubplot)Always label axes with units (GHz, dB, ns, dBm) and include figure titles
Name elements descriptively for readable topology (
'LNA','DCBlock','PCBTrace')Use
clone()liberally for element reuse
Script-First Workflow
For 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.
Modern APIs
tiledlayout/nexttileinstead ofsubplotdatetimeinstead ofdatenumrationalinstead ofrationalfit(unless delay extraction needed)smithplotinstead ofsmithrfplotfor S-parameter visualization (handles dB conversion automatically)
References
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.
Files
- ATTRIBUTION.mdAdded by AutoGineer1.0 KiB
- LICENSELicence file added by AutoGineer1.4 KiB
- SKILL.md9.8 KiB
- manifest.yaml536 B
- reference/amplifier-analysis.md9.3 KiB
- reference/amplifier-models.md2.8 KiB
- reference/amplifier-nonlinear-models.md6.2 KiB
- reference/baseband-processing.md18.5 KiB
- reference/cascade-deembed.md9.0 KiB
- reference/circle-computations.md7.3 KiB
- reference/circuit-composition.md14.1 KiB
- reference/ifft-step-response.md16.8 KiB
- reference/lumped-to-distributed.md2.7 KiB
- reference/matching-networks.md10.8 KiB
- reference/mixer-analysis.md11.0 KiB
- reference/network-conversions.md9.6 KiB
- reference/rational-fitting.md19.8 KiB
- reference/rfbudget-analysis.md8.4 KiB
- reference/rfbudget-elements.md16.8 KiB
- reference/rffilter-synthesis.md2.8 KiB
- reference/si-channel-modeling.md17.8 KiB
- reference/sparameters-io.md12.0 KiB
- reference/system-simulation.md12.9 KiB
- reference/time-domain-analysis.md3.0 KiB
- reference/transmission-lines.md2.8 KiB
reference/sparameters-io.md
S-Parameter I/O and Visualization
Load, inspect, visualize, and export S-parameters using the sparameters object and RF Toolbox plotting functions.
Workflow
Load -- Construct
sparametersfrom Touchstone file, raw data, or circuit objectInspect -- Check ports, frequencies, impedance; extract parameters with
rfparamTransform -- Interpolate with
rfinterp1, re-reference withnewrefVisualize -- Plot with
rfplot,smithplot, or compute group delayExport -- Write to Touchstone with
rfwrite
Core Object: sparameters
Construction
% From Touchstone file (most common)
s = sparameters('device.s2p');
% From raw complex data
s = sparameters(data, freq, Z0); % data: N-N-K, freq: K-1 (Hz), Z0: scalar or vector
% From other network parameter objects
s = sparameters(yObj); % Y -> S (uses yObj's impedance)
s = sparameters(zObj, 75); % Z -> S with explicit Z0
% From RF circuit objects
s = sparameters(circuitObj, freq); % circuit, rffilter, nport, transmission line, RLCProperties
| Property | Description |
|---|---|
Parameters | N-N-K complex array -- indexed as (row, col, freqIdx) |
Frequencies | K-1 vector in Hz (ascending) |
Impedance | Reference impedance -- scalar or per-port vector |
NumPorts | Number of ports (read-only) |
Per-Port Reference Impedance (R2023a+)
s = sparameters(data, freq, [50 75]); % Port 1: 50 Ohm, Port 2: 75 OhmGotcha: When NumPorts == numel(Frequencies), MATLAB cannot distinguish per-port from per-frequency impedance. Use reshape(z0, 1, 1, []) to force frequency-dependent interpretation.
Quality Checks
ispassive(s) % true if max singular value of S <= 1 at all freqs
iscausal(s) % true if network is causal (no output before input)
p = passivity(s); % max singular value per frequency (passive where <= 1)
sp = makepassive(s); % enforce passivity by clipping singular values to <= 1All four work directly on sparameters objects (no rational fit required). passivity(s) returns a vector showing where violations occur -- useful for diagnostics before calling makepassive. makepassive(s) modifies data point-by-point -- for optimization-based passivity enforcement on a fitted model, see reference/rational-fitting.md.
IEEE P370 Quality Metrics (R2023b+)
[cm, rm, pm] = ieee370QualityCheckFrequencyDomain(s);
% cm = causality metric (0-100, higher is better)
% rm = reciprocity metric (0-100)
% pm = passivity metric (0-100)Returns percentage scores per the IEEE 370 standard -- quantitative grades beyond pass/fail booleans. Accepts a sparameters object, filename, or raw 3-D array.
Extracting Parameters
s21 = rfparam(s, 2, 1); % Complex S21 across all frequencies
s21_dB = 20*log10(abs(s21)); % Convert to dB magnitude
s21_phase = angle(s21)*180/pi; % Phase in degreesGotcha: rfparam returns complex values, NOT dB. Always use 20*log10(abs(...)) for dB magnitude.
Use rfparam to extract parameters -- not squeeze(s.Parameters(i,j,:)). rfparam handles multi-port indexing correctly and is the canonical access pattern.
Extracting a Sub-Network (Port Subset)
s4 = snp2smp(s12, [1 2 3 4]); % Extract ports 1-4 from a 12-port network
s2 = snp2smp(s6, [1 4]); % Extract ports 1 and 4 as a 2-portsnp2smp properly terminates unused ports in matched impedance (Z0) -- this is NOT the same as array slicing s.Parameters(ports, ports, :), which ignores coupling through unterminated ports. Always use snp2smp for physically correct sub-network extraction.
Interpolation
fNew = linspace(1e9, 6e9, 500);
sInterp = rfinterp1(s, fNew); % Interpolate to new frequency grid
sExtrap = rfinterp1(s, fNew, 'extrap'); % Allow extrapolation outside original rangeGotcha: rfinterp1 interpolates the real and imaginary parts of each S-parameter independently (like interp1), not magnitude and angle. This can produce artifacts near sharp resonances or rapid phase transitions.
Change Reference Impedance
s75 = newref(s, 75); % Re-reference from 50 to 75 OhmGotcha: sparameters(filename, Z0) is not a valid call signature -- it errors with "Too many input arguments." Always load first, then use newref to change impedance.
Export to Touchstone
outFile = 'output.s2p';
rfwrite(s, outFile, 'FrequencyUnit', 'GHz', 'Format', 'RI', 'ForceOverwrite', true);Critical: Always pass 'ForceOverwrite', true to rfwrite. Without it, MATLAB opens an interactive "Overwrite?" dialog if the file already exists, blocking unattended execution.
Format options: 'MA' (magnitude/angle, default), 'DB' (dB/angle), 'RI' (real/imaginary).
Gotcha: 'DB' format writes -Inf for any zero-valued S-parameter (e.g., S12=0 in an isolator), producing a file that sparameters cannot re-read. Use 'RI' for lossless round-trip fidelity.
Visualization
rfplot -- Rectangular Plots
rfplot(s); % All S-parameters, magnitude in dB
rfplot(s, 2, 1); % S21 only
rfplot(s, [1 2], [1 2]); % S11, S12, S21, S22
rfplot(s, {[2 1]; [1 1]}); % S21 and S11 specifically (cell-array syntax)
rfplot(s, 'diag'); % Diagonal only (S11, S22, ...) -- reflection coefficients
rfplot(s, 'triu'); % Upper triangular portionPlot types via the plotflag argument:
rfplot(s, 2, 1, 'db'); % Magnitude in dB (default)
rfplot(s, 2, 1, 'angle'); % Phase in degrees
rfplot(s, 2, 1, 'abs'); % Linear magnitude
rfplot(s, 2, 1, 'real'); % Real part
rfplot(s, 2, 1, 'imag'); % Imaginary partMulti-panel layout with tiledlayout:
figure;
tiledlayout(2, 2);
nexttile; rfplot(s, 1, 1); title('S11 (dB)');
nexttile; rfplot(s, 2, 1); title('S21 (dB)');
nexttile; rfplot(s, 1, 1, 'angle'); title('S11 Phase');
nexttile; rfplot(s, 2, 1, 'angle'); title('S21 Phase');smithplot -- Smith Chart (R2017b+)
Prefer smithplot over the legacy smith function.
smithplot(s, 1, 1); % S11 on Smith chart
smithplot(s, [1,1; 2,2]); % S11 and S22 togetherWith name-value customization:
sp = smithplot(s, 1, 1, ...
'TitleTop', 'Input Match', ...
'LegendLabels', {'S_{11}'});Empty chart with arbitrary curves:
smithplot(); % Empty Smith chart with grid
hold on;
plot(real(pts), imag(pts)); % Overlay any curveGroup Delay
gd = groupdelay(s); % S21 group delay for 2-port (default)
gd = groupdelay(s, 2, 1); % Explicit S21
% gd is in seconds -- multiply by 1e9 for nanoseconds
figure;
plot(s.Frequencies/1e9, gd*1e9);
xlabel('Frequency (GHz)'); ylabel('Group Delay (ns)');
title('S21 Group Delay');Batch-Load and Compare
files = dir('*.s2p');
figure; hold on;
for k = 1:numel(files)
s = sparameters(files(k).name);
rfplot(s, 2, 1); % S21 in dB, auto-labeled axes
end
hold off;
legend({files.name}, 'Location', 'best');
title('S21 Comparison');rfplot handles dB conversion and axis labeling automatically -- no manual 20*log10(abs(...)) needed for visualization.
Touchstone Reader Configuration (R2024b+)
Non-ASCII characters in Touchstone comment lines (starting with !) -- degree symbols, em-dashes, etc. -- cause sparameters to error. Fix with setTouchstoneReader:
% Arguments are positional strings, NOT name-value pairs
setTouchstoneReader('IgnoreComments', false); % Skip comment parsing, session only
s = sparameters('problematic_file.s2p'); % Now reads without error
% To make the setting persistent across MATLAB sessions:
setTouchstoneReader('IgnoreComments', true); % Persists in preferences
% To restore default parsing behavior:
setTouchstoneReader('ParseComments', false); % Restore for this session onlyArguments: MODE is 'IgnoreComments' or 'ParseComments'; PERSIST is true (sticks across sessions) or false (resets when MATLAB restarts).
Legacy extract Function
The extract function belongs to the legacy rfckt/rfdata API. It returned S-parameter data (and other quantities like noise figure, group delay) from legacy objects. Common issue: it returns cached data and may appear to give identical results for different inputs if the object was not re-analyzed after property changes.
Modern equivalents:
S-parameter extraction:
rfparam(s, i, j)Frequency vector:
s.FrequenciesGroup delay:
groupdelay(s)Noise figure:
noisefigure(...)
Scope Note
RF Toolbox handles circuit-level S-parameter analysis (loading, plotting, cascading, de-embedding, fitting). It does NOT provide RF propagation modeling (path loss, fading channels, ray tracing). Propagation is in Communications Toolbox (propagationModel), Phased Array System Toolbox (fspl, gaspl), and Antenna Toolbox (txsite, coverage, raytrace).
Gotchas
rfparamreturns complex, not dB -- Always use20*log10(abs(rfparam(...)))for dB magnitude.rfparamitself returns raw complex values.sparameters(filename, Z0)is invalid -- Cannot pass reference impedance at load time. Load first, then usenewref(s, Z0).rfinterp1interpolates real/imag independently -- (likeinterp1). Not magnitude and angle. Can produce artifacts near sharp resonances or rapid phase transitions.rfwriteblocks on existing files --rfwriteopens an interactive "Overwrite?" dialog if the output file already exists, halting unattended execution. Always pass'ForceOverwrite', trueto suppress the dialog.'DB'format inrfwritewrites-Inffor zeros -- Zero-valued S-parameters (e.g., S12=0) produce-Infin DB format, whichsparameterscannot re-read. Use'RI'for lossless round-trip fidelity.Per-port vs per-frequency impedance ambiguity -- When
NumPorts == numel(Frequencies), MATLAB cannot distinguish per-port from per-frequency impedance. Usereshape(z0, 1, 1, [])to force frequency-dependent interpretation.Use
smithplot, notsmith-- The legacysmithfunction lacks name-value customization.smithplotis the modern replacement (R2017b+).Non-ASCII characters in Touchstone comments cause read errors -- Degree symbols, em-dashes, or other non-ASCII characters in comment lines (starting with
!) causesparametersto error. Fix withsetTouchstoneReader('IgnoreComments', false)(R2024b+). Arguments are positional strings, not name-value pairs.File extension does not need to be
.snp-- The Touchstone 2.0 reader accepts any file extension, not just.s2p/.s4p/.snp. Non-standard extensions (.txt,.dat, etc.) produce a warning but succeed if the file content is valid Touchstone..ampfiles not supported bysparameters-- AMP files (bundling S-params, noise, power data) are not readable bysparametersornport. Use the legacyrfckt.amplifierwithread(rfckt.amplifier, 'file.amp')to access AMP data.
Conventions
Use
tiledlayout/nexttilefor multi-panel figures (notsubplot)Always label axes with units (GHz, dB, ns) and include figure titles
Use
rfparamto extract parameters -- notsqueeze(s.Parameters(i,j,:))
Quick Reference: Sample Touchstone Files
RF Toolbox ships with example files for testing:
| File | Description |
|---|---|
default.s2p | Active 2-port (amplifier-like, non-passive) |
passive.s2p | Passive 2-port network |
default.s4p | 4-port for differential/mixed-mode analysis |
lnadata.s2p | Low-noise amplifier data |
measured.s2p | Measured device data |
Copyright 2026 The MathWorks, Inc.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- MathWorks
- Publisher
- MathWorks (Official)
- Source
- matlab/matlab-agentic-toolkit · skills-catalog/rf-and-mixed-signal/matlab-model-rf · commit 2a7f215
- Licence
- BSD 2-Clause License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by MathWorks or MathWorks.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download matlab-model-rf.zip