# Logarithmic resistor ladder

A logarithmic resistor ladder is an electronic circuit, composed of a series of resistors and switches, designed to create an attenuation from an input to an output signal, where the logarithm of the attenuation ratio is proportional to a binary number that represents the state of the switches.
The logarithmic behavior of the circuit is its main differentiator in comparison with digital-to-analog converters (DACs) in general, and traditional R-2R Ladder networks specifically. Logarithmic attenuation is desired in situations where a large dynamic range needs to be handled. The circuit described in this article is applied in audio devices, since human perception of sound level is properly expressed on a logarithmic scale.

## Logarithmic input/output behavior

As in digital-to-analog converters, a binary number is applied to the ladder network, whose N bits are treated as representing an integer value:
    $\mathrm {CodeValue} =\sum _{i=1}^{N}s_{i}\cdot 2^{i-1}$
where $s_{i}$ is 0 or 1 depending on the state of the ith switch.
For comparison, recall a conventional linear DAC or R-2R network produces an output voltage signal of:
    $V_{out}=V_{in}\cdot c\cdot (\mathrm {CodeValue} +d)$
where $c$ and $d$ are design constants and where $V_{in}$ typically is a constant reference voltage (or is a variable input voltage for a multiplying DAC.)
In contrast, the logarithmic ladder network discussed in this article creates a behavior as:
    $\log(V_{out}/V_{in})=c\cdot \mathrm {CodeValue}$
which can also be expressed as $V_{in}$ multiplied by some base $\alpha$ raised to the power of the code value:
    $V_{out}=V_{in}\cdot \alpha ^{\mathrm {CodeValue} }$
where $c=\log(\alpha )\,.$

## Circuit implementation

This example circuit is composed of 4 stages, numbered 1 to 4, and includes a source resistance R$_{source}$ and load resistance R$_{load}$.
Each stage i has a designed input-to-output voltage attenuation Ratio$_i$ as:
    $Ratio_{i}={\text{if}}\;sw_{i}\;{\text{then}}\;\alpha ^{2^{i-1}}\;{\text{else}}\;1$
For logarithmic scaled attenuators, it is common practice to equivalently express their attenuation in decibels:
    $dB(Ratio_{i})=20\log _{10}\alpha ^{2^{i-1}}=2^{i-1}\cdot 20\cdot \log _{10}\alpha$ for $i=1..N$ and $sw_{i}=1$
This reveals a basic property: $dB(Ratio_{i+1})=2\cdot dB(Ratio_{i})$
To show that this $Ratio_{i}$ satisfies the overall intention:
    $\log(V_{out}/V_{in})=\log(\prod _{i=1}^{N}Ratio_{i})=\sum _{i=1}^{N}\log(Ratio_{i})=\log(\alpha )\cdot CodeValue=c\cdot CodeValue$
The different stages 1 .. N should function independently of each other, as to obtain 2$^N$ different states with a composable behavior. To achieve an attenuation of each stage that is independent of its surrounding stages, either one of two design choices is to be implemented: constant input resistance or constant output resistance. Because the stages operate independently, they can be inserted in the chain in any order.

### Constant input resistance

The input resistance of any stage shall be independent of its on/off switch position, and must be equal to R$_{load}$.
This leads to:
    ${\begin{cases}R_{i,parr}=(R_{i,b}\cdot R_{load})/(R_{i,b}+R_{load})\\R_{i,a}+R_{i,parr}=R_{load}\\R_{i,parr}/(R_{i,a}+R_{i,parr})=Ratio_{i}\end{cases}}$
With these equations, all resistor values of the circuit diagram follow easily after choosing values for N, $\alpha$ and R$_{load}$. (The value of R$_{source}$ does not influence the logarithmic behavior)

### Constant output resistance

The output resistance of any stage shall be independent of its on/off switch position, and must be equal to R$_{source}$.
This leads to:
    ${\begin{cases}R_{i,ser}=R_{i,a}+R_{source}\\R_{i,ser}\cdot R_{i,b}/(R_{i,ser}+R_{i,b})=R_{source}\\R_{i,b}/(R_{i,ser}+R_{i,b})=Ratio_{i}\end{cases}}$
Again, all resistor values of the circuit diagram follow easily after choosing values for N, $\alpha$ and R$_{source}$. (The value of R$_{load}$ does not influence the logarithmic behavior).
For example, with a R$_{load}$ of 1 kΩ, and 1 dB attenuation, the resistor values would be: R$_a$ = 108.7 Ω, R$_b$ = 8195.5 Ω.
The next step (2 dB) would use: R$_a$ = 369.0 Ω, R$_b$ = 1709.7 Ω.

## Circuit variations

* The circuit as depicted above, can also be applied in reverse direction. That correspondingly reverses the role of constant-input and constant-output resistance equations.
* Since the stages do not significantly influence each other's attenuation, the stage order can be chosen arbitrarily. Such reordering can have a significant effect on the input resistance of the constant output resistance attenuator and vice versa.

## Background

R-2R ladder networks used for linear digital-to-analog conversion are old (Resistor ladder § History mentions a 1953 article and a 1955 patent).
Multiplying DACs with logarithmic behavior were not known for a long time after that. An initial approach was to map the logarithmic code to a much longer code word, which could be applied to the classical (linear) R-2R based DAC. Lengthening the codeword is needed in that approach to achieve sufficient dynamic range. This approach was implemented in a device from Analog Devices Inc., protected through a 1981 patent filing.