I have a dynamic calibration system. With it, I am applying a experimental step input to a pressure sensor. The goal is to measure the step response of the sensor and use it to calculate the frequency response.

The problem I have is that the sensor has a fast rise time. Due to the nature of what I doing, I cannot make the rise time of the input signal much faster than it already is. So I am looking for some reference on how the non-ideal input rise time of a signal affects the measured step or frequency response. Would it be reasonable to quantify error based on the difference in the frequency domain between ideal and non-ideal step inputs?

I have looked my school's library a number of times for papers on this, but I could just be using the wrong words.

  • $\begingroup$ Okay, what are we talking about physically? Gas/Liquid/Mud/rubber band/metal. You seem to have swapped conditions; above you say the sensor is fast and the stimulus is slow. In the comment below you say the sensor is slow compared to the stimulus. $\endgroup$
    – rrogers
    Commented Jan 15, 2019 at 17:43
  • $\begingroup$ I am measuring a pressure rise with a pressure sensor. Apologies if I was unclear below. I mean that the rise time of the pressure input (going from 0 to 1) is a significant fraction of the measured sensor rise time. E.g. the sensor has a rise time of 1 sec and the input rise time (pressure) has a rise time of 0.1 sec. The input rise time is faster than the sensor rise time, but is it fast enough to call the sensor response to that a step response? How fast does the input rise time to a system need to be to approximate a step response output? $\endgroup$
    – Mark
    Commented Jan 15, 2019 at 19:51
  • $\begingroup$ Well, "approximation" is nebulous. You need to specify how good you want the estimate to be. Then one can plot and calculate the expected random and/or systematic error in the approximation. I would presume that your phrase "rise time" is 10% to 90%; is this right? For instance, if you model the sensor response as a simple exponential (say RC in electronics) then compare results for a step .1 second rise time versus 1usec rise time of the stimulus you would get a good idea about what your sensor response error might be. This is easy with Laplace transforms. $\endgroup$
    – rrogers
    Commented Jan 15, 2019 at 20:19
  • $\begingroup$ What you are lacking is responses to frequencies above 2pi/.1 hertz though (approximately). Your sensor probably couldn't repsond to that very much in any case. $\endgroup$
    – rrogers
    Commented Jan 15, 2019 at 20:21

1 Answer 1


So, when you remember how the step response, impulse response and frequency response are related, you'll notice that if you, instead of an actual impulse integral (i.e. a step) use something that is wider, then the frequency response simply gets windowed to lower frequencies.

In other words, and to put it as an information-gathering problem:

if the bandwidth of your excitation signal is limited (e.g. by a slow rise time of your step), then the information you can get about a system reacting to that is limited to the frequencies in the excitation.

It's often physically hard to make a large jump excitation. But maybe smaller jumps work, and you'd be better of

  1. Generating a pseudorandom (band-limited) white signal (and save it!)
  2. exciting your system with that
  3. correlating the output of your system with the known white signal

The idea is this: you get the frequency response as the transform of the impulse response.

A white signal $s$ has the property ($*$ representing convolution here, ${}^*$ meaning complex conjugation, which is identity for real-valued signals)

$$s(t) * s^*(-t) = \delta\text,$$

i.e. you can "generate" an impulse $\delta$ by correlating a white signal with itself.

Knowing that your system has a step response and impulse response $h$, and knowing that convolution is commutative, we can do the following to find that:

$$\delta * h = s(t)*s^*(-t) *h = s(t)*h*s^*(-t)$$

In other words: instead of exciting your system with an impulse, which can be hard to do, to get the impulse response, we excite it with a white signal, which we can (withing the bounds of our time and bandwidth restrictions) produce digitally.

Then, we just correlate the output of the system with the same white signal, and get a result that is the same as had we put on an impulse of the same bandwidth as the white signal – but the white signal can be made arbitrarily long, so that very small amplitudes of excitation suffice to deliver the same energy as a really high, short pulse.

This is something that is commonly done to identify systems (especially: communication channels) in digital communications, but it applies to any LTI system.

  • $\begingroup$ Ok so if I understand you correctly, I should excite my system with a white signal in order to find the frequency response. I am a little confused as how to do this however. The system I am trying to find the frequency response for is a physical sensor that I am testing experimentally (apologies if that was unclear). I can experimentally generate something close to a step input, but I cannot experimentally generate a white signal. So should I use the white signal to digitally excite the system I calculated for the sensor from the non-ideal step input? And thanks for the thorough response! $\endgroup$
    – Mark
    Commented Jan 11, 2019 at 17:01
  • $\begingroup$ ah shoot, as a software defined radio guy, I tend to forget that most real-world entities aren't as easily controlled as RF! Um, so if you had something that could generate a real-world white signal, that would be optimal. What is the sensor specifically? $\endgroup$ Commented Jan 11, 2019 at 19:50
  • $\begingroup$ All good! It's a high-frequency pressure sensor. I am using an apparatus to generate a step input to the sensor, but It probably isn't fast enough (relative to the sensor's rise time) to really call it a step input. Unfortunately I don't have a way to generate a white signal in a controlled manner. And part of the problem comes from the fact that this is the highest bandwidth sensor I have, so I can't measure the input better. So if I tried to reconstruct the input and divide the measured signal by it in the frequency domain, it would really just be guess work. $\endgroup$
    – Mark
    Commented Jan 11, 2019 at 20:54
  • $\begingroup$ hm. I mean, we're going into the mechanical aspects of this, but when you say "not fast enough" about the actor apparatus: So, trying to get a feeling for this. Say your actor needs $\Delta t$ time to induce a pressure change of $\Delta P$ pressure. Can the thing be modified to be faster at the expense of producing lower amplitude? $\endgroup$ Commented Jan 11, 2019 at 21:00
  • $\begingroup$ Unfortunately, not really. I need specifically low-magnitude pressure steps as inputs and the calibration system has serious limitations there. I'm pretty certain I can't do anything on the physical side to make it better, so I am looking for more of a way to quantify error. Like say I know the sensor has a rise time 1 second, and I know my input rise time is around 0.1 seconds, then how wrong would my frequency response calculated from this data be? Is there a frequency it would roughly correct to? $\endgroup$
    – Mark
    Commented Jan 12, 2019 at 18:58

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.