Main Content

erfc

Complementary error function

Syntax

Description

erfc(x) returns the Complementary Error Function evaluated for each element of x. Use the erfc function to replace 1 - erf(x) for greater accuracy when erf(x) is close to 1.

example

Examples

collapse all

Find the complementary error function of a value.

erfc(0.35)
ans = 
0.6206

Find the complementary error function of the elements of a vector.

V = [-0.5 0 1 0.72];
erfc(V)
ans = 1×4

    1.5205    1.0000    0.1573    0.3086

Find the complementary error function of the elements of a matrix.

M = [0.29 -0.11; 3.1 -2.9];
erfc(M)
ans = 2×2

    0.6817    1.1236
    0.0000    2.0000

The bit error rate (BER) of binary phase-shift keying (BPSK), assuming additive white Gaussian noise (AWGN), is

Pb=12erfc(EbN0).

Plot the BER for BPSK for values of Eb/N0 from 0dB to 10dB.

EbN0_dB = 0:0.1:10;
EbN0 = 10.^(EbN0_dB/10);
BER = 1/2.*erfc(sqrt(EbN0));
semilogy(EbN0_dB,BER)
grid on
ylabel('BER')
xlabel('E_b/N_0 (dB)')
title('Bit Error Rate for Binary Phase-Shift Keying')

Figure contains an axes object. The axes object with title Bit Error Rate for Binary Phase-Shift Keying, xlabel E indexOf b baseline /N indexOf 0 baseline blank (dB), ylabel BER contains an object of type line.

You can use the complementary error function erfc in place of 1 - erf(x) to avoid round-off errors when erf(x) is close to 1.

Show how to avoid round-off errors by calculating 1 - erf(10) using erfc(10). The original calculation returns 0 while erfc(10) returns the correct result.

1 - erf(10)
ans = 
0
erfc(10)
ans = 
2.0885e-45

Input Arguments

collapse all

Input, specified as a real number, or a vector, matrix, or multidimensional array of real numbers. x cannot be sparse.

Data Types: single | double

More About

collapse all

Tips

  • You can also find the standard normal probability distribution using the function normcdf (Statistics and Machine Learning Toolbox). The relationship between the error function erfc and normcdf is

    normcdf(x)=(12)×erfc(x2)

  • For expressions of the form 1 - erfc(x), use the error function erf instead. This substitution maintains accuracy. When erfc(x) is close to 1, then 1 - erfc(x) is a small number and might be rounded down to 0. Instead, replace 1 - erfc(x) with erf(x).

  • For expressions of the form exp(x^2)*erfc(x), use the scaled complementary error function erfcx instead. This substitution maintains accuracy by avoiding roundoff errors for large values of x.

Extended Capabilities

expand all

Version History

Introduced before R2006a

See Also

| | |