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 perr (the default usually works).

pv

a vector of BERs.

offset

an offset in Decibels for guesses in mod_InvV.

Details

The rest of the functions return the probability of a bit error given the SNR in Decibels.

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

pracma::fzero()

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)))


[Package binfunest version 0.1.0 Index]