I am trying to find out the transfer function of a real life continuous-time black box.

First thought is of course to input a delta and get the impulse response as the books have taught us but I think it is not feasible as you can't have a proper delta (infinite at one point).

Q1. How can I simulate a Dirac input in a way that I don't break my system and in a way that it is going to give me a pretty accurate result? Accurate meaning something that will look a lot like the impulse response.

Second thought is to do a frequency response analysis where I will input a few sinusoids at different frequencies and store the output.

Q2. How many periods should I gather for each sinusoidal so that I get an accurate output?

Q3. What effect would a few leading zeros on my input have on my output spectrum? Is it going to be the same as zero-padding?

A3. Yes, because zero-padding the input will lead to zero-padding the output which I will then FFT.

Q4. If the input signal stops abruptly and went to zero after a sufficient signal length time, would that discontinuity affect my output spectrum as well?

  • 1
    $\begingroup$ Is the black box discrete or continuous? Do you know if it is LTI? Memoryless? $\endgroup$
    – MBaz
    Commented Oct 25, 2015 at 0:31
  • $\begingroup$ The black box is continuous. I will update in on my question as well. $\endgroup$
    – Satrapes
    Commented Oct 25, 2015 at 11:34

1 Answer 1


If the system is continuous-time then you can't simulate an impulse (Dirac delta).

Generally people take a number of approaches:

  • Instead of using an impulse, find the step response of the system of interest. This can be related to the integral of the impulse response as the unit step is the integral of the unit impulse.

  • Generate a set of spaced sinusoids and measure the output phase and amplitude of each. The transfer function is found by interpolating these discrete frequency points.

  • Generate a swept sine wave (chirp) signal over a known frequency range and deconvolve the output to find the transfer function.

  • Generate a pseudorandom noise sequence, measure the response, and use it to estimate the transfer function.

  • $\begingroup$ Just curious though if it was digital obviously I could just enter one sample point as input, but wouldn't I still need a large enough amplitude on the sample point to get a proper response? $\endgroup$
    – Satrapes
    Commented Oct 25, 2015 at 11:38
  • $\begingroup$ In typical (real-world) discrete systems an “impulse sequence” is simulated by a unity-valued sample followed by a long string of zero-valued samples. This will produce a y(n) impulse response output sequence. If your system is linear, an input comprising a sample whose amplitude is 3 followed by a long string of zero-valued samples will produce an impulse response of 3y(n). $\endgroup$ Commented Oct 25, 2015 at 12:08
  • 1
    $\begingroup$ I agree that all these techniques work, if the system is LTI and memoryless, and if you the inputs cover the entire system's bandwidth. $\endgroup$
    – MBaz
    Commented Oct 25, 2015 at 17:09
  • $\begingroup$ @MBaz: I'm not sure what you mean by memoryless in this context? The LTI system will have memory unless it's a trivial constant gain, and I'm I think the TI part of LTI covers the stochastic meaning? Clarification would be appreciated! $\endgroup$
    – Peter K.
    Commented Oct 25, 2015 at 19:10
  • 1
    $\begingroup$ @PeterK. You're right, the "memoryless" part is not necessary. I was thinking of something else and managed to get myself confused. The system needs to be LTI and the inputs need to cover the entire bandwidth. $\endgroup$
    – MBaz
    Commented Oct 25, 2015 at 21:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.