Understand ergodic capacity of a SISO flat-fading system over fading channels. Model and simulate capacity curves in Matlab.
Channel model
In the previous post, derivation of SISO fading channel capacity was discussed. For a flat fading channel (model shown below), with the perfect knowledge of the channel at the receiver, the capacity of a SISO link was derived as
where, is flat fading complex channel impulse response that is held constant for each block of transmitted symbols, is the average input power at the transmit antenna, is the signal-to-noise ratio (SNR) at the receiver input and is the noise power of the channel.
Since the channel impulse response is a random variable, the channel capacity equation shown above is also random. To circumvent this, Ergodic channel capacity was defined along with outage capacity. The Ergodic channel capacity is defined as the statistical average of the mutual information, where the expectation is taken over
Jensen’s inequality [1] states that for any concave function f(x), where x is a random variable,
Applying Jensen’s inequality to Ergodic capacity in equation (2),
This implies that the Ergodic capacity of a fading channel cannot exceed that of an AWGN channel with constant gain. The above equation is simulated in Matlab for a Rayleigh Fading channel with and the plots are shown below.
Matlab code
%This work is licensed under a Creative Commons %Attribution-NonCommercial-ShareAlike 4.0 International License %Attribute author : Mathuranathan Viswanathan at gaussianwaves.com snrdB=-10:0.5:20; %Range of SNRs to simulate h= (randn(1,100) + 1i*randn(1,100) )/sqrt(2); %Rayleigh flat channel sigma_z=1; %Noise power - assumed to be unity snr = 10.^(snrdB/10); %SNRs in linear scale P=(sigma_z^2)*snr./(mean(abs(h).^2)); %Calculate corresponding values for P C_erg_awgn= (log2(1+ mean(abs(h).^2).*P/(sigma_z^2))); %AWGN channel capacity (Bound) C_erg = mean((log2(1+ ((abs(h).^2).')*P/(sigma_z^2)))); %ergodic capacity for Fading channel plot(snrdB,C_erg_awgn,'b'); hold on; plot(snrdB,C_erg,'r'); grid on; legend('AWGN channel capacity','Fading channel Ergodic capacity'); title('SISO fading channel - Ergodic capacity'); xlabel('SNR (dB)');ylabel('Capacity (bps/Hz)');
Rate this article:
References
[1] Konstantinos G. Derpanis, Jensen’s Inequality, Version 1.0,March 12, 2005.↗
Books by the author
Hi, is line 17 correct?
Thanks.
I can’t spot any mistake. Please correct if I am wrong.
Hi this is nice post. i have small doubt Pl clear it.
As ‘h’ defined as
h= sqrt((randn(1,100).^2 + 1i*randn(1,100).^2 ));
Q(1) It shows channel is flat for 100 bits. Is it mean 100 taps?
and
Q(2) If channel is quasi static then what ‘h’ would be ?
Yes. The channel is assumed to be flat
Even for a quasi-static channel, the channel varies slowly over one block that it can be considered constant. Thus the above code is still valid
The Rayleigh channel should be as
h= sqrt(1/2)*((randn(1,1000) + 1i*randn(1,1000) ));
here N=1000 is not the taps as in case of frequency selective channel.
Its slow varying/quasi-static frequency flat channel with
1000 realizations of the single-tap channel over which the monte-carlo simulation has been performed.
Law of large number relates the time average and statistical average for large N.
Thanks for spotting the mistake in the code. Corrected !!!