I have two sets of one second voltage data sampled with 4000Hz and I can plot all the voltage points vs time points in MATLAB. So it means I have a data matrix with with length of 4000 one column for the time in seconds the other for the voltage.

Now I have simultaneously sampled two data matrix in time domain with this way. One is input to a filter (Vin,t) the other is output (Vout,t). I want to find the transfer function both for amplitude and phase shift.

How can I take the Laplace transform of this data? Can I do it without converting it to a expressible function like poly-fit?


1 Answer 1


Since you are sampling a real signal, you can just use the a Fourier transform, the fft function in MATLAB. You can divide the FFT of the output by the input, and then fit a curve to the result to approximate the transfer function

  • $\begingroup$ How about phase shift data? $\endgroup$
    – floppy380
    Nov 20, 2017 at 18:58
  • $\begingroup$ Do you mean semilogx(abs(fft(out))./abs(fft(in)))? $\endgroup$
    – floppy380
    Nov 20, 2017 at 19:03
  • $\begingroup$ @user1234 You could interpolate real and imaginary parts separately $\endgroup$
    – Robert L.
    May 20, 2018 at 5:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.