matlab-design-pcb-transmission-line
Microstrip, stripline, CPW, differential pairs, and crosstalk analysis for impedance-controlled PCB interconnects. TRIGGER: user asks to design or analyze a transmission line (microstrip, stripline, CPW, coplanar, differential pair), extract RLGC or per-unit-length parameters, compute trace impedanc…
Install / Use
npx skills add matlab/matlab-agentic-toolkit --skill matlab-design-pcb-transmission-lineInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of matlab-design-pcb-transmission-line
matlab-design-pcb-transmission-line scores 93/100 on our quality scale, 240th of 1,199 Content & Media skills we index (top 21%).
Its SKILL.md is 18 KB long, well organised into 43 sections with 26 code examples: a thorough specification that gives an agent plenty to work with.
With 1,098 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 18 days ago, so matlab-design-pcb-transmission-line is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
matlab-design-pcb-transmission-line compared with similar skills
All 4 of these similar skills score higher than matlab-design-pcb-transmission-line; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| matlab-design-pcb-transmission-line (this skill)by matlab | 93 | 1.1k | 18d ago | SKILL.md |
| siyuanby siyuan-note | 100 | 46.6k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 11d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 12d ago | SKILL.md |
Frequently asked questions
- How do I install matlab-design-pcb-transmission-line?
- Run
npx skills add matlab/matlab-agentic-toolkit --skill matlab-design-pcb-transmission-line. The install tabs above show the steps for each supported agent. - Which AI agents does matlab-design-pcb-transmission-line work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is matlab-design-pcb-transmission-line safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is matlab-design-pcb-transmission-line still maintained?
- The repository was last updated 18 days ago, so matlab-design-pcb-transmission-line is actively maintained.
Skill content
View source on GitHubname: matlab-design-pcb-transmission-line description: "Microstrip, stripline, CPW, differential pairs, and crosstalk analysis for impedance-controlled PCB interconnects. TRIGGER: user asks to design or analyze a transmission line (microstrip, stripline, CPW, coplanar, differential pair), extract RLGC or per-unit-length parameters, compute trace impedance, analyze a PCB trace cross-section, or perform crosstalk/coupling analysis. Invoke BEFORE writing code — preferred over RF Toolbox analytical functions (txlineMicrostrip, txlineStripline, txlineCPW). SKIP: EM simulation/S-parameter extraction of an existing component (use matlab-analyze-em), material/stackup definition only (use matlab-manage-pcb-material), building custom non-catalog geometry (use matlab-assemble-pcb-layout), optimization sweeps (use matlab-optimize-pcb-design)." license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "2.0"
Designing Transmission Lines
When to Use
- Designing microstrip, stripline, or CPW transmission lines for impedance control
- Modeling differential pairs with or without aggressor traces for NEXT/FEXT crosstalk
- Analyzing 2D cross-sections for fast per-unit-length RLGC extraction
- Creating SIW (substrate integrated waveguide) lines
- Using
design()to auto-size lines for target impedance at a given frequency
When NOT to Use
- Building custom PCB structures from shapes — use
matlab-assemble-pcb-layout - Setting up substrate or conductor materials — use
matlab-manage-pcb-material - Running S-parameter or field analysis after design — use
matlab-analyze-em - Cascading transmission lines with other components — use
matlab-integrate-pcb-circuit
Tool Selection Priority
-
RF PCB Toolbox (default):
microstripLine,pcb2D,stripLine,coplanarWaveguide, etc.- 2D field solver — accurate for loss, coupling, and arbitrary stackups
- Use for any RLGC, impedance, cross-section, or transmission line design task
-
RF Toolbox (fallback only):
txlineMicrostrip,txlineStripline,txlineCPW- Analytical closed-form approximations, less accurate
- Use ONLY when: the user explicitly names these functions, or states RF PCB Toolbox is unavailable
Typical Workflow
- Before:
matlab-manage-pcb-material— set up substrate and conductor - This skill: Design and analyze the transmission line
- Check mesh/memory:
memoryEstimate(obj, fc, 'RetainMesh', true)— inspect auto-mesh before solving - After:
matlab-analyze-em— validate S-parameters →matlab-optimize-pcb-design— tune →matlab-integrate-pcb-circuit— cascade
Quick Reference
| Object | Topology | Key Properties |
|--------|----------|---------------|
| microstripLine | Single microstrip on ground | Length, Width, Height, GroundPlaneWidth |
| stripLine | Signal embedded in dielectric | Length, Width, Height, GroundPlaneWidth |
| coplanarWaveguide | CPW on substrate | Length, Width, Height, SlotWidth, GroundPlaneWidth |
| coupledMicrostripLine | Edge-coupled microstrip pair | Length, Width, Spacing, Height |
| coupledStripLine | Edge-coupled stripline pair | Length, Width, Spacing, Height |
| microstripLineCustom | Custom coupled/differential microstrip | TraceType, TraceWidth, TraceSpacing, aggressor traces |
| stripLineCustom | Custom coupled/differential stripline | TraceType, TraceWidth, TraceSpacing |
| pcbBendCustom | Custom bend discontinuity (R2025a) | BendShape, Height, GroundPlaneWidth |
| pcb2D | 2D cross-section analysis | BoardWidth, BoardCenter, Layers |
| SIWLine | Substrate integrated waveguide | Length, Width, ViaSpacing, ViaDiameter |
Microstrip Line
Basic Creation and Design
ms = microstripLine;
show(ms);
% Design for target impedance at frequency
ms = design(microstripLine, 3e9);
Z0 = getZ0(ms);
Properties
ms = microstripLine;
ms.Length = 20e-3;
ms.Width = 5e-3;
ms.Height = 1.6e-3; % Substrate height
ms.GroundPlaneWidth = 30e-3;
ms.Substrate = dielectric("FR4");
ms.Conductor = metal("Copper");
Analysis
ms.Conductor = metal("Copper"); % Required for rlgc (finite conductivity)
Z0 = getZ0(ms); % Characteristic impedance (no frequency argument)
td = propagationDelay(ms, 3e9); % Propagation delay (scalar frequency)
params = rlgc(ms, 3e9); % RLGC per unit length (scalar frequency)
freq = linspace(1e9, 6e9, 51);
sp = sparameters(ms, freq, 'SweepOption', 'interp'); % S-parameters (frequency vector OK)
rfplot(sp);
Inverted / Suspended Microstrip
Model inverted or suspended configurations with multi-layer substrates (air gaps):
% Inverted: air below trace, substrate above ground
ms = microstripLine;
ms.Substrate = dielectric(Name={"Air","FR4"}, EpsilonR=[1 4.4], ...
LossTangent=[0 0.02], Thickness=[0.5e-3 1.6e-3]);
ms.Height = 0.5e-3 + 1.6e-3;
% Suspended: air / substrate / air
ms.Substrate = dielectric(Name={"Air","FR4","Air"}, EpsilonR=[1 4.4 1], ...
LossTangent=[0 0.02 0], Thickness=[0.3e-3 0.8e-3 0.3e-3]);
ms.Height = sum([0.3e-3 0.8e-3 0.3e-3]);
Stripline
Stripline has the signal trace embedded between two ground planes.
Symmetric Stripline
sl = stripLine;
sl.Length = 20e-3;
sl.Width = 3e-3;
sl.Height = 3.2e-3; % Total dielectric height (top + bottom)
sl.GroundPlaneWidth = 30e-3;
sl.Substrate = dielectric("Teflon");
sl.Conductor = metal("Copper");
show(sl);
Asymmetric Stripline
Use multi-layer dielectric with different thicknesses above and below. Height = cumulative thickness of layers below the signal (a layer boundary, not the total):
sl = stripLine;
sl.Substrate = dielectric(Name={"FR4","FR4"}, EpsilonR=[4.4 4.4], ...
LossTangent=[0.02 0.02], Thickness=[0.8e-3 1.6e-3]);
sl.Height = 0.8e-3; % Signal at the boundary between the two layers
Suspended Stripline
sl = stripLine;
sl.Substrate = dielectric(Name={"Air","FR4","Air"}, ...
EpsilonR=[1 4.4 1], LossTangent=[0 0.02 0], ...
Thickness=[0.5e-3 0.8e-3 0.5e-3]);
sl.Height = 0.5e-3; % Signal at Air/FR4 boundary (0.5mm from ground)
sl = design(stripLine, 3e9); % Or design for 50-ohm at target freq
Coplanar Waveguide
Basic CPW
cpw = coplanarWaveguide;
cpw.Length = 20e-3;
cpw.Width = 2e-3; % Center conductor width
cpw.SlotWidth = 0.5e-3; % Gap between center and ground
cpw.Height = 1.6e-3;
cpw.GroundPlaneWidth = 10e-3;
show(cpw);
Design and Analyze
cpw = design(coplanarWaveguide, 5e9);
Z0 = getZ0(cpw);
sp = sparameters(cpw, linspace(1e9, 10e9, 51), 'SweepOption', 'interp');
rfplot(sp);
Coupled Transmission Lines
Edge-Coupled Microstrip
cms = coupledMicrostripLine;
cms.Length = 20e-3;
cms.Width = 2e-3;
cms.Spacing = 0.5e-3; % Gap between traces
cms.Height = 1.6e-3;
cms.Substrate = dielectric("FR4");
show(cms);
Even/Odd Mode Impedance
freq = 3e9;
Zeven = getZEven(cms, freq); % Even-mode impedance
Zodd = getZOdd(cms, freq); % Odd-mode impedance
Zdiff = 2 * Zodd; % Differential impedance
Edge-Coupled Stripline
csl = coupledStripLine;
csl.Length = 20e-3;
csl.Width = 2e-3;
csl.Spacing = 0.3e-3;
csl.Height = 3.2e-3;
csl.Substrate = dielectric("Teflon");
Multi-Layer Coupled Lines
cms = coupledMicrostripLine;
sub = dielectric("FR4", "Teflon");
sub.Thickness = [1.0e-3 0.5e-3]; % Set Thickness BEFORE assigning to component
cms.Substrate = sub;
cms.Height = 1.5e-3;
Custom Transmission Lines and Crosstalk Analysis
microstripLineCustom and stripLineCustom model differential pairs with optional aggressor traces for NEXT/FEXT crosstalk analysis.
Properties (microstripLineCustom; stripLineCustom has same interface, Teflon default, embedded between ground planes)
| Property | Default | Description |
|----------|---------|-------------|
| TraceType | 'Single' | 'Single' or 'Differential' (NOT 'Single-ended') |
| TraceLength | 0.05 | Trace length (m) |
| TraceWidth | 0.002 | Signal trace width (m) |
| TraceSpacing | 0.002 | Spacing between differential pair traces (m) |
| Height | 0.0016 | Substrate height (m) |
| GroundPlaneWidth | (read-only) | Ground plane width — auto-computed, cannot be set |
| LeftCoupledTraceGap | 0 | Gap to left aggressor trace (m); 0 = no left aggressor |
| RightCoupledTraceGap | 0 | Gap to right aggressor trace (m); 0 = no right aggressor |
| Substrate | FR4 | Dielectric object |
| Conductor | PEC | Metal object |
Differential Microstrip
ms_diff = microstripLineCustom(TraceType='Differential', ...
TraceWidth=0.002, TraceSpacing=0.0005);
show(ms_diff);
Differential with Aggressor Traces
ms_diff = microstripLineCustom(TraceType='Differential', ...
TraceWidth=0.002, TraceSpacing=0.0005, ...
RightCoupledTraceGap=[0.003, 0.003], ...
LeftCoupledTraceGap=0);
show(ms_diff);
NEXT/FEXT Extraction
With aggressor traces, the S-parameter matrix is 6-port. Port mapping:
| Port | Trace | |------|-------| | 1, 2 | Differential pair (near end, far end) | | 3, 4 | Left aggressor (near end = NEXT, far end = FEXT) | | 5, 6 | Right aggressor (near end = NEXT, far end = FEXT) |
ms = microstripLineCustom(TraceType='Differential', ...
TraceWidth=0.002, TraceSpacing=0.0005, ...
LeftCoupledTraceGap=0.003, RightCoupledTraceGap=0.003);
ms.Conductor = metal("Copper");
freq = linspace(0.1e9, 10e9, 101);
sp = sparameters(ms, freq, 'SweepOption', 'interp');
% Extract crosstalk from S-parameters
S31_dB = 20*log10(abs(squeeze(sp.Parameters(3,1,:)))); % Left NEXT
S41_dB = 20*log10(abs(squeeze(sp.Parameters(4,1,:)))); % Left FEXT
S51_dB = 20*log10(abs(squeeze(sp.Parameters(5,1,:)))); % Right NEXT
S61_dB = 20*log10(abs(squeeze(sp.Parameters(6,1,:)))); % Right FEXT
RLGC Coupling Matrices
For coupled/differential lines, rlgc returns N×N matrices (off-diagonal = mutual L/C):
ms = microstripLineCustom(TraceType='Differential', ...
TraceWidth=0.002, TraceSpacing=0.0005, RightCoupledTraceGap=0.003);
ms.Conductor = metal("Copper");
params = rlgc(ms, 5e9);
Custom Bends and Traces (R2025a)
pcbBendCustom and pcbTraceCustom model bend discontinuities and step-impedance transitions. See references/custom-bends-and-traces.md for properties and examples.
SIW Transmission Line
Substrate Integrated Waveguide uses via fences to create a waveguide in PCB.
siw = SIWLine;
siw.Length = 15.3e-3;
siw.Width = 7.4e-3;
siw.ViaSpacing = [1.2e-3 5e-3]; % [along-length, across-width]
siw.ViaDiameter = 0.51e-3;
siw.Height = 0.254e-3;
siw.Substrate = dielectric(Name="RO4003C", EpsilonR=3.38, LossTangent=0.0027, Thickness=0.254e-3);
siw.Conductor = metal("Copper");
show(siw);
sp = sparameters(siw, linspace(20e9, 40e9, 51), 'SweepOption', 'interp');
rfplot(sp);
The SIW has a FeedLine property (a traceTapered object) for the microstrip-to-SIW transition.
2D Cross-Section Analysis
pcb2D
Creates a 2D cross-section model for fast per-unit-length analysis. Much faster than full 3D sparameters for uniform transmission line characterization.
p = pcb2D;
p = pcb2D(Name=Value);
Key Properties:
Name— Descriptive name for the cross-sectionBoardWidth— Total board width (m)BoardCenter— Center position of the board cross-sectionLayers— Cell array oftrace2Danddielectricobjects defining the stackup
Methods: show(p), sparameters(p, freq), rlgc(p, scalarFreq), propagationDelay(p, scalarFreq)
trace2D
Represents a trace cross-section for use inside a pcb2D object's Layers cell array.
t = trace2D;
t.Type = 'Signal';
Truncated for display — read the full file on GitHub.
Related Skills
siyuan
46.6kAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
