Transmission Line Pulse Propagation
Simulation of pulse propagation through a lossy transmission line using the TransmissionLine block. We observe the propagation delay and attenuation of a Gaussian pulse traveling through the line.
Transmission Line Model
The TransmissionLine block models wave propagation in the scattering domain:
MATHDISPLAY0ENDMATH MATHDISPLAY1ENDMATH
where MATHINLINE2ENDMATH is the propagation delay, MATHINLINE3ENDMATH is the phase velocity, and MATHINLINE4ENDMATH is the voltage transmission coefficient.
System Setup
We send a Gaussian pulse into port 1 of a transmission line and observe the delayed output at port 2. The line has a relative permittivity of 4 (typical for FR-4 PCB material).
Phase velocity: 1.50e+08 m/s Propagation delay: 2.00 ns
10:58:24 - INFO - LOGGING (log: True) 10:58:24 - INFO - BLOCKS (total: 3, dynamic: 0, static: 3, eventful: 0) 10:58:24 - INFO - GRAPH (nodes: 3, edges: 3, alg. depth: 1, loop depth: 0, runtime: 0.051ms) 10:58:24 - INFO - STARTING -> TRANSIENT (Duration: 0.00s) 10:58:24 - INFO - -------------------- 1% | 0.0s<0.1s | 17699.0 it/s 10:58:24 - INFO - ####---------------- 20% | 0.0s<0.0s | 20780.3 it/s 10:58:24 - INFO - ########------------ 40% | 0.0s<0.0s | 22199.4 it/s 10:58:24 - INFO - ############-------- 60% | 0.1s<0.0s | 23126.4 it/s 10:58:24 - INFO - ################---- 80% | 0.1s<0.0s | 22213.5 it/s 10:58:24 - INFO - #################### 100% | 0.1s<--:-- | 19655.8 it/s 10:58:24 - INFO - FINISHED -> TRANSIENT (total steps: 1001, successful: 1001, runtime: 76.68 ms)
Lossless Propagation
The output pulse is a delayed copy of the input with the same amplitude. The delay matches the expected propagation time.
Effect of Attenuation
Now let's compare different attenuation values to see how losses affect the transmitted pulse. We run separate simulations for each attenuation level and overlay the results.
10:58:24 - INFO - LOGGING (log: True) 10:58:24 - INFO - BLOCKS (total: 3, dynamic: 0, static: 3, eventful: 0) 10:58:24 - INFO - GRAPH (nodes: 3, edges: 2, alg. depth: 1, loop depth: 0, runtime: 0.042ms) 10:58:24 - INFO - STARTING -> TRANSIENT (Duration: 0.00s) 10:58:24 - INFO - -------------------- 1% | 0.0s<0.0s | 24823.6 it/s 10:58:24 - INFO - ####---------------- 20% | 0.0s<0.0s | 24297.0 it/s 10:58:24 - INFO - ########------------ 40% | 0.0s<0.0s | 20608.0 it/s 10:58:24 - INFO - ############-------- 60% | 0.0s<0.0s | 21753.3 it/s 10:58:24 - INFO - ################---- 80% | 0.1s<0.0s | 21234.4 it/s 10:58:24 - INFO - #################### 100% | 0.1s<--:-- | 20686.4 it/s 10:58:24 - INFO - FINISHED -> TRANSIENT (total steps: 1001, successful: 1001, runtime: 82.75 ms) 10:58:24 - INFO - LOGGING (log: True) 10:58:24 - INFO - BLOCKS (total: 3, dynamic: 0, static: 3, eventful: 0) 10:58:24 - INFO - GRAPH (nodes: 3, edges: 2, alg. depth: 1, loop depth: 0, runtime: 0.028ms) 10:58:24 - INFO - STARTING -> TRANSIENT (Duration: 0.00s) 10:58:24 - INFO - -------------------- 1% | 0.0s<0.0s | 23282.2 it/s 10:58:24 - INFO - ####---------------- 20% | 0.0s<0.0s | 23542.1 it/s 10:58:24 - INFO - ########------------ 40% | 0.0s<0.0s | 19380.1 it/s 10:58:24 - INFO - ############-------- 60% | 0.0s<0.0s | 21867.0 it/s 10:58:24 - INFO - ################---- 80% | 0.1s<0.0s | 20644.1 it/s 10:58:24 - INFO - #################### 100% | 0.1s<--:-- | 13537.4 it/s 10:58:24 - INFO - FINISHED -> TRANSIENT (total steps: 1001, successful: 1001, runtime: 77.96 ms) 10:58:24 - INFO - LOGGING (log: True) 10:58:24 - INFO - BLOCKS (total: 3, dynamic: 0, static: 3, eventful: 0) 10:58:24 - INFO - GRAPH (nodes: 3, edges: 2, alg. depth: 1, loop depth: 0, runtime: 0.031ms) 10:58:24 - INFO - STARTING -> TRANSIENT (Duration: 0.00s) 10:58:24 - INFO - -------------------- 1% | 0.0s<0.0s | 23721.2 it/s 10:58:24 - INFO - ####---------------- 20% | 0.0s<0.0s | 23628.3 it/s 10:58:24 - INFO - ########------------ 40% | 0.0s<0.0s | 22069.3 it/s 10:58:24 - INFO - ############-------- 60% | 0.0s<0.0s | 19707.3 it/s 10:58:24 - INFO - ################---- 80% | 0.1s<0.0s | 21407.7 it/s 10:58:24 - INFO - #################### 100% | 0.1s<--:-- | 18866.4 it/s 10:58:24 - INFO - FINISHED -> TRANSIENT (total steps: 1001, successful: 1001, runtime: 76.83 ms) 10:58:24 - INFO - LOGGING (log: True) 10:58:24 - INFO - BLOCKS (total: 3, dynamic: 0, static: 3, eventful: 0) 10:58:24 - INFO - GRAPH (nodes: 3, edges: 2, alg. depth: 1, loop depth: 0, runtime: 0.023ms) 10:58:24 - INFO - STARTING -> TRANSIENT (Duration: 0.00s) 10:58:24 - INFO - -------------------- 1% | 0.0s<0.0s | 23823.3 it/s 10:58:24 - INFO - ####---------------- 20% | 0.0s<0.0s | 24342.7 it/s 10:58:24 - INFO - ########------------ 40% | 0.0s<0.0s | 21119.7 it/s 10:58:24 - INFO - ############-------- 60% | 0.0s<0.0s | 19744.3 it/s 10:58:24 - INFO - ################---- 80% | 0.1s<0.0s | 21177.3 it/s 10:58:24 - INFO - #################### 100% | 0.1s<--:-- | 21930.8 it/s 10:58:24 - INFO - FINISHED -> TRANSIENT (total steps: 1001, successful: 1001, runtime: 78.12 ms)