Find Transfer Function from Experimental Data

In summary, the speaker is trying to find a useful function to predict output based on input and has attempted to use Fourier transforms to calculate a transfer function. However, the current results do not accurately predict the output and the speaker is seeking guidance on how to improve their approach. They have provided a sketch and pseudo code of their attempts and have been advised to use an opensource program, Octave, for system identification functions. The speaker has also been reminded to calculate new output using the inverse FFT function.
  • #1
arcticMouse
1
0
I would like to find a useful function to predict the output based on the input. I'm trying to figure out how to get the transfer function given actual input and output data.

What I've tried is getting a transfer function using Fourier transforms. I'm attemping to do a fft on both the input and the output and dividing the output over the input and using fft of the absolute value to get the transfer function. The problem is it doesn't allow me to predict the output very well, though it does give me something that looks like a sum of exponential which is what I expect. Do I need to subtract an offset or apply gain and an offset? (y = mx + b sort of thing). I think I'm missing some key concept that I don't know how to describe.

Here's a simple sketch of what I'm trying to do.

http://i.imgur.com/4eo1x.png

Here's some pseudo code of what I've tried. I don't have MATLAB or anything fancy to do this for me, I'm trying to write it for an arduino project.

input_fft = fft(input);
output_fft = fft(output);
tf_fd = output_fft / input_fft;
tf = fft(abs(tf_fd));

Just a point in the right direction would be great! Maybe I'm going about this all wrong.
 
Engineering news on Phys.org
  • #2
You can download opensource Octave. It has system identification functions, arx for example.
 
  • #3
Welcome to PF, arcticMouse! :smile:

Are you aware that you should calculate a newoutput for some newinput with:
newoutput = fftinverse(fft(newinput) * tf_fd)
 
Last edited:

1. What is a transfer function?

A transfer function is a mathematical representation of the relationship between an input signal and an output signal of a system. It describes how the system responds to different input signals and is often used to analyze and design control systems.

2. How do you calculate a transfer function from experimental data?

To calculate a transfer function from experimental data, you need to first collect data from the system by applying different input signals and measuring the corresponding output signals. Then, you can use mathematical techniques such as regression analysis or Fourier transforms to determine the transfer function that best represents the relationship between the input and output signals.

3. What type of data is needed to find a transfer function?

To find a transfer function, you need to collect both input and output data from the system. The input data can be in the form of step inputs, sinusoidal inputs, or any other type of signal that can be applied to the system. The output data should correspond to the input data and can be measured using sensors or other measurement devices.

4. Can a transfer function be used to predict future behavior of a system?

Yes, a transfer function can be used to predict the future behavior of a system. By analyzing the transfer function, you can determine how the system will respond to different input signals and make predictions about its behavior. However, the accuracy of these predictions will depend on the accuracy of the transfer function and the assumptions made during its calculation.

5. What are some limitations of using experimental data to find a transfer function?

One limitation of using experimental data to find a transfer function is that the data may not be perfectly accurate or may contain random noise. This can affect the accuracy of the transfer function and the predictions made using it. Additionally, experimental data may not cover the entire range of inputs and outputs, which can also impact the accuracy of the transfer function.

Similar threads

  • Electrical Engineering
Replies
6
Views
807
  • Electrical Engineering
Replies
14
Views
741
Replies
1
Views
835
  • Electrical Engineering
Replies
12
Views
2K
  • Electrical Engineering
Replies
11
Views
8K
  • Electrical Engineering
Replies
10
Views
1K
  • Electrical Engineering
Replies
3
Views
779
  • Electrical Engineering
Replies
4
Views
945
  • Electrical Engineering
Replies
2
Views
1K
  • Electrical Engineering
Replies
8
Views
939
Back
Top