As part of my uni assignment I have to figure out what is the impact of sampling frequency on actual channel impulse response. One obvious thing is that the higher sampling frequency is, the more taps the response has.

But there must have been something more here. When I increase the sampling frequency from 20MHz to 100MHz (and adjust my CP accordingly), I get much better performance. The actual CIR is generated using the following MATLAB code

function cir = getchannel(Trms, sampfreq)
if Trms == 0
    Kmax = 0;
    vark = 1;
    % Calculate the exponential decay envelope  
    Kmax = ceil( 10 * Trms * sampfreq * 1e-9);
    var0 = (1 - exp( - 1/(sampfreq*(Trms*(1e-9))))); 
    k = (0:Kmax);     
    env = var0 * exp( - k/(sampfreq*(Trms*(1e-9))));
stdDevReOrIm = sqrt(env/2);
cir = stdDevReOrIm .* (randn(1, Kmax+1) + j*randn(1, Kmax+1));

I see that in case of 100MHz has a slightly different shape and var0 is much smaller. I wonder why. The following code was implemented based on "IEEE 802.11 Handbook: A Designer's Companion", but I have no access to this book. Also, I was not able to google anything useful, so I decided to ask here.

  • 1
    $\begingroup$ the channel impulse response doesn't care how you sample. It's a physical thing you're observing, not something you're effecting. Your estimate of the CIR is of course affected. I know that sounds nitpicky (it is!), but it helps get a few concepts straight when you don't confuse the thing you're observing and the observation. You say "you get much better performance", but you need to say "for what, doing what, measuring what as performance metric". $\endgroup$ Mar 10, 2022 at 12:56
  • $\begingroup$ Can you explain then why the MATLAB code looks uses sampling frequency to generate CIR? $\endgroup$
    – Pawel
    Mar 10, 2022 at 13:00
  • $\begingroup$ you generate a discrete model of a CIR. $\endgroup$ Mar 10, 2022 at 13:01
  • $\begingroup$ Perfect, and why sampling frequency is used when I generate a discrete model of CIR? $\endgroup$
    – Pawel
    Mar 10, 2022 at 13:10
  • 1
    $\begingroup$ @Pawel because the matlab code tries to model the same physical thing observed at different sampling rates. That's like asking why a computer-generated image of a bee looks different when you tell the computer program that you want 10000 pixels per mm vs 10 pixels per millimeter. $\endgroup$ Mar 10, 2022 at 15:14

1 Answer 1


I see that in case of 100MHz has a slightly different shape and var0 is much smaller. I wonder why.

Because your calculation depends on the sampling frequency.

If your question becomes "is this calculation/model reasonable?", read section 2.4 of this chapter. In short, the CIR is continuous, and you are generating a discrete model of the CIR that modelize each channel tap, being a sum of large number of independent unresolvable paths, as a circularly-symmetric complex normal random variable.

Because the higher the sampling frequency, the narrower the channel tap, the number of unresolvable paths in a channel tap is reduced in increasing sampling frequency and, therefore, its power is reduced too. The model you are using tries to modelize that decreasing in power by an exponential decay function in the way that normalizes the generated discrete CIR.

Note that because increasing sampling frequency results in reducing the number of unresolvable paths in a tap, the higher the sampling frequency, the less accurate modeling the taps by normal random variables.

  • $\begingroup$ Thanks a lot, now I get it! $\endgroup$
    – Pawel
    Mar 10, 2022 at 19:15

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.