mirror of
https://github.com/njchorda/Negative-Resitance-CRLH-Calculations.git
synced 2026-02-25 09:10:46 -05:00
4.5 KiB
4.5 KiB
Active CRLH Transmission Line Modeler
A MATLAB simulation of an active Composite Right/Left-Handed (CRLH) transmission line with a frequency-dependent negative resistance element. The structure achieves controlled gain across a user-defined passband by embedding an active shunt element (modeled as a negative resistance Rn) within a periodic CRLH unit cell topology.
This is supplemental code for the paper "Negative Resistance Enabled Amplifying CRLH Transmission Lines With Uniform Insertion Gain" (https://ieeexplore.ieee.org/document/11366944)
Background
CRLH transmission lines support both left-handed (LH) and right-handed (RH) wave propagation, enabling precise dispersion control. By introducing a frequency-shaped negative conductance into the shunt branch, this design compensates for losses and achieves net gain across the passband.
The unit cell uses a ** symmetric T-network topology** with:
- Series branch: Right-handed inductance
LR+ left-handed capacitanceCL - Shunt branch: Right-handed capacitance
CR+ left-handed inductanceLL+ active negative resistanceRn(f)
Features
- Calculates CRLH element values (
LR,CR,LL,CL) analytically from two frequency/phase design targets - Models frequency-dependent negative resistance as
Rn(f) = -A·exp(α·f), fit to desired shunt conductance at two frequencies - Cascades
nunit cells in a passive–active–passive symmetric arrangement - Converts ABCD matrices to S-parameters
- Plots:
- Cascaded S-parameters (
S11,S21) - Dispersion diagram (
βpvs. frequency) - Shunt conductance vs. frequency
- Required
Rn(f)vs. exact analytical solutions - Single unit cell S-parameters with approximate insertion loss overlay
- Bloch impedance (real and imaginary)
- Cascaded S-parameters (
- Outputs (in command window):
- Constituent CRLH parameters
- $R_n(\omega) exponential fit parameters
S_{21}at desired frequencies (\omega_1and\omega_2)- Maximum gain
Dependencies
- SPARAMS — provides
SPARAMS.abcd2s()for ABCD-to-S-parameter conversion. Add as a submodule or clone separately and add to your MATLAB path. closestIdx— a utility function for finding the nearest index in a vector. Included in the bottom of the main file.
After cloning, add dependencies to your MATLAB path
Usage
- Open
Active_NRCRLH_Calcs.min MATLAB - Set your design parameters in the Input parameters section:
| Parameter | Description |
|---|---|
f1, f2 |
Lower and upper frequency bounds of the passband (Hz) |
theta1, theta2 |
Desired phase shifts at f1 and f2 (rad) |
n |
Number of unit cells (must be odd for passive–active–passive symmetry) |
Z0 |
Reference impedance (default: 50 Ω) |
G_desired |
Target shunt conductance (set as a fraction of G_max) |
- Run the script — six figures will be generated automatically. You may need to tune the figX.Position parameter to fit them on your screen
Design Equations
CRLH element values are solved analytically from the two phase/frequency constraints:
L_R = \frac{Z_0(\theta_1 \frac{\omega_1}{\omega_2} - \theta_2)}{n\,\omega_2\!\left(1 - \left(\frac{\omega_1}{\omega_2}\right)^2\right)}
C_R = \frac{\theta_1 \frac{\omega_1}{\omega_2} - \theta_2}{n\,\omega_2 Z_0\!\left(1 - \left(\frac{\omega_1}{\omega_2}\right)^2\right)}
with symmetric expressions for LL and CL.
The required negative resistance at each frequency satisfies:
G_{sh} = \frac{R_n}{R_n^2 + (\omega L_L)^2}
which is solved exactly at f1 and f2, then fit with an exponential model across the full band.
Output Figures
| Figure | Contents |
|---|---|
| 1 | Cascaded S11 and S21 (dB) |
| 2 | Dispersion: βp (deg) vs. frequency |
| 3 | Shunt conductance G(f) vs. frequency |
| 4 | Rn(f): exponential fit vs. exact analytical solutions |
| 5 | Single unit cell S-parameters + approximate S21 |
| 6 | Bloch impedance ZB (real and imaginary) |
Notes
nmust be odd to maintain the passive–active–passive cascade symmetry- Loss-balanced condition (
Gsh = Rse/Z0²) is available but commented out by default - The Rollett (K-Δ) stability analysis block is present in the code but commented out — uncomment to assess unconditional stability across frequency
- Maximum achievable gain is estimated from the loss parameters and printed to the console on each run
License
MIT License — see LICENSE for details.