The correlation of impedance and reactance for common-mode chokes
For common mode chokes (CMCs), some distributors and manufacturers specify the impedance (Z) at a given frequency, whereas others specify the common-mode inductance.
To make it easier to compare these values, we made the following chart so you can easily convert between impedance and inductance at different frequencies.
Formula
The formula for computing the inductive reactance from the inductance is:
\[ |Z_L| = 2 \pi f L \]Where:
- $|Z_L|$ is the inductive reactance in Ohms (Ω)
- $f$ is the frequency in Hertz (Hz)
- $L$ is the inductance in Henrys (H)
Inversely, to compute the inductance from the reactance:
\[ L = \frac{|Z_L|}{2 \pi f} \]Compute inductance or reactance using UliEngineering (Python)
Here’s two tiny examples you can run — one to compute inductance from reactance, and one to compute reactance from inductance. They behave like the larmor example above.
example.py
# Compute inductance L from inductive reactance |Z_L| at a frequency
from UliEngineering.Electronics.Reactance import inductance_from_reactance
print(inductance_from_reactance(1000, "100 kHz")) # reactance 1000 Ω at 100 kHz -> prints L in henrys
# Compute inductive reactance |Z_L| from inductance L at a frequency
from UliEngineering.Electronics.Reactance import reactance_from_inductance
print(reactance_from_inductance(1e-6, "100 kHz")) # L = 1 µH at 100 kHz -> prints |Z_L| in ohmsScript to generate the chart
impedance_inductance_plot.py
# Plot inductance vs inductive reactance (Z_L) @ 100 MHz — single log-log plot
# Reactance range: 50 Ω -> 1 MΩ (log-spaced)
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter, LogLocator
# UliEngineering imports (assume available per request)
from UliEngineering.EngineerIO import format_value
from UliEngineering.Electronics.Reactance import (
inductance_from_reactance,
)
# Log-spaced reactance from 50 to 1e6
zs = np.logspace(np.log10(50), np.log10(1_000_000), 1000)
# Compute inductance in Henrys at 100 MHz
L = inductance_from_reactance(zs, "100 MHz")
plt.style.use("ggplot")
fig, ax = plt.subplots(figsize=(10, 7))
# Log-log plot
ax.plot(zs, L, color="C0", lw=2)
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlim(50, 1_000_000)
ax.set_xlabel('Inductive reactance |Z_L| (Ω)')
ax.set_ylabel('Inductance (H)')
ax.set_title('Inductance vs |Z_L| (50 Ω — 1 MΩ) — 100 MHz')
ax.grid(which='both', alpha=0.6, linestyle='--')
# Use log-locators for a clean tick layout
ax.xaxis.set_major_locator(LogLocator(numticks=10))
ax.yaxis.set_major_locator(LogLocator(numticks=10))
# Format ticks with format_value for nice units
ax.xaxis.set_major_formatter(FuncFormatter(lambda x, pos: format_value(x, 'Ω')))
ax.yaxis.set_major_formatter(FuncFormatter(lambda y, pos: format_value(y, 'H')))
ax.minorticks_on()
plt.tight_layout()
plt.show()Check out similar posts by category:
Electronics
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow