Electronic – How to modify zeros and poles in a delta-sigma modulator loop

adccontrol systemsignal processingsignal-theory

In this specific case, I am modelling a delta-sigma analog-to-digital converter with a basic loop in which the output V is fed back with unity gain to be subtracted from the previously sampled input U (discrete time) and this difference is fed to an integrator modelled with the transfer function:

$$G(z) = \frac{z^{-1}}{1- z^{-1}}$$

1st order block diagram

Quantization noise is added in form of error E to the output of the integrator, giving the output V. It follows:

$$V(z)=\frac{G(z)}{1+G(z)}U(z)+\frac{1}{1+G(z)}E(z)$$

The complete model, however, should be a third-order system in which the output V is fed back with unity gain twice more so that it is once subtracted from the sampled input in the outer loop, this difference is then integrated and fed to the next loop, in which the fed-back output is subtracted again. This new delta enters the second integrator and the same process repeats once more in the inner loop, where the quantization error is added as described in the first lines above.
In total there will be 2 identical outer loops and a third inner loop where the quantization is added. In total there will be 3 integrators with transfer function G.

3rd order block diagram with gains for poles

Now I'm interested in the Noise Transfer Function: NTF = V / E. According to my computations:

procedure for ntf
NTF with gain unity in all three feedback paths (alpha, beta and gamma are 1) should be equal to:

$$\text{NTF}(z)=\frac{V(z)}{E(z)}=\frac{1}{G(z)^3+3G(z)^2+3G(z)+1}$$

It follows:

$$\text{NTF}(z)=\frac{(z-1)^3}{(z-1)^3+3(z-1)^2+3(z-1)+1}$$

From here, I would like to do two things:

  • Replace the poles z1 = 1, z2 = 1 and z3 = 1 of the NTF with different values. In order to do so, I simply introduced a gain factor in the feedback path of each of the three loops (alpha, beta and gamma as above). This will add three coefficients in the denominator that I can play with.

However:

  • I would also like to replace two of the zeros of the NTF, which are now all equal to 1, with a pair of complex conjugate zeros. This should provide "lower noise around the zeros, at the expense of a less effective shaping at z = 1, thus increasing the usable frequency range".

If I understand correctly, the numerator N(z) of the NTF should be something like this in the end:

$$N(z)=(z-1)(z-e^{jω})(z-e^{-jω})$$

My question is: how do I achieve this? What should I add in the model to shift the zeros slightly away from DC?

Just for information: once I have also obtained a pair of complex conjugate zeros, I should solve an optimization problem to find the optimal position of poles and zeros in the NTF for a determinate quantization noise power. So my humble guess is that ideally I should add something as simple as a gain in the model for the zeros, too, so that can adjust the numerator of the NTF, too, and solve for the optimal zeros within certain boundaries.

Best Answer

One way you can achieve "placeable zeros" is by using a dynamic feedback. As given in the question, this is what you achieved with constant feedback on three loops: $$G(z)=\frac{1}{z-1}$$ $$\text{NTF(z)}=\frac{1}{\left(1+\frac{\alpha}{z-1}\right)\left(1+\frac{\beta}{z-1}\right)\left(1+\frac{\gamma}{z-1}\right)}$$ $$\text{NTF(z)}=\frac{(z-1)^3}{(z-1+\alpha)(z-1+\beta)(z-1+\gamma)}$$

Now see what happens when replacing constant feedback for dynamic feedbacks with pole-zero cancelation: $$A(z)=\alpha\frac{z-1}{z-\lambda_1}$$ $$B(z)=\beta\frac{z-1}{z-\lambda_2}$$ $$C(z)=\gamma\frac{z-1}{z-\lambda_3}$$ $$\text{NTF(z)}=\frac{1}{\left(1+A(z)G(z)\right)\left(1+B(z)G(z)\right)\left(1+C(z)G(z)\right)}$$ $$\text{NTF(z)}=\frac{1}{\left(1+\frac{\alpha}{z-\lambda_1}\right)\left(1+\frac{\beta}{z-\lambda_2}\right)\left(1+\frac{\gamma}{z-\lambda_3}\right)}$$ $$\text{NTF(z)}=\frac{(z-\lambda_1)(z-\lambda_2)(z-\lambda_3)}{(z-\lambda_1+\alpha)(z-\lambda_2+\beta)(z-\lambda_3+\gamma)}$$

With this, you have achieve three real "placeable zeros" at \$\lambda_1,\lambda_2,\lambda_3\$ and three real placeable poles at \$\lambda_1-\alpha,\lambda_2-\beta,\lambda_3-\gamma\$. In order to achieve complex zeros, at least one of the feedback loops would have to be of second order. I also believe you will need only two feedback loops instead of three, but perhaps other arrangements are possible: $$A(z)=0$$ $$B(z)=\beta\frac{z-1}{z-\lambda_1}$$ $$C(z)=\gamma\frac{z-1}{\left(z-\lambda_2e^{j\theta}\right)\left(z-\lambda_2e^{-j\theta}\right)}$$ $$\text{NTF(z)}=\frac{1}{\left(1+0\right)\left(1+\frac{\beta}{z-\lambda_1}\right)\left(1+\frac{\gamma}{\left(z-\lambda_2e^{j\theta}\right)\left(z-\lambda_2e^{-j\theta}\right)}\right)}$$ $$\text{NTF(z)}=\frac{\left(z-\lambda_1\right)\left(z-\lambda_2e^{j\theta}\right)\left(z-\lambda_2e^{-j\theta}\right)}{\left(z-\lambda_1+\beta\right)\left(\left(z-\lambda_2e^{j\theta}\right)\left(z-\lambda_2e^{-j\theta}\right)+\gamma\right)}$$