| Theoretical {binfunest} | R Documentation |
Theoretical error rate functions
Description
Functions to calculate the theoretical performance of common modulation
formats. Includes the functions dB (x) (returns 10log10(x)), undB(x)
(reverses dB(x)), Q_( x) (Markum's Q function), and Q_Inv(x)
(returns the
SNR in Decibels to get probability x). Also includes mod_Inv, which returns
the SNR required for a the function f to reach the supplied BER (bit
error rate, or bit error probability).
Usage
is.wholenumber(x, tol = sqrt(.Machine$double.eps))
dB(x)
undB(x)
Q_(x)
Q_Inv(perr)
QPSKdB(x)
DQPSKdB(x)
DQPSKDDdB(x)
PSQPSKdB(x)
MPSKdB(x, M)
MPSKdB.8(x)
QAMdB.8.star(x)
QAMdB(x, M)
QAMdB.16(x)
mod_Inv(f, perr, guess = Q_Inv(perr))
mod_InvV(f, pv, offset = 0)
Arguments
x |
a real number |
tol |
the tolerance to test x with. |
perr |
a probability of a bit error. |
M |
The integer number of symbols > 4. |
f |
a function (usually a BER function). |
guess |
a guess for the |
pv |
a vector of BERs. |
offset |
an offset in Decibels for guesses in |
Details
The rest of the functions return the probability of a bit error given the SNR in Decibels.
-
QPSKdBis Quadrature Phase shift keyed: two bits per symbol. -
DQPSKis differentially detected differentially coded QPSK. -
DQPSKDDdBis differentially detected differential QPSK (coherently detected but differentially decoded. SeeDQPSKabove. -
PSQPSKdBis polarization-shifted QPSK: it is dual pole, but only one pole is active at any one time, thus supplying three bits per symbol. (See Agrell & Karlsson (2009, DOI:10.1109/JLT.2009.2029064)). -
MPSKdB(x, M)is generic M-ary phase shift keying ofMpoints in a circle. -
MPSKdB.8simply returnsMPSKdB(x, 8) -
QAMdB.8.staris the optimal star configuration of 8-ary Quadrature Amplitude Modulation (QAM), such that the legs are at\pm1and\pm(1+\sqrt3). -
QAMdB(x, M)is generic rectangular QAM constellation ofMpoints. -
QAMdB.16Returns the BER for the rectangular QAM constellation according to Proakis Eq. 5-2-80. -
mod_Invwill take a functionf(x)and return the x such thatf(x)==perrbut it does this based on thelog( f(x))and thelog( perr), sof(x)>0. -
mod_InvVis a vectorized version (give it a vector of BERs and it returns a vector of SNRs).
Value
is.wholenumber(x) returns TRUE if c-round(x) < tol.
dB(x) returns 10*log10(x)
undB(x) returns 10^(x/10)
Q_Inv(x) returns 2*dB( -qnorm(x)), which is the
SNR (in Decibels) required to get a probability of error of x.
Q_Inv( Q_( undB( x/2))) = x and Q_( undB( Q_Inv( x)/2))=x
mod_Inv( f, x) returns a list with the SNR in Decibels to
reach the BER
perr such that f( mod_Inv( f, x)$x) = x.
The returned list has elements
$x as the SNR and
$fval as the function value.
See Also
Examples
dB( 10) # == 10
undB( 20) # == 100
Q_Inv( Q_( undB( 10/2))) # = 10
Q_( undB( Q_Inv( 0.001)/2)) # = 0.001
mod_Inv( QPSKdB, QPSKdB( 7)) # yields 7
mod_InvV(QPSKdB, QPSKdB(c(6,7)))