Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Prentice Hall
Author: Bernard Sklar
Book: Digital Communications: Fundamentals and Applications (2nd Edition)
Copyright: 2001
ISBN: 0130847887
NI Supported: No
Publish Date: Jan 1, 2008


Feedback


Yes No

Related Categories

Related Links - Developer Zone

Related Links - Products and Services

Structured Sequences

0 ratings | 0.00 out of 5
Print

Overview

National Instruments has partnered with Prentice Hall to bring you large portions of in-depth technical topics from several PTR RF and Communications books, including Digital Communications: Fundamentals and Applications, 2nd Edition. This series of content is designed for a broad range of audiences, from experts who want to review a specific topic to students who need easy-to-understand documentation for their projects.

For the complete list of RF topics, please visit the RF and Communications Resource Main Page.

6.3 STRUCTURED SEQUENCES

In Section 4.8 we considered digital signaling by means of M = 2k signal waveforms

(M-ary signaling), where each waveform contains k bits of information. We saw

that in the case of orthogonal M-ary signaling, we can decrease PB by increasing M

(expanding the bandwidth). Similarly, in Section 6.1 we showed that it is possible to

decrease PB by encoding k binary digits into one of M orthogonal codewords. The

major disadvantage with such orthogonal coding techniques is the associated inefficient

use of bandwidth. For an orthogonally coded set of M = 2k waveforms, the required

transmission bandwidth is M/k times that needed for the uncoded case. In

this and subsequent sections we abandon the need for antipodal or orthogonal

properties and focus on a class of encoding procedures known as parity-check

codes. Such channel coding procedures are classified as structured sequences because

they represent methods of inserting structured redundancy into the source

data so that the presence of errors can be detected or the errors corrected. Structured

sequences are partitioned into three subcategories, as shown in Figure 6.1:

block, convolutional, and turbo. Block coding (primarily) is treated in this chapter,

and the others are treated in Chapters 7 and 8 respectively.

6.3.1 Channel Models

        6.3.1.1 Discrete Memoryless Channel

A discrete memoryless channel (DMC) is characterized by a discrete input

alphabet, a discrete output alphabet, and a set of conditional probabilities P( j|i)

(1 ≤ iM, 1 ≤ jQ), where i represents a modulator M-ary input symbol, j represents

a demodulator Q-ary output symbol, and P( j| i) is the probability of receiving

j given that i was transmitted. Each output symbol of the channel depends only on

the corresponding input, so that for a given input sequence U = u1, u2, . . . , um, . . . ,

uN, the conditional probability of a corresponding output sequence Z = z1, z2, . . . ,

zm, . . . , zN may be expressed as

In the event that the channel has memory (i.e., noise or fading that occurs in

bursts), the conditional probability of the sequence Z would need to be expressed

as the joint probability of all the elements of the sequence. Equation (6.12) expresses

the memoryless condition of the channel. Since the channel noise in a memoryless

channel is defined to affect each symbol independently of all the other

symbols, the conditional probability of Z is seen as the product of the independent

element probabilities.

6.3.1.2 Binary Symmetric Channel

A binary symmetric channel (BSC) is a special case of a DMC; the input and

output alphabet sets consist of the binary elements (0 and 1). The conditional probabilities

are symmetric:

and

Equation (6.13) expresses the channel transition probabilities. That is, given that a

channel symbol was transmitted, the probability that it is received in error is p

(related to the symbol energy), and the probability that it is received correctly is

(1 − p). Since the demodulator output consists of the discrete elements 0 and 1, the

demodulator is said to make a firm or hard decision on each symbol. A commonly

used code system consists of BPSK modulated coded data and hard decision demodulation.

Then the channel symbol error probability is found using the methods

discussed in Section 4.7.1 and Equation (4.79) to be

                                               

where Ec/N0 is the channel symbol energy per noise density, and Q(x) is defined in

Equation (3.43).

When such hard decisions are used in a binary coded system, the demodulator

feeds the two-valued code symbols or channel bits to the decoder. Since the decoder

then operates on the hard decisions made by the demodulator, decoding with

a BSC channel is called hard-decision decoding.

6.3.1.3 Gaussian Channel

We can generalize our definition of the DMC to channels with alphabets that

are not discrete. An example is the Gaussian channel with a discrete input alphabet

and a continuous output alphabet over the range . The channel adds noise

to the symbols. Since the noise is a Gaussian random variable with zero mean and

variance , the resulting probability density function (pdf) of the received random

variable z, conditioned on the symbol uk (the likelihood of uk), can be written as

for all z, where k = 1, 2, . . . , M. For this case, memoryless has the same meaning as

it does in Section 6.3.1.1, and Equation (6.12) can be used to obtain the conditional

probability for the sequence Z.

When the demodulator output consists of a continuous alphabet or its quantized

approximation (with greater than two quantization levels), the demodulator

is said to make soft decisions. In the case of a coded system, the demodulator feeds

such quantized code symbols to the decoder. Since the decoder then operates on

the soft decisions made by the demodulator, decoding with a Gaussian channel is

called soft-decision decoding.

In the case of a hard-decision channel, we are able to characterize the detection

process with a channel symbol error probability. However, in the case of a

soft-decision channel, the detector makes the kind of decisions (soft decisions) that

cannot be labeled as correct or incorrect. Thus, since there are no firm decisions,

there cannot be a probability of making an error; the detector can only formulate a

family of conditional probabilities or likelihoods of the different symbol types.

It is possible to design decoders using soft decisions, but block code softdecision

decoders are substantially more complex than hard-decision decoders;

therefore, block codes are usually implemented with hard-decision decoders. For

convolutional codes, both hard- and soft-decision implementations are equally

popular. In this chapter we consider that the channel is a binary symmetric channel

(BSC), and hence the decoder employs hard decisions. In Chapter 7 we further discuss

channel models, as well as hard- versus soft-decision decoding for convolutional

codes.

6.3.2 Code Rate and Redundancy

In the case of block codes, the source data are segmented into blocks of k data bits,

also called information bits or message bits; each block can represent any one of 2k

distinct messages. The encoder transforms each k-bit data block into a larger block

of n bits, called code bits or channel symbols. The (nk) bits, which the encoder

adds to each data block, are called redundant bits, parity bits, or check bits; they

carry no new information. The code is referred to as an (n, k) code. The ratio of redundant

bits to data bits, denoted (nk)/k, within a block is called the redundancy

of the code; the ratio of data bits to total bits, k/n, is called the code rate. The code

rate can be thought of as the portion of a code bit that constitutes information. For

example, in a rate 1/2 code, each code bit carries 1/2 bit of information.

In this chapter and in Chapters 7 and 8 we consider those coding techniques

that provide redundancy by increasing the required transmission bandwidth.

For example, an error control technique that employs a rate 1/2 code (100%

redundancy) will require double the bandwidth of an uncoded system. However, if

a rate 3/4 code is used, the redundancy is 33% and the bandwidth expansion is only

4/3. In Chapter 9 we consider modulation/coding techniques for bandlimited

channels where complexity instead of bandwidth is traded for error performance

improvement.

6.3.2.1 Code-Element Nomenclature

Different authors describe an encoder’s output elements in a variety of ways:

code bits, channel bits, code symbols, channel symbols, parity bits, parity symbols.

The terms are all very similar. In this text, for a binary code, the terms “code bit,”

“channel bit,” “code symbol,” and “channel symbol” have exactly the same meaning.

The terms “code bit” and “channel bit” are most descriptive for binary codes

only. The more generic names “code symbol” and “channel symbol” are often preferred

because they can be used to describe binary or nonbinary codes equally well.

Note that such code symbols or channel symbols are not to be confused with the

grouping of bits to form transmission symbols that was done in previous chapters.

The terms “parity bit” and “parity symbol” are used to identify only those code

elements that represent the redundancy components added to the original data.

6.3.3 Parity-Check Codes

        6.3.3.1 Single-Parity-Check Code

Parity-check codes use linear sums of the information bits, called parity symbols

or parity bits, for error detection or correction. A single-parity-check code is constructed

by adding a single-parity bit to a block of data bits. The parity bit takes on the

value of one or zero as needed to ensure that the summation of all the bits in the codeword

yields an even (or odd) result. The summation operation is performed using

modulo-2 arithmetic (exclusive-or logic), as described in Section 2.9.3. If the added

parity is designed to yield an even result, the method is termed even parity; if it is designed

to yield an odd result, the method is termed odd parity. Figure 6.8a illustrates

a serial data transmission (the rightmost bit is the earliest bit). A single-parity bit is

added (the leftmost bit in each block) to yield even parity.

At the receiving terminal, the decoding procedure consists of testing that the

modulo-2 sum of the codeword bits yields a zero result (even parity). If the result is

found to be one instead of zero, the codeword is known to contain errors. The rate of

the code can be expressed as k/(k + 1). Do you suppose the decoder can automatically

correct a digit that is received in error? No, it cannot. It can only detect the presence

of an odd number of bit errors. (If an even number of bits are inverted, the parity test

will appear correct, which represents the case of an undetected error.) Assuming that

 

Figure 6.8 Parity checks for serial and parallel code structures. (a) Serial structure. (b) Parallel structure.

 

all bit errors are equally likely and occur independently, we can write the probability

of j errors occurring in a block of n symbols as

where p is the probability that a channel symbol is received in error, and where

is the number of various ways in which j bits out of n may be in error. Thus, for a

single-parity error-detection code, the probability of an undetected error Pnd with a

block of n bits is computed as follows:

Example 6.1 Even-Parity Code

Configure a (4, 3) even-parity error-detection code such that the parity symbol

appears as the leftmost symbol of the codeword. Which error patterns can the code

detect? Compute the probability of an undetected message error, assuming that all

symbol errors are independent events and that the probability of a channel symbol

error is p=10−3.

Solution

The code is capable of detecting all single- and triple-error patterns. The probability

of an undetected error is equal to the probability that two or four errors occur anywhere

in a codeword.

6.3.3.2 Rectangular Code

A rectangular code, also called a product code, can be thought of as a parallel

code structure, depicted in Figure 6.8b. First we form a rectangle of message bits

comprising M rows and N columns; then, a horizontal parity check is appended to

each row and a vertical parity check is appended to each column, resulting in an

augmented array of dimensions (M + 1) × (N + 1). The rate of the rectangular code

k/n can then be written as

                                          

How much more powerful is the rectangular code than the single-parity code,

which is only capable of error detection? Notice that any single bit error will cause

a parity check failure in one of the array columns and in one of the array rows.

Therefore, the rectangular code can correct any single error pattern since such an

error is uniquely located at the intersection of the error-detecting row and the

error-detecting column. For the example shown in Figure 6.8b, the array dimensions

are M = N = 5; therefore, the figure depicts a (36, 25) code that can correct a

single error located anywhere in the 36-bit positions. For such an error-correcting

block code, we compute the probability that the decoded block has an uncorrected

error by accounting for all the ways in which a message error can be made. Starting

with the probability of j errors in a block of n symbols, expressed in Equation

(6.15), we can write the probability of a message error, also called a block error or

word error, for a code that can correct all t and fewer error patterns as

where p is the probability that a channel symbol is received in error. For the example

in Figure 6.8b, the code can correct all single error patterns (t = 1) within the

rectangular block of n = 36 bits. Hence, the summation in Equation (6.18) starts

with j = 2:

When p is reasonably small, the first term in the summation is the dominant one;

Therefore, for this (36, 25) rectangular code example, we can write

The bit error probability PB depends on the particular code and decoder. An approximation

for PB is given in Section 6.5.3.

6.3.4 Why Use Error-Correction Coding?

Error-correction coding can be regarded as a vehicle for effecting various system

trade-offs. Figure 6.9 compares two curves depicting bit-error performance versus

Figure 6.9 Comparison of typical coded versus uncoded error performance.

 

Eb/N0. One curve represents a typical modulation scheme without coding. The

second curve represents the same modulation with coding. Demonstrated below

are four benefits or trade-offs that can be achieved with the use of channel coding.

6.3.4.1 Trade-Off 1: Error Performance versus Bandwidth

Imagine that a simple, inexpensive voice communication system has just been

developed and delivered to a customer. The system does not use error-correction

coding. Consider that the operating point of the system can be depicted by point A

in Figure 6.9 (Eb/N0 = 8 dB, and PB = 10−2 ). After a few trials, there are complaints

about the voice quality; the customer suggests that the bit-error probability should

be lowered to 10−4. The usual way of obtaining better error performance in such a

system would be by effecting an operating point movement from point A to, say,

point B in Figure 6.9. However, suppose that the Eb/N0 of 8 dB is the most that is

available in this system. The figure suggests that one possible trade-off is to move

the operating point from point A to point C. That is, “walking” down the vertical

line to point C on the coded curve can provide the customer with improved error

performance. What does it cost? Aside from the new components (encoder and decoder)

needed, the price is more transmission bandwidth. Error-correction coding

needs redundancy. If we assume that the system is a real-time communication

system (such that the message may not be delayed), the addition of redundant bits

dictates a faster rate of transmission, which of course means more bandwidth.

6.3.4.2 Trade-Off 2: Power versus Bandwidth

Consider that a system without coding, operating at point D in Figure 6.9

(Eb/N0 = 14 dB, and PB = 10−6), has been delivered to a customer. The customer has

no complaints about the quality of the data, but the equipment is having some

reliability problems as a result of providing an Eb /N0 of 14 dB. In other words, the

equipment keeps breaking down. If the requirement on Eb /N0 or power could be

reduced, the reliability difficulties might also be reduced. Figure 6.9 suggests a

trade-off by moving the operating point from point D to point E. That is, if errorcorrection

coding is introduced, a reduction in the required Eb /N0 can be achieved.

Thus, the trade-off is one in which the same quality of data is achieved, but the

coding allows for a reduction in power or Eb /N0. What is the cost? The same as

before—more bandwidth.

Notice that for non-real-time communication systems, error-correction coding

can be used with a somewhat different trade-off. It is possible to obtain improved

bit-error probability or reduced power (similar to trade-off 1 or 2 above) by paying

the price of delay instead of bandwidth.

6.3.4.3 Coding Gain

The trade-off example described in the previous section has allowed a reduction

in Eb /N0 from 14 dB to 9 dB, while maintaining the same error performance.

In the context of this example and Figure 6.9, we now define coding gain. For a

given bit-error probability, coding gain is defined as the “relief” or reduction in

Eb/N0 that can be realized through the use of the code. Coding gain G is generally

expressed in dB, such as

where (Eb /N0)u and (Eb /N0)c represent the required Eb /N0, uncoded and coded,

respectively.

6.3.4.4 Trade-Off 3: Data Rate versus Bandwidth

Consider that a system without coding, operating at point D in Figure 6.9

(Eb/N0 = 14 dB, and PB = 10−6) has been developed. Assume that there is no problem

with the data quality and no particular need to reduce power. However, in this

example, suppose that the customer’s data rate requirement increases. Recall the

relationship in Equation (5.20b):

                                                          

If we do nothing to the system except increase the data rate R, the above expression

shows that the received Eb/N0 would decrease, and in Figure 6.9, the operating

point would move upwards from point D to, let us say, some point F. Now, envision

“walking” down the vertical line to point E on the curve that represents coded

modulation. Increasing the data rate has degraded the quality of the data. But, the

use of error-correction coding brings back the same quality at the same power level

(Pr /N0). The Eb /N0 is reduced, but the code facilitates getting the same error

probability with a lower Eb /N0. What price do we pay for getting this higher data

rate or greater capacity? The same as before—increased bandwidth.

6.3.4.5 Trade-Off 4: Capacity versus Bandwidth

Trade-off 4 is similar to trade-off 3 because both achieve increased capacity.

A spread-spectrum multiple access technique, called code-division multiple access

(CDMA) and described in Chapter 12, is one of the schemes used in cellular telephony.

In CDMA, where users simultaneously share the same spectrum, each user

is an interferer to each of the other users in the same cell or nearby cells. Hence,

the capacity (maximum number of users) per cell is inversely proportional to

Eb/N0. (See Section 12.8.) In this application, a lowered Eb/N0 results in a raised capacity;

the code achieves a reduction in each user’s power, which in turn allows for

an increase in the number of users. Again, the cost is more bandwidth. But, in this

case, the signal-bandwidth expansion due to the error-correcting code is small compared

with the more significant spread-spectrum bandwidth expansion, and thus,

there is no impact on the transmission bandwidth.

In each of the above trade-off examples, a “traditional” code involving redundant

bits and faster signaling (for a real-time communication system) has been assumed;

hence, in each case, the cost was expanded bandwidth. However, there

exists an error-correcting technique, called trellis-coded modulation, that does not

require faster signaling or expanded bandwidth for real-time systems. (This technique

is described in Section 9.10.)

Example 6.2 Coded versus Uncoded Performance

Compare the message error probability for a communications link with and without

the use of error-correction coding. Assume that the uncoded transmission characteristics

are: BPSK modulation, Gaussian noise, Pr /N0 = 43,776, data rate R = 4800 bits/s.

For the coded case, also assume the use of a (15, 11) error-correcting code that is capable

of correcting any single-error pattern within a block of 15 bits. Consider that the

demodulator makes hard decisions and thus feeds the demodulated code bits directly

to the decoder, which in turn outputs an estimate of the original message.

Solution

Following Equation (4.79), let  and 

be the uncoded and coded channel symbol error probabilities, respectively, where Eb/N0 is the bit

energy per noise spectral density and Ec /N0 is the code-bit energy per noise spectral density.

Without coding

and

where the following approximation of Q(x) from Equation (3.44) was used:

The probability that the uncoded message block PuM will be received in error is 1 minus

the product of the probabilities that each bit will be detected correctly. Thus,

With coding

Assuming a real-time communication system such that delay is unacceptable, the

channel-symbol rate or code-bit rate Rc is 15/11 times the data bit rate:

and

The Ec /N0 for each code bit is less than that for the data bit in the uncoded case

because the channel-bit rate has increased, but the transmitter power is assumed to

be fixed:

It can be seen by comparing the results of Equation 6.20 with those of Equation

6.22 that because redundancy was added, the channel bit-error probability has degraded.

More bits must be detected during the same time interval and with the same

available power; the performance improvement due to the coding is not yet apparent.

We now compute the coded message error rate PcM, using Equation 6.18:

The summation is started with j = 2, since the code corrects all single errors

within a block of n = 15 bits. An approximation is obtained by using only the first term

of the summation. For pc, we use the value calculated in Equation 6.22:

By comparing the results of Equation (6.21) with (6.23), we can see that the probability

of message error has improved by a factor of 58 due to the error-correcting code

used in this example. This example illustrates the typical behavior of all such real-time

communication systems using error-correction coding. Added redundancy means

faster signaling, less energy per channel symbol, and more errors out of the demodulator.

The benefits arise because the behavior of the decoder will (at reasonable values

of Eb/N0) more than compensate for the poor performance of the demodulator.

6.3.4.6 Code Performance at Low Values of Eb/N0

The reader is urged to solve Problem 6.5, which is similar to Example 6.2. In

part (a) of Problem 6.5, where an Eb/N0 of 14 dB is given, the result is a messageerror

performance improvement through the use of coding. However, in part (b)

where the Eb/N0 has been reduced to 10 dB, coding provides no improvement; in

fact, there is a degradation. One might ask, Why does part (b) manifest a degradation?

After all, the same procedure is used for applying the code in both parts of

the problem. The answer can be seen in the coded-versus-uncoded pictorial shown

in Figure 6.9. Even though Problem 6.5 deals with message-error probability, and

Figure 6.9 displays bit-error probability, the following explanation still applies. In

all such plots, there is a crossover between the curves (usually at some low value of

Eb/N0). The reason for such crossover (threshold) is that every code system has

some fixed error-correcting capability. If there are more errors within a block than

the code is capable of correcting, the system will perform poorly. Imagine that

Eb/N0 is continually reduced. What happens at the output of the demodulator?

It makes more and more errors. Therefore, such a continual decrease in Eb/N0

must eventually cause some threshold to be reached where the decoder becomes

overwhelmed with errors. When that threshold is crossed, we can interpret the

degraded performance as being caused by the redundant bits consuming

energy but giving back nothing beneficial in return. Does it strike the reader

as a paradox that operating in a region (low values of Eb/N0), where one would best

like to see an error-performance improvement, is where the code makes things

worse? There is, however, a class of powerful codes called turbo codes that provide

error-performance improvements at low values of Eb/N0; the crossover point is

lower for turbo codes compared with conventional codes. (These are treated in

Section 8.4.)

Relevant NI products


Customers interested in this topic were also interested in the following NI products:

For the complete list of tutorials, return to the NI RF and Communications Fundamentals Main page.

Buy the Book


Purchase Digital Communications from Prentice Hall Professional through this link and receive the following:

  • Between 15% and 30% Off
  • Free Shipping and Handling
0 ratings | 0.00 out of 5
Print

Reader Comments | Submit a comment »

 

Legal
Excerpt from the book published by Prentice Hall Professional (http://www.phptr.com).
Copyright Prentice Hall Inc., A Pearson Education Company, Upper Saddle River, New Jersey 07458.
This material is protected under the copyright laws of the U.S. and other countries and any uses not in conformity with the copyright laws are prohibited, including but not limited to reproduction, DOWNLOADING, duplication, adaptation and transmission or broadcast by any media, devices or processes.