Question, how can I determine the impulse response function of a first order hold? On Wikipedia it is simply stated as:

$$ h_{\mathrm{FOH}}(t)\,= \frac{1}{h} \mathrm{tri} \left(\frac{t}{h} \right) = \begin{cases} \frac{1}{h} \left( 1 - \frac{|t|}{h} \right) & \mbox{if } |t| < h \\ 0 & \mbox{otherwise} \end{cases} \ $$

But given it's implementation $$f(t) = f(kh) + \frac{t - kh}{h}(f((k+1)h) - f(kh)) \text{ with }kh \leq t < (k+1)h$$

how do I obtain $h_{FOH}(t)$?


So if $f(kh)=δ(0)$ for $k=0$.

For $k=−1$, e.g., $−h≤t<0$ we get $f(t)=f(−h)+\frac{t+h}{h}(f(0)−f(−h))$ combined with $f(−h)=0$ this results in $f(t)=\frac{t+h}{h}\delta(0)$.

For $k=0$, e.g., $0≤t<h$ we get $f(t)=f(0)+\frac{t}{h}(f(h)−f(0))=δ(0)−\frac{t}{h}\delta(0)$.

So we get $h_{\mathrm{FOH}}(t)\,= \begin{cases} \frac{t + h}{h} \delta(0) & \mbox{if } -h \leq t < 0 \\ \delta(0) - \frac{t}{h} \delta(0) & \mbox{if } 0 \leq t < h \\ 0 & \mbox{otherwise} \end{cases}$

what then follows, is that you have to "see" that this equals the formula with $\text{tri}$ function, as at the start of this message.

clear all;
close all;

h = 0.01;
t = -1:h:1;

for i = 1:length(t)
    if -h <= t(i) && t(i) < 0
        y(i) = (t(i) + h) / h;
    elseif 0 <= t(i) && t(i) < h
        y(i) = 1 - t(i)/h;
        y(i) = 0;

fohImpl = @(t,h) triangularPulse(t/h);

hold all;
  • $\begingroup$ Where did you get the second expression? It looks like the definition of a second-order hold. $\endgroup$ – TimWescott May 12 at 22:27
  • $\begingroup$ @TimWescott, mathworks.com/help/control/ug/… $\endgroup$ – WG- May 12 at 22:44
  • $\begingroup$ D'oh -- I got my orders confused. 30 years in engineering, and I still can't count. $\endgroup$ – TimWescott May 13 at 1:59
  • $\begingroup$ it's not second-order. there are different competing definitions of the FOH in the Wikipedia article. it appears to me that the "implementation" depicted by WG is this one. $\endgroup$ – robert bristow-johnson May 13 at 4:30


$f(t)$ is the expected output after passing a sampled function through the first order hold function with impulse response $h_{FOH}(t)$.

The sampled function is $f(kh)$, with $k$ being the sample index and $h$ being the sample interval, with zeros elsewhere as a continuous time process. The output is the continuous-time convolution of $f(kh)$ with $h_{FOH}(t)$. In the first-order hold, $h$ is also the duration of the hold time, so spanning one sample interval.

If $f(kh) = \delta(0)$, with $k=0$, which is the unit impulse at time $t=0$, the result should be the impulse response, $h_{FOH}(t))$.

| improve this answer | |
  • $\begingroup$ I am sorry but I need a little more help then a hint. This isn't an assignment, I simply want to know the answer. $\endgroup$ – WG- May 13 at 0:47
  • $\begingroup$ @WG- Happy to help! Where are you stuck? Use an impulse for $f(kh)$ in the second equation and you get the first equation. Did you try? $\endgroup$ – Dan Boschen May 13 at 0:52
  • $\begingroup$ So if $f(kh) = \delta(0)$ for $k=0$. For $k = -1$, e.g., $-h \leq t < 0$ we get $f(t) = f(-h) + \frac{t + h}{h}(f(0) - f(-h))$ combined with $f(-h) = 0$ this results in $f(t) = \frac{t + h}{h} \delta(0)$ For $k = 0$, e.g., $0 \leq t < h$ we get $f(t) = f(0) + \frac{t}{h}(f(h) - f(0)) = \delta(0) - \frac{t}{h}\delta(0)$. So we get $$ h_{\mathrm{FOH}}(t)\,= \begin{cases} \frac{t + h}{h} \delta(0) & \mbox{if } -h \leq t < 0 \\ \delta(0) - \frac{t}{h} \delta(0) & \mbox{if } 0 \leq t < h \\ 0 & \mbox{otherwise} \end{cases} \ $$ $\endgroup$ – WG- May 16 at 13:59
  • 1
    $\begingroup$ (funny the mark-up shows up now). Yes I see now, very good. I got caught up on not seeing that $\delta(0)$ is simply 1 regardless of $t$. For example $f(t) = \delta(0)$ is the same thing as saying $f(t) =1$.. $\endgroup$ – Dan Boschen May 16 at 17:15
  • 1
    $\begingroup$ Thanks for your help though. It was actually a lot easier, I was simply thinking far to complex. I accept the fact that coming to the conclusion that you can reformulate it to the $\text{tri}$ function is mere algebra. $\endgroup$ – WG- May 16 at 17:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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