Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Bit error rate (BER) for imperfect synchronization

`ber = bersync(EbNo,timerr,`

** 'timing'**)

ber = bersync(EbNo,phaserr,

`'carrier'`

As an alternative to the `bersync`

function,
invoke the BERTool GUI (`bertool`

) and use the **Theoretical** tab.

`ber = bersync(EbNo,timerr,`

returns
the BER of uncoded coherent binary phase shift keying (BPSK) modulation
over an additive white Gaussian noise (AWGN) channel with imperfect
timing. The normalized timing error is assumed to have a Gaussian
distribution. ** 'timing'**)

`EbNo`

is the ratio of bit energy to
noise power spectral density, in dB. If `EbNo`

is
a vector, the output `ber`

is a vector of the same
size, whose elements correspond to the different E`timerr`

is
the standard deviation of the timing error, normalized to the symbol
interval. `timerr`

must be between 0 and 0.5. `ber = bersync(EbNo,phaserr,`

returns
the BER of uncoded BPSK modulation over an AWGN channel with a noisy
phase reference. The phase error is assumed to have a Gaussian distribution. ** 'carrier'**)

`phaserr`

is
the standard deviation of the error in the reference carrier phase,
in radians.The code below computes the BER of coherent BPSK modulation
over an AWGN channel with imperfect timing. The example varies both `EbNo`

and `timerr`

.
(When `timerr`

assumes the final value of zero, the `bersync`

command
produces the same result as `berawgn(EbNo,'psk',2)`

.)

EbNo = [4 8 12]; timerr = [0.2 0.07 0]; ber = zeros(length(timerr), length(EbNo)); for ii = 1:length(timerr) ber(ii,:) = bersync(EbNo, timerr(ii),'timerr'); end % Display result using scientific notation. format short e; ber format; % Switch back to default notation format.

The output is below, where each row corresponds to a different
value of `timerr`

and each column corresponds to
a different value of `EbNo`

.

ber = 5.2073e-002 2.0536e-002 1.1160e-002 1.8948e-002 7.9757e-004 4.9008e-006 1.2501e-002 1.9091e-004 9.0060e-009

The numerical accuracy of this function's output is limited by

Approximations in the analysis leading to the closed-form expressions that the function uses

Approximations related to the numerical implementation of the expressions

You can generally rely on the first couple of significant digits of the function's output.

Inherent limitations in numerical precision force the function
to assume perfect synchronization if the value of `timerr`

or `phaserr`

is
very small. The table below indicates how the function behaves under
these conditions.

Condition | Behavior of Function |
---|---|

`timerr < eps` | `bersync(EbNo,timerr,'timing')` defined
as `berawgn(EbNo,'psk',2)` |

`phaserr < eps` | `bersync(EbNo,phaserr,'carrier')` defined
as `berawgn(EbNo,'psk',2)` |

[1] Jeruchim, Michel C., Philip Balaban,
and K. Sam Shanmugan, *Simulation of Communication Systems*,
Second Edition, New York, Kluwer Academic/Plenum, 2000.

[2] Sklar, Bernard, *Digital
Communications: Fundamentals and Applications*, Second
Edition, Upper Saddle River, NJ, Prentice-Hall, 2001.

[3] Stiffler, J. J., *Theory
of Synchronous Communications*, Englewood Cliffs, NJ, Prentice-Hall,
1971.

Was this topic helpful?