RLC resonance Q factor calculator
The RLC resonance Q factor calculator determines how sharply a resonant circuit responds around its natural frequency.
Run — free
Enter resistance in ohms, inductance in henries, and capacitance in farads, then choose a series or parallel topology. The result includes the dimensionless quality factor, resonant frequency, angular resonant frequency, and approximate half-power bandwidth. These values help compare component choices, estimate selectivity, and identify whether a design is broadly tuned or narrowly resonant before building or simulating it.
What quality factor reveals about an RLC circuit
Quality factor, usually written as Q, describes the relationship between energy stored in a resonator and energy dissipated during each cycle. In practical RLC work, it is a compact measure of selectivity: a higher Q indicates a narrower response around resonance, while a lower Q indicates a broader response. This calculator treats the entered resistance as the effective resistance relevant to the selected ideal topology. That detail matters because a real inductor has winding resistance, a capacitor has equivalent series resistance, and a source or load can add damping. If those losses materially affect the circuit, combine them into an appropriate equivalent resistance before calculating. Q has no unit, so it can be compared across circuits operating at very different frequencies. The accompanying bandwidth result uses the common resonator relationship bandwidth equals resonant frequency divided by Q. It is most useful for a lightly damped design with a clear resonance; it should not be mistaken for a complete frequency-response simulation when parasitic elements or frequency-dependent losses dominate.
How the series and parallel formulas are applied
For an ideal series RLC circuit, the resonant angular frequency is one divided by the square root of inductance times capacitance. At that frequency, inductive and capacitive reactances cancel, leaving resistance to control damping. The series quality factor is therefore angular resonant frequency times inductance divided by resistance, which is equivalent to one over resistance times the square root of inductance divided by capacitance. For an ideal parallel RLC circuit whose resistance is modeled in parallel with the reactive branches, the calculator uses resistance divided by angular resonant frequency times inductance, equivalent to resistance times the square root of capacitance divided by inductance. Notice that resistance affects the two models in opposite directions: increasing series resistance lowers Q, whereas increasing parallel resistance raises Q. The calculator also returns frequency in hertz and angular frequency in radians per second so you can work directly with either notation. All three component values must be finite and greater than zero, and the selected topology must match the resistance model used in your circuit.
Using the result for component selection and verification
Start by expressing every component in the base unit requested by the form: ohms, henries, and farads. For example, convert 10 millihenries to 0.01 henry and 1 microfarad to 0.000001 farad. Choose series when the resistor, inductor, and capacitor form one current path and the resistance represents series loss. Choose parallel when the resistance is across the resonant network and represents parallel loss. After calculating, compare the reported resonant frequency with the intended center frequency and compare bandwidth with the range your application must pass or reject. If Q is too high, the circuit may be sensitive to component tolerance, temperature drift, and loading even though its selectivity looks attractive. If Q is too low, unwanted nearby frequencies may not be sufficiently attenuated. For a buildable design, repeat the calculation at component tolerance extremes and include source, load, winding, and equivalent series resistances in the model. Finally, confirm the design with a frequency sweep or bench measurement because this ideal calculation does not include self-resonance, distributed capacitance, magnetic-core loss, or other frequency-dependent behavior.
What you can do with it
Estimate filter selectivity
Calculate Q and approximate half-power bandwidth before choosing component tolerances for a tuned filter stage.
Compare loss assumptions
Test different equivalent resistance values to see how winding, source, load, or leakage losses change resonance sharpness.
Check a resonant component set
Confirm the center frequency and Q of proposed R, L, and C values before simulation or bench testing.
FAQ
What does the calculation cost?
Each API request costs $0.002. The browser calculation is available without server-side processing.
What is the formula for a series RLC circuit?
The calculator uses Q = (1/R) × sqrt(L/C), with resistance in ohms, inductance in henries, and capacitance in farads.
What is the formula for a parallel RLC circuit?
For resistance modeled in parallel with the reactive branches, it uses Q = R × sqrt(C/L).
Does Q have a unit?
No. Quality factor is dimensionless, although the returned resonant frequency and bandwidth are measured in hertz.
Should inductor winding resistance be included?
Yes, when it is significant. Use an equivalent resistance that represents the losses and loading relevant to the chosen topology.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/elec/resonance-q-factor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"resistance_ohms":10,"inductance_henries":0.01,"capacitance_farads":0.000001}'const res = await fetch("https://api.kit.forhosting.com/elec/resonance-q-factor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"resistance_ohms": 10,
"inductance_henries": 0.01,
"capacitance_farads": 0.000001
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/resonance-q-factor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"resistance_ohms": 10,
"inductance_henries": 0.01,
"capacitance_farads": 0.000001
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/resonance-q-factor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"resistance_ohms":10,"inductance_henries":0.01,"capacitance_farads":0.000001}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"resistance_ohms":10,"inductance_henries":0.01,"capacitance_farads":0.000001}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/resonance-q-factor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"resistance_ohms": 10,
"inductance_henries": 0.01,
"capacitance_farads": 0.000001
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.resonance_q_factor",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |