From b28f97f3526859633fde603764b827389279d10f Mon Sep 17 00:00:00 2001 From: Denis Chevalier Date: Mon, 10 Aug 2026 22:32:38 +0200 Subject: extract figures in separate files --- charts/crosstalk-mathematical-model.typ | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 charts/crosstalk-mathematical-model.typ (limited to 'charts/crosstalk-mathematical-model.typ') diff --git a/charts/crosstalk-mathematical-model.typ b/charts/crosstalk-mathematical-model.typ new file mode 100644 index 0000000..7701ed9 --- /dev/null +++ b/charts/crosstalk-mathematical-model.typ @@ -0,0 +1,63 @@ +#import "../lib/unify.typ": qty, unit +#import "@preview/cetz:0.5.2" +#import "@preview/cetz-plot:0.1.4": plot + +#figure( + cetz.canvas({ + import cetz.draw: * + + plot.plot( + size: (12, 6), + x-mode: "log", + x-label: [Frequency $f$ ($unit("Hz")$)], + y-label: [Coupled Voltage $V_"coupled"$ ($unit("mV")$)], + x-min: 10, + x-max: 100000, + y-min: 0.001, + y-max: 65, + x-grid: "minor", + y-grid: "minor", + { + // 20 kHz System Bandwidth limit vertical reference line + plot.add( + ((20000, 0.001), (20000, 100)), + style: ( + stroke: (paint: luma(120), thickness: 0.8pt, dash: "dashed"), + ), + label: none, + ) + + // Unshielded PCB trace: C_mutual = 1 pF, Z_victim = 10 kOhm + plot.add( + style: (stroke: (dash: "solid")), + label: [Unshielded trace \ + ($qty(1, "pF"), qty(10, "kilo ohm")$)], + domain: (10, 100000), + samples: 8000, + f => 2 * calc.pi * f * 1e-12 * 10000 * 10 * 1000, // in mV + ) + + // Low-impedance node: C_mutual = 1 pF, Z_victim = 1 kOhm + plot.add( + style: (stroke: (dash: "dashed")), + label: [Low-impedance node \ + ($qty(1, "pF"), qty(1, "kilo ohm")$)], + domain: (10, 100000), + samples: 8000, + f => 2 * calc.pi * f * 1e-12 * 1000 * 10 * 1000, // in mV + ) + + // Guard trace shielding: C_mutual = 0.05 pF, Z_victim = 10 kOhm + plot.add( + style: (stroke: (dash: "dotted")), + label: [Guard trace shielded \ + ($qty(0.05, "pF"), qty(10, "kilo ohm")$)], + domain: (10, 100000), + samples: 8000, + f => 2 * calc.pi * f * 0.05e-12 * 10000 * 10 * 1000, // in mV + ) + }, + ) + }), + caption: [Capacitive crosstalk coupled voltage ($V_"coupled"$) vs. frequency across different PCB layout conditions, demonstrating the $qty(20, "decibel per decade")$ slope up to the $qty(20, "kHz")$ system bandwidth boundary], +) -- cgit