Tuesday, November 28, 2017

Step response overshoot in IIR filters


Is there an analytic expression by which it is possible to calculate overshoot of step-response of second order IIR digital filter? I have tried to search through Mitra's signal processing book and through some other materials, but wasn't able to find it.



Answer



For the general second order section (biquad)


$H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}} = b_0\frac{(1-qz^{-1})(1-\bar{q}^{-1}z^{-1})}{(1-pz^{-1})(1-\bar{p}^{-1}z^{-1})}$


with a pair of complex conjugate zeros ($q,\bar{q}, q=R_qe^{j\theta_q}$) and poles ($p,\bar{p}, p=R_pe^{j\theta_p}$) the step response $s(n)$, if put on this form


$s(n) = a_{\infty}(1+d(n))$


where $a_{\infty}$ is the steady-state response and $d(n)$ the transient response, is governed by


$a_{\infty} = \frac{1-2R_q\cos(\theta_q)+R_q^2}{1-2R_p\cos(\theta_p)+R_p^2}$


$d(n) = K(\lambda_1\sin(\theta_p[n+1]) + \lambda_{-1}\sin(\theta_p[n-1]) - \lambda_{2}\sin(\theta_p[n+2])-\lambda_{0}\sin(\theta_pn))$



with


$K = \frac{R_p^n}{\sin(\theta_p)(1-2R_q\cos(\theta_q) + R_q^2)}$


$\lambda_{-1} = R_q^2, \quad \lambda_{0} = 2R_qR_p\cos(\theta_q)+R_q^2R_p^{-1}, \quad \lambda_{1} = 2R_q\cos(\theta_q)+R_p^2, \quad \lambda_{2} = R_p$


If there are no zeros,


$\lambda_{-1} = 0, \quad \lambda_{0} = 0, \quad \lambda_{1} = R_p^2, \quad \lambda_{2} = R_p, \quad K=\frac{R_p^n}{\sin(\theta_p)}$


and the expression for $d(n)$ reduces to the expression provided in the other post.


If the independent variable $n$ is treated at continuous, the letter $t$ is used instead of $n$, then the value of $t$ that maximizes $d(t)$ can be found. It is given by


$t_{max} = \frac{1}{\theta_p}\left( \tan^{-1}(-\frac{\ln(R_p)\sin(\theta_p)(\lambda_1-\lambda_{-1}) - \lambda_2\ln(R_p)\sin(2\theta_p) + \lambda_1\theta_p\cos(\theta_p) + \lambda_{-1}\theta_p\cos(\theta_p)-\lambda_2\theta_p\cos(2\theta_p) - \lambda_0\theta_p}{\ln(R_p)\cos(\theta_p)(\lambda_1+\lambda_{-1}) - \lambda_2\ln(R_p)\cos(2\theta_p) - \lambda_1\theta_p\sin(\theta_p) + \lambda_{-1}\theta_p\sin(\theta_p)\lambda_2\theta_p\sin(2\theta_p) - \lambda_0\ln(R_p)}) - k\pi\right)$


The value of $t_{max}$ can then be rounded towards nearest integer and used in the response for $d(n)$. In the expression for $t_{max}$, the value of $k$ must be chosen such that $t_{max}$ is in range $0\leq t_{max} \leq \frac{\pi}{\theta_p}$ and it must be verified that $t_{max}$ is a maximum and not a minimum.


For the all pole case this plot illustrates the maximum overshoot as function of pole radius and angle.



enter image description here


No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...