A.5  Q function

The Q values for three different ranges of its argument are shown in Figure A.1(a), Figure A.1(b) and Figure A.1(c).

PIC
(a) Very low SNR
PIC
(b) Low SNR
PIC
(c) High SNR
Figure A.1: Q function for three different SNR ranges.

A Q function approximation that is good for x > 3:

Q(x) 1 x2πexp (x2 2 )
(A.17)

An accurate approximation (less than 1.2% of error) is:

Q(x) [ 1 π1 π x + 1 πx2 + 2π ] 1 2πexp (x2 2 ).
(A.18)

The expression is valid for x 0 and for x < 0 one should use Q(x) = 1 Q(x). The function ak_qfuncApprox implements Eq. (A.18). In case you have Matlab, the code below compares it with Matlab’s qfunc.

1x=-3:0.01:3; %define a range for x 
2qx1=ak_qfuncApprox(x); %use the approximation 
3qx2=qfunc(x); %qfunc in Matlab's Communication Toolbox 
4plot(x,100*(qx1-qx2)./qx2); %get error in % 
5grid, xlabel('x'); ylabel('Error in Q approximation (%)')