I have a given FIR filter impulse response $h[k]$ for a linear system $y[k] = x[k] \star h[k]$. $x$ is some input, $y$ is the output of the system.
My goal is to construct a postfilter $g[k]$, so that we have $y[k] = x[k] \star h[k] \star g[k]$ with $h_{\rm overall}[k] = h[k] \star g[k]$ being minimum phase.
Though $h$ can vary, it will in general always have most of its zeros on the unit circle.
Question now: How can we construct $g[k]$? My original approach is quite simple:
- Let $a_i$ be zero of $h$ outside the unit circle, then form $G_i(z) = \displaystyle\frac{z - 1/a^\ast}{z-a}$
- Form the overall $G$ as $G(z) = \displaystyle\prod_i G_i(z)$
In theory this should work, right?
I implemented this approach in MATLAB and the results are completely useless. My assumption would be that there are (if my approach is correct) are of numerical nature. So my questions are:
- Is my approach described above correct?
- How can I implement this in Matlab the best way?