Best way for finding transfer function in time domain

13 views (last 30 days)
I have the input and output in time domain and I want to find transfer function in time domain. one way is fist find transfer function in freq domain and after that get ifft for caculate transfer function in time domain. I explain this way in the following code:
FT_input=fft(input,NFFT);
FT_output=fft(output,NFFT);
TransferFunction=(FT_output./FT_input);
TimeDomainTF=ifft(TransferFunction,NFFT);
I want to know is there any simple way that I dont have ti get fft and ifft. I want to find Ht in following eqn:
conv(input,Ht)=output

Accepted Answer

Star Strider
Star Strider on 29 Jan 2023
If you want to create a filter from it (returning numerator and denominator coefficient vectors), use the Signal Processing Toolbox invfreqz function. Then use filtfilt with the estimated filter and ‘input’ to get ‘output’.
To estimate it as a control system, use the System Identification Toolbox functions iddata and then either ssest or tfest. Then use lsim with ‘input’ (and its associated time vector) to get ‘output’.
The approach you use depends on the result you want.
.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!