# Experimental determination of impulse response function

I am doing an experiment (I major in physics, not familiar with signal processing so there may be some naive mistakes, please be kind) which requires acting arbitrary pulses on a system.

I use an AWG to generate the pulse (current), bring it to the linear amplifier, and eventually, to a coil (than the current is converted to the magnetic field and act on the system). The pulse will be distorted by the coil and the amplifier, and U want to know the impulse response function (f), so as to modify my input pulse.

Is there a method which can determine the impulse response function experimentally?

I know a little about the method which says: generate a number of input pulses, use an oscilloscope to get the distorted pulse, and f is treated as a matrix which can be determined by multiply the "inverse of input pulse matrix" and the output pulse matrix. Can this really work? Is there a standard method to determine f (I suppose there is)?

You can determine the impulse response of a system using Gaussian random noise as a test signal, let's name it $x$. Then, you have to measure the system response $y$ to that noise. With a considerable amount of digital samples from both signals then you can compute the crosscorrelation between $x$ and $y$ as follows:
$$R_{xy}(n\Delta t) = \frac{1}{N-n} \sum_{k=1}^{N-n-1} x[k] \cdot y(k-n\Delta t)$$
If the white noise has a bandwidth that is much greater than the bandwidth of the system (for instance, 100 times) then the crosscorrelation is equal to the impulse response times the power spectrum density of the noise (which is constant) divided by 2. Of course, there is some uncertainty in the estimation, which decreases with large values for $N$.