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.
Edit:
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.