Find Transfer Function from Experimental Data

AI Thread Summary
To find a transfer function from experimental input and output data, Fourier transforms can be utilized by performing FFT on both datasets and dividing the output FFT by the input FFT. However, this method may not yield accurate predictions without adjustments, such as applying gain and offset. Key concepts that may be overlooked include the need to calculate a new output for a new input using the inverse FFT of the product of the new input FFT and the transfer function. Open-source tools like Octave can facilitate this process with built-in system identification functions. Properly implementing these steps can enhance the accuracy of the transfer function derived from experimental data.
arcticMouse
Messages
1
Reaction score
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
You can download opensource Octave. It has system identification functions, arx for example.
 
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:
Hi all I have some confusion about piezoelectrical sensors combination. If i have three acoustic piezoelectrical sensors (with same receive sensitivity in dB ref V/1uPa) placed at specific distance, these sensors receive acoustic signal from a sound source placed at far field distance (Plane Wave) and from broadside. I receive output of these sensors through individual preamplifiers, add them through hardware like summer circuit adder or in software after digitization and in this way got an...
I have recently moved into a new (rather ancient) house and had a few trips of my Residual Current breaker. I dug out my old Socket tester which tell me the three pins are correct. But then the Red warning light tells me my socket(s) fail the loop test. I never had this before but my last house had an overhead supply with no Earth from the company. The tester said "get this checked" and the man said the (high but not ridiculous) earth resistance was acceptable. I stuck a new copper earth...
Thread 'Beauty of old electrical and measuring things, etc.'
Even as a kid, I saw beauty in old devices. That made me want to understand how they worked. I had lots of old things that I keep and now reviving. Old things need to work to see the beauty. Here's what I've done so far. Two views of the gadgets shelves and my small work space: Here's a close up look at the meters, gauges and other measuring things: This is what I think of as surface-mount electrical components and wiring. The components are very old and shows how...
Back
Top