I want to build a passive attenuator which will attenuate an input signal. I want the to have 12 steps, starting with no attenuation and with each subsequent step having a 0.5dB attenuation (so down to -5.5dB). I will use a 12 way 2 pole rotary switch.

Because this is a passive attenuator the input voltage is unimportant, so for ease of calculation I will assume this will be 1V.

My work so far: I decided to have 13 resistors in a simple resistor divider configuration. I have worked out the percentage of Vin I wish to appear at each point. So 100% for the first point (direct connection, Vout = 1 V), 94.4% for the second point (Vout = 0.944 V), 89.13% for the third (Vout = 0.8913 V) and running down accordingly.

I was opting for 13 resistors to that the point under R12 will be 50% of Vin therefore R13 will equal the sum of R's 1-12

My question is: How I calculate the values of the resistors required because there are so many of them?

Do I just pick a value for Rtotal and work them all out from that, or can I formulate this mathematically and perhaps write some code to do this for me. Is there a way of exploiting the common resistor values to my advantage?

  • \$\begingroup\$ I thought of a way I might go about it. Because I know the voltage required at each point, can I consider the problem in smaller sets. So for the first set. I have 1V Vin and 0.8913V Vout, now I just calculate R1 and R2, then for the next one I have Vin = 1V and Vout = 0.8414V and a divider of (R1+R2) and R3. ?? \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 10:10
  • \$\begingroup\$ The signal is being used to drive an amplifier and, as such, is very high impedance. \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 10:13
  • \$\begingroup\$ How are you selecting which resistors are in the circuit? Are you using manual switches, or is this something that needs to be controlled electronically? If so, have you considered an EEPOT like this one (just an example). \$\endgroup\$
    – tcrosley
    Commented Apr 23, 2014 at 10:40
  • \$\begingroup\$ I was going to use a 12 way 2 pole switch, to manually switch in the resistors. So Pos1 - No resistance, Pos2 - R1, Pos3 - R1+R2 etc. \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 10:42
  • 1
    \$\begingroup\$ Sounds like an excel problem to me. \$\endgroup\$
    – Andy aka
    Commented Apr 23, 2014 at 10:53

1 Answer 1


To make life a bit easier use the switch wiper connected to the first resistor and the other switch contacts to individual resistors that connect to ground. Only one resistor gets grounded therefore there is no interdependence: -


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I'm not sure what you mean by that, I had imagined that the signal in would go to the first contact, then R1 goes across the first and second contact R2 across the second and third etc, and the twelfth goes to ground, and the wiper as the output. \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 11:02
  • \$\begingroup\$ I can't imagine a configuration where there is interindependence... I'd go with your configuration because you can actually have a 0dB attenuation, but that's another story. \$\endgroup\$ Commented Apr 23, 2014 at 11:03
  • \$\begingroup\$ I actually think I see what you mean Andy, Do you mean that the signal would go into the wiper then each contact has a grounded resistor and all the contacts are connected to the output. So each selection only uses 2 resistors, removing the interdependence. ? ?? \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 11:06
  • \$\begingroup\$ @TimMottram See the circuit I added. I've shown individual switches because that's all the circuit editor allows. You can do it this way or the "series" method you allude to. \$\endgroup\$
    – Andy aka
    Commented Apr 23, 2014 at 11:08
  • \$\begingroup\$ Thanks Andy, that is what I was getting at in my last comment, I think this will produce a much better result. Thank you for you time. \$\endgroup\$
    – Tim M
    Commented Apr 23, 2014 at 11:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.