Characterising a system from its input and output I have 2 data sets sampled at regular intervals which represent the input and the output of a system. A quick analysis of the plots shows the following:


There is a proportional factor between the input and the output.
There is a delay before a change in the input is observable in the output. This delay depends on the scale of the change: larger changes in the input are observable in the output after a longer delay than smaller changes in the input.


I would like to approximate the system with a function, but I am novice in signal processing and I have no idea how to get started. I don't even know if this is a solvable problem. Any idea? I am comfortable using Matlab/Octave, and computer programming in general.

I can get more data from the system if required, but I cannot control the input. This is because the system is only observable when a PID controller keeps it stable.
Use the matlab cpsd (cross power spectral density) function on your two signals.
That will give you the frequency response.
Do an xcorr (cross correlation) to find the time delay between the two signals.
Do this for several pairs of input and output files and see if the results match between different pairs.
If they are (reasonably) similar then you could create an FIR filter that reproduces the frequency response and delay.

You could then apply the filter to a set of input data to approximate the expected output.

If there is a PID controller in the middle, however,  I don't know if this procedure will be enough.