Calculating the SNR of a digital filter by knowledge of the impulse response

659 Views Asked by At

Lets say we have a known Impulse response $h[k]$ of a digital filter (e.g. IIR filter) where k is from 0 to $\infty$. Additonally, we have an infinite table of noise data $n[k]$ from which we know that this noise is white. What is the Signal-to-Noise Ratio (SNR) if I define it liked this:

$$ \textrm{SNR}=\frac{\sqrt{E[((h \star n)[k]/\textrm{gain})^2]}}{\sqrt{E[n[k]^2]}} $$ where $\textrm{gain}=\textrm{const}$ is the gain of the digital filter and $E$ the mean value?

Sure, I could generate a long data table $n[k]$ and calculate it numerically, but I want a analytical solution for it.

1

There are 1 best solutions below

0
On

The answer is easy if one knows it. The convolution is a sum like $$ (h\star n)[k]=h[0]n[k]+h[1]n[k-1]+h[2]n[k-2]+\ldots $$ The SNR is the Root-Mean-Square of this divided by the RMS value of the input $n[k]$. The expectation value of the squared convolution term is for Gaussian white noise (with a mean value of 0) $$ E[((h\star n)[k])^2]=\sigma^2(h[0]^2+h[1]^2+h[2]^2+\ldots)=\sigma^2\sum_{k=0}^\infty h[k]^2 $$ with $\sigma$ as the standard deviation of the noise. The expection value of the squared white noise is the standard deviation $E[n[k]^2]=\sigma^2$. As expected, the solution of the SNR is independent of $\sigma$ so that $$ \mathrm{SNR}=\frac{1}{\mathrm{gain}}\sqrt{\sum_{k=0}^\infty h[k]^2 } $$ This means that the SNR is the RMS value of the impulse response divided by the gain of the digital filter.