bercoding
BER for coded AWGN channels
Description
The bercoding function returns an upper bound or
approximation of the bit error rate (BER) for coherent BPSK or QPSK modulation over an
additive white Gaussian noise (AWGN) channel for a specified coding type, decoding
decision, code rate, and distance spectrum of the code. The results for binary PSK and
quadrature PSK modulation are the same. This function computes only modulation order 2
or 4 for M-ary PSK modulation. For more information, see Analytical Expressions Used in bercoding Function and Bit Error Rate Analysis App.
ber = bercoding(EbNo,'block',decision,N,K,dmin)
returns the upper bound of the BER for an
[N,K] binary block code for the
specified decoding decision type and minimum distance of the code.
ber = bercoding(EbNo,'Golay','hard',24)
returns the upper bound of the BER for an the extended (24, 12) Golay code using
hard-decision decoding and coherent BPSK modulation. In accordance with [3], the Golay coding upper bound assumes only the correction of 3-error
patterns. Even though correcting approximately 19% of 4-error patterns is
theoretically possible in practice, most decoders do not have this
capability.
ber = bercoding(EbNo,'Hamming','hard',N)
returns an approximation of the BER for a Hamming code using hard-decision
decoding and coherent BPSK modulation.
ber = bercoding(EbNo,'RS','hard',N,K)
returns an approximation of the BER for an
(N,K) Reed-Solomon code using
hard-decision decoding and coherent BPSK modulation.
Examples
Find Upper Bound of Theoretical BER for Block Code
Find the upper bound of the theoretical BER for a (23,12) block code.
Set the codeword length, message length, minimum distance, and Eb/N0 range in dB.
n = 23; % Codeword length
k = 12; % Message length
dmin = 7; % Minimum distance
EbNo = 1:10; % Eb/No range (dB)
Estimate the BER.
berBlk = bercoding(EbNo,'block','hard',n,k,dmin);
Plot the estimated BER.
berfit(EbNo,berBlk)
ylabel('Bit Error Probability')
title('BER Upper Bound vs. Eb/No with Best Curve Fit')
Estimate Coded BER Performance for 16-QAM in AWGN
Estimate the BER performance in an AWGN channel for a 16-QAM signal when encoded with a (15,11) Reed-Solomon code using hard-decision decoding.
Set the input Eb/No range and find the uncoded BER for 16-QAM.
ebno = (2:12)';
uncodedBER = berawgn(ebno,'qam',16);
Estimate the coded BER for a 16-QAM signal with a (15,11) Reed-Solomon code using hard-decision decoding.
codedBER = bercoding(ebno,'RS','hard',15,11,'qam',16);
Plot the estimated BER curves.
semilogy(ebno,[uncodedBER codedBER])
grid
title('Compare Uncoded and R-S Coded 16-QAM Transmission')
legend('Uncoded BER','Coded BER')
xlabel('Eb/No (dB)')
ylabel('BER')
Input Arguments
EbNo — Energy per bit to noise power spectral density ratio
scalar | vector
Energy per bit to noise power spectral density ratio in dB, specified as a
scalar or vector.
Data Types:single | double
coding — Source coding type
'conv' | 'block' | 'Hamming' | 'Golay' | 'RS'
Source coding type, specified as one of these options.
'conv' — The returned BER is an upper bound
of the BER for binary convolutional codes with coherent BPSK or
QPSK modulation.
'block' — The returned BER is an upper
bound of the BER for (N,
K) linear binary block codes with
coherent BPSK or QPSK modulation.
'Hamming' — The returned BER is an
approximation of the BER for a Hamming code using hard-decision
decoding and coherent BPSK or QPSK modulation.
'Golay' — The returned BER is an upper
bound of the BER for an extended (24,12) Golay code using
hard-decision decoding and coherent BPSK or QPSK modulation. In
accordance with [3], the Golay coding upper bound assumes the correction of
3-error patterns only. Even though correcting approximately 19%
of 4-error patterns is theoretically possible, in practice, most
decoders do not have this capability.
'RS' — The returned BER is an approximation
of the BER for an
(N,K) Reed-Solomon
code using hard-decision decoding and coherent BPSK
modulation.
Data Types:char | string
decision — Decoding decision type
'hard' | 'soft'
Decoding decision type, specified as one of these options.
'hard' — Use this option for hard-decision
decoding.
'soft' — Use this option for unquantized
soft-decision decoding. This option applies only when
coding is set to
'conv' or
'block'.
Data Types:char | string
coderate — Code rate of convolutional code
positive scalar
Code rate of the convolutional code, specified as a positive
scalar.
Dependencies
To enable this argument, set the coding argument
to 'conv'.
Data Types:double | single
dspec — Distance spectrum of code
structure
Distance spectrum of the code, specified as structure containing these
fields. To find distance spectra for sample codes, use the distspec function or see
[5] and [3].
dfree — Minimum free distance of code
positive scalar
Minimum free distance of the code, specified as a positive
scalar.
Data Types:double | single
weight — Weight spectrum of code
positive scalar
Weight spectrum of the code, specified as a positive
scalar.
Data Types:double | single
Dependencies
To enable this argument, set the coding argument
to 'conv'.
Data Types:struct
N — Codeword length
integer
Codeword length, specified as an integer of the form
2M–1, where
M is an integer in the range [3, 16]. For more
information, see N-K Pairs for Source Coding.
Example:15 or 2^4-1
Dependencies
To enable this argument, set the coding argument
to 'block', 'Hamming',
'Golay', or 'RS'.
K — Message length
positive integer
Message length, specified as a positive integer. For more information, see
N-K Pairs for Source Coding.
Example:5 specifies a Galois field array with five
elements.
Dependencies
To enable this argument, set the coding argument
to 'block' or 'RS'.
dmin — Minimum distance of code
positive scalar
Minimum distance of the code, specified as a positive scalar smaller than
or equal to (N - K + 1).
.
Dependencies
To enable this argument, set the coding argument
to 'block'.
Data Types:double | single
modulation — Modulation type
'psk' (default) | 'oqpsk' | 'dpsk' | 'pam' | 'qam' | 'fsk' | 'msk'
Modulation decision type, specified as 'psk',
'oqpsk', 'dpsk',
'pam', 'qam',
'fsk', or 'msk'. The default
modulation scheme is PSK modulation with a modulation order of 2
(specifically, nondifferential BPSK modulation).
Data Types:char | string
Output Arguments
ber — BER
scalar | vector
BER upper bound or approximation, returned as a scalar or vector. If the
EbNo input is a vector, ber is
a vector of the same size, and its elements correspond to the elements of
the
Eb/N0
vector.
Limitations
In general, the numerical accuracy for the output BER is limited to approximately two
significant digits. The numerical accuracy output by this function is limited by these restrictions.
Approximations in the analysis leading to the closed-form expressions used
by the function
Approximations related to the numerical implementation of the
expressions
More About
N-K Pairs for Source Coding
For block codes the codeword length (N) and
message length (K) pairs must comply with these
guidelines.
N and K must produce a
narrow-sense BCH code.
To generate the list of valid
(N,K) pairs and their
corresponding values of error-correction capability, run the command
bchnumerr(N).
Valid values for N have the form
2M–1, where
M is an integer in the range [3, 16]. The value of
N cannot exceed 65,535.
For Hamming codes, K is computed directly
from N.
For Reed-Solomon codes, N and
K must differ by an even integer. Valid values for
N have the form
2M–1, where M
is an integer in the range [3, 16]. The value of N cannot
exceed 65,535.
Alternatives
You can configure the Theoretical tab in the bercoding function.
References
[1] Proakis, John G. Digital Communications.
4th ed. New York: McGraw Hill, 2001.
[2] Frenger, P., P. Orten, and T. Ottosson. “Convolutional Codes with Optimum Distance Spectrum.” IEEE Communications Letters 3, no. 11 (November 1999): 317–19. https://doi/10.1109/4234.803468.
[3] Odenwalder, J. P. Error Control Coding
Handbook, Final Report, LINKABIT Corporation, San Diego, CA: 1976.
[4] Sklar, Bernard. Digital Communications: Fundamentals
and Applications. 2nd ed. Upper Saddle River, N.J: Prentice-Hall PTR,
2001.
[5] Ziemer, R. E., and R. L., Peterson.
Introduction to Digital Communication. 2nd ed. Prentice Hall,
2001.
Introduced before R2006a
更多推荐
matlab awgn ber 不对,BER for coded AWGN channels
发布评论