I can't find out if it possible to compute the minimum-phase response corresponding to a given magnitude response using a Hilbert transformer. Is that possible?
When I write Hilbert transformer I mean a 90-degree phase shifter.
I know other ways to compute the minimum-phase response but since there are IIR filters that approximately can realize a Hilbert transformer I was wondering if it is possible to use the Hilbert transformer. Not sure if the answer is obvious but it is not a homework question.
Implementation of proposed
function y = test_minph(Mag) Mag = Mag(:); x = [Mag; Mag(end-1:-1:2)]; len = length(x); N = (len)/2-1; wn = [0; -1i*ones(N,1); 0; 1i*ones(N,1)]; xhat = real(fft(log(x))); y = -ifft(wn.*xhat); end
But the question is about how to compute the below using a Hilbert transformer (if possible) which is what robert johnson proposed.
function y = minphase(Mag) Mag = Mag(:); x = [Mag; Mag(end-1:-1:2)]; len = length(x); N = (len)/2-1; wn = [1; 2*ones(N,1) ; 1; zeros(N,1)]; xhat = real(ifft(log(abs(x)))); y = imag(exp(fft(wn.*xhat))); end
So it seems there are two different Hilbert transforms in play (don't know if they are dual) and I'm not sure how to compute the minimum-phase Hilbert transform using the 90 degree phase shift Hilbert transform. I hope it makes sense.