I have non-uniformly sampled transfer function data (magnitude only) in the range of 100kHz and 200MHz. Using this transfer function, I would like to calculate output from specific input. Question : To obtain phase of the transfer function from the magnitude data, I am trying to use Hilbert transform. (1) Phase = - imag( Hilbert( log ( TF_magnitude ) ) ); Is above line of code right? I found the below equation for calculating the minimum phase. (2) θ(ω)=−H[ln(G(ω))] I do not know why (1) use imag function. I do not have the transfer function data under 100kHz, especially 0Hz. In this case, should I extrapolate the data under 100kHz? or insert 0? insert mean value? Does this make a big difference in output? The sampling period of the transfer function is not linear, but uniform in log-scale. To make this linear, I tried to interpolate this using cubic-spline. But as the figure below, the transfer function does not have any regularity. Therefore, I am trying to extract input data that is corresponding to transfer function data, calculate the output, and then interpolate the output for linear spaced output points. Does it matter if I work this way? In addition, should I make the output (or the transfer function) linear to perform IFFT in MATLAB? As I am poor at English, I am not sure my thoughts are conveyed.. but I hope so. Any help would be appreciate.