I have the irrational transfer function

$$H(s)=\mathrm{e}^{-a\sqrt{s}}$$ With the inverse Laplace transform $$ h(t) = \frac{a\,\mathrm{e^{-a^2/(4t)}}}{2\sqrt{\pi}~t^{3/2}} $$ For $a > 0$

How can I implement the system on a computer to plot the phase and magnitude response and convolve a signal with the transfer function in the frequency domain.

Do I just evaluate $s$ at $i\omega$ since this bounded to physical values. Or do I need to perform a bilinear transform and substitute $s$ for $s\leftarrow {\frac {2}{T}}{\frac {z-1}{z+1}}$ then evaluate $z$ as $e^{iw}$.


That depends on what you want to plot: The response of the continuous time system or the response of a sampled discrete time system, which will always depend on the choice of sample rate.

Your system is not band-limited, so it can't be sampled without some amount of aliasing.

Do I just evaluate s at iω

If you just want to look at the approximate frequency response of the continuous time system, that's probably your best way. Keep in mind that this has infinite bandwidth: you can only plot a finite section of it.

and convolve a signal with the transfer function in the frequency domain.

That is much more complicated. You will need to pick a sample rate and figure out what amount of aliasing you can tolerate. There are multiple methods to create the discrete time transfer function:

  • Sample the impulse response
  • Sample the transfer function (with some fudging around Nyquist)
  • Use the bilinear transform
  • Fit the transfer function over the frequency range of interest with a least square error pole/zero searching algorithm

All of these methods will give somewhat different results and none will match the continuous function perfectly. Which one is best, depends on the requirements of your application.

In short you can try to match the time domain behavior or the frequency domain behavior but you can't match both at the same time.


If you have the symbolic math toolbox, then you should be able to follow the instructions in Chapter 3 here.

I tried to do this for your example:

syms t tau 
a = 10;
omega = 2*pi*100;
f = a*exp(-a^2/(4.0*t))/(2.0*sqrt(pi)*t^(3.0/2.0));
g = exp(1i*omega*t);
z = int(subs(f,tau)*subs(g,t-tau),tau,-inf,inf);
z = simplify(z);

but the resulting z is still an expression involving int, so it seems Matlab doesn't like my attempt.


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.