Noise shaper loop equations

Here are a few quick notes on digital noise shapers, primarily for my own reference.

Introduction

Here we have a traditional noise shaper setup, consisting of an Nth-order loop filter and a quantizer:

Figure 1: Noise shaper loop

When a linear model is assumed, the noise transfer function (NTF) $H_{ntf}$ can be expressed as a function of the loop filter: $$H_{ntf}(z) = \frac{1}{1+H_{loop}(z)}.$$

The loop filter also changes the frequency response of the input signal: $$H_{sig}(z) = \frac{H_{loop}(z)}{1+H_{loop}(z)}.$$

Assuming the loop gain is very high in the lower part of the spectrum where the desired signal is present, this frequency response can be approximated as: $$ H_{sig}(z) = \frac{H_{loop}(z)}{1+H_{loop}(z)} \approx \frac{H_{loop}(z)}{H_{loop}(z)} = 1. $$

In effect, given enough in-band loop gain, the frequency domain distortion is negligible.

Causal loop filters

Given a desired noise transfer function H_{ntf}, the loop filter can be derived as follows: $$H_{loop}(z) = \frac{1}{H_{ntf}(z)} - 1$$

Now, splitting the NTF into its poles A(z) and zeroes B(z), the loop filter can be expressed as: $$H_{loop}(z) = \frac{A_{ntf}(z)}{B_{ntf}(z)} - 1$$

and therefore: $$H_{loop}(z) = \frac{A_{ntf}(z) - B_{ntf}(z)}{B_{ntf}(z)}.$$

For the loop to be causal, the loop filter must have at least one pure delay. Given that $A(z) = 1 - a_1 \cdot z^{-1} - a_2 \cdot z^{-2} - \ldots - a_n \cdot z^{-n}$, if we force the first coefficient of B(z), i.e. $b_0$, to be equal to 1, the first coefficient of the resulting loop filter numerator will be zero and the loop filter is guaranteed to have at least one delay.