- #1
bot19
- 1
- 0
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 :
As I am poor at English, I am not sure my thoughts are conveyed.. but I hope so. Any help would be appreciate.
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.