Top Banner
Quadrature Amplitude Demodulator (64-QAM) for Cable Modem EE297 MSEE Project San Jose State University DEPT OF ELECTRICAL ENGINEERING for Dr. Jack Kurzweil by Rajat Sewal Fall 1998
92
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Qam64

Quadrature Amplitude

Demodulator (64-QAM)

for Cable Modem

EE297

MSEE Project

San Jose State

University

DEPT OF ELECTRICAL ENGINEERING

for Dr. Jack Kurzweil

by Rajat Sewal

Fall 1998

Page 2: Qam64

2

Table of Contents

Chapter 1 QAM Demodulator_____________________________________________ 6 Section 1.1 INTRODUCTION – DIGITAL COMMUNICATION SYSTEM ____________ 6

Chapter 2 DISCUSSION OF INFORMATION THEORY________________________ 9 Section 2.1 LOGARITHMIC MEASURE OF INFORMATION ______________________ 9

Section 2.2 SOURCE ENCODING ____________________________________________ 13

Section 2.3 CHANNEL ENCODING __________________________________________ 18

Chapter 3 ERROR CORRECTION ________________________________________ 21 Section 3.1 Block Codes ____________________________________________________ 21

Section 3.2 Convolutional Codes______________________________________________ 22

Section 3.3 Block Codes in Detail _____________________________________________ 23

Chapter 4 DATA MODULATION & DEMODULATION_______________________ 26 Section 4.1 Discrete Data Transmission ________________________________________ 26

Section 4.2 Introduction to Linear Modulation Methods____________________________ 27

Section 4.3 QAM Schematic _________________________________________________ 34

Section 4.4 Probability of Error in QAM ______________________________________ 36

Chapter 5 Cable Modem Introduction _____________________________________ 39 Section 5.1 Definition of Cable Modem ________________________________________ 39

Section 5.2 Structure of Cable systems _________________________________________ 39

Section 5.3 Cable Specifications ______________________________________________ 45

Section 5.4 Baud, Bit-rate, Modem Speed _______________________________________ 50

Section 5.5 Digital TV Standards______________________________________________ 51

Section 5.6 Overview of transport subsystem ____________________________________ 52

Section 5.7 MPEG-TS Transport Stream________________________________________ 54

Section 5.8 Set-Top Boxes___________________________________________________ 55

Glossary of terms __________________________________________________________ 57

Chapter 6 Modem Design _______________________________________________ 59 Section 6.1 Basic Modulator _________________________________________________ 59

Section 6.2 Modem Specification _____________________________________________ 63

Section 6.3 IEEE802.14 Specification __________________________________________ 66

Chapter 7 Matlab Simulation ____________________________________________ 67 Section 7.1 Communication Tool Box__________________________________________ 67

Section 7.2 Matlab Code ____________________________________________________ 68

Section 7.3 Discussion of Matlab Code _________________________________________ 73

Page 3: Qam64

3

Section 7.4 Discussion of Simulation Results ____________________________________ 80

Section 7.5 Summary of Simulation Results_____________________________________ 90

Chapter 8 Set-top Box ASIC Design _______________________________________ 91

Page 4: Qam64

4

List of Figures

FIGURE 1.1 DIGITAL COMMUNICATION SYSTEM MODEL _______________________________________ 6 FIGURE 2.1 ENTROPY OF SOURCE _______________________________________________________ 12 FIGURE 2.2 DIGITAL COMMUNICATION SYSTEM ____________________________________________ 13 FIGURE 2.3 PCM ____________________________________________________________________ 15 FIGURE 2.4 DPCM ENCODER _________________________________________________________ 16 FIGURE 2.5 DELTA MODULATION ________________________________________________________ 17 FIGURE 2.6 SIMPLE CHANNEL CODING ____________________________________________________ 18 FIGURE 3.1 SYSTEMATIC BLOCK ENCODER ________________________________________________ 21 FIGURE 3.2 ANATOMY OF A CODEWORD __________________________________________________ 21 FIGURE 3.3 CLASS OF CHANNEL CODES ___________________________________________________ 22 FIGURE 4.1 VECTOR MODEL OF COMMUNICATION SYSTEM _________________________________ 26 FIGURE 4.2 PAM SIGNAL, FSK, & PSK __________________________________________________ 28 FIGURE 4.3 PAM CONSTELLATION_______________________________________________________ 29 FIGURE 4.4 BASE BAND PAM __________________________________________________________ 30 FIGURE 4.5 PASS BAND PAM __________________________________________________________ 31 FIGURE 4.6 PSK ____________________________________________________________________ 31 FIGURE 4.7 QPSK WAVEFORM ________________________________________________________ 31 FIGURE 4.8 QAM CONSTELLATIONS _____________________________________________________ 33 FIGURE 4.9 MODULATED WAVEFORMS__________________________________________________ 33 FIGURE 4.10 RECTANGULAR QAM_______________________________________________________ 34 FIGURE 4.11 QAM MODULATOR ________________________________________________________ 34 FIGURE 4.12 QAM DEMODULATOR_______________________________________________________ 35 FIGURE 4.13 64-QAM BIT ASSIGNMENT__________________________________________________ 36 FIGURE 4.14 PM VS SNR FOR QAM & PSK ________________________________________________ 38 FIGURE 4.15 NOISY SIGNAL CONSTELLATION ______________________________________________ 38 FIGURE 5.1 CABLE NETWORK___________________________________________________________ 40 FIGURE 5.2 HYBRID FIBER/COAX NETWORK ________________________________________________ 41 FIGURE 5.3 HFC NETWORK ____________________________________________________________ 42 FIGURE 5.4 COAXIAL CABLE____________________________________________________________ 43 FIGURE 5.5 FCC FREQUENCY ALLOCATION ________________________________________________ 43 FIGURE 5.6 DROP CABLE FREQUENCY RESPONSE ___________________________________________ 44 FIGURE 5.7 TRUNK CABLE FREQUENCY RESPONSE __________________________________________ 44 FIGURE 5.8 TRUNK COAX CONSTRUCTION _________________________________________________ 45 FIGURE 5.9 FCC FREQUENCY DETAIL ____________________________________________________ 49 FIGURE 5.10 TRANSPORT PACKET FORMAT ______________________________________________ 53 FIGURE 5.11 TRANSMITTER-RECEIVER FOR DIGITAL TELEVISION _______________________________ 53 FIGURE 5.12 MPEG-2 FRAME __________________________________________________________ 54 FIGURE 5.13 DIGITAL VIDEO STANDARDS _________________________________________________ 56 FIGURE 6.1 BASIC MODULATOR _________________________________________________________ 59 FIGURE 6.2 LOW PASS FILTER __________________________________________________________ 60 FIGURE 6.3 RAISED COSINE PULSE 13.0=α ____________________________________________ 61 FIGURE 6.4 RAISED COSINE PULSE 0=α (IDEAL LOW PASS)_________________________________ 62 FIGURE 6.5 RAISED COSINE PULSE 5.0=α ______________________________________________ 62 FIGURE 6.6 FULL RAISED COSINE PULSE 1=α __________________________________________ 62 FIGURE 6.7 QAM ARCHITECTURE _____________________________________________________ 63 FIGURE 6.8 NATIONAL SEMICONDUCTOR-QAM SCHEMATIC ________________________________ 65 FIGURE 6.9 TYPE C PHY ______________________________________________________________ 66 FIGURE 7.1 QAM -MATLAB SYSTEM ___________________________________________________ 72 FIGURE 7.2 NO ERROR CORRECTION _____________________________________________________ 80 FIGURE 7.3 ERROR CORRECTION N=7 ____________________________________________________ 81 FIGURE 7.4 ERROR CORRECTION N=15 ___________________________________________________ 82 FIGURE 7.5 ERROR CORRECTION N=31 ___________________________________________________ 83

Page 5: Qam64

5

FIGURE 7.6 MAPPED DATA ____________________________________________________________ 85 FIGURE 7.7 XMIT FILTERED DATA ______________________________________________________ 86 FIGURE 7.8 RF DATA _________________________________________________________________ 87 FIGURE 7.9 FFT OF RCVR FILTER OUTPUT ________________________________________________ 88 FIGURE 7.10 QASK CONSTELLATION_____________________________________________________ 89

Page 6: Qam64

6

Chapter 1 QAM Demodulator

Section 1.1 INTRODUCTION – DIGITAL COMMUNICATION SYSTEM A Demodulator for a Quadrature Amplitude Modulated signal with 64 symbol constellations for Cable Modem is designed. Before getting into the specific design aspects of a QAM demodulator we need to define terms and go over some basic concepts in Digital Communications. A general communication system is shown in Figure 1.1. Each block is defined below.

Figure 1.1 Digital Communication System Model

The following is a very brief synopsis of the above model and a more detailed discussion is to be found later on in Chapter 2,Chapter 3, and Chapter 4. 1. Data Source: Set of Symbols generated by a person or system to be sent over a transmission medium to a user. Examples

• Speech/Audio • Image/Video • Telemetry • Computer Data

2. Source Encoder: Messages from users are highly redundant. So we perform compression of redundancy in a systematic manner and that is called source encoding. Since we are looking to represent the source output with as few binary digits as possible this is also called compression.

Page 7: Qam64

7

Examples

• CELP coding for speech/audio signals • JPEG coding for still images • Lempel-Ziv universal lossless coding for test compression, also called

LZ compression 3. Channel Encoder: any coding for improved transmission over a physical medium. There are two classes of Channel encoders (a) Block Codes (b) Convolutional codes. See Figure 3.3. The main difference between Block codes and Convolutional codes is the existence of memory in Convolutional codes. Examples

• Block Codes: BCH • Trellis codes: Convolutional & Coset

In many cases the two (Source Encoder & Channel Encoder) are combined into one function called "Vector Encoder”. Refer to Figure 4.1 for another perspective of a Discrete Data Transmission system with vector representation. 4. Digital Modulator: This is one of many modulation schemes possible. Here binary data is mapped into symbols and modulated with a carrier. The modulator accepts a discrete time information sequence at its input and puts out a set of corresponding waveforms.

• PSK • QPSK • QAM

5. Channel: This is any physical medium over which the Transmitted signal must pass to get to the Receiver. Examples

• Air/Deep space Radio Frequency • Telephone twisted pair (POTS - Plain Old Telephone System) • Ethernet • Fiber-optic Link (using a pulsed laser light) • CD Rom • Magnetic Disk

6. Distortion & Noise: When analog signals are digitized and compressed there is always a cost associated with the process. In digitization of band-limited signals, we employ Nyquist Theorem to guarantee exact reconstruction. However, any other source compression is realized at a cost of varying degree of imperfect representation. This is called distortion and it is NOT recoverable. In addition, signals in the communication link are faced with a number of ills. They are loosely called noise.

Page 8: Qam64

8

The presence of noise on a signal changes its shape and characteristics and it limits the ability of the intended receiver to make correct symbol decisions, and thereby affects the rate of reliable communication. Examples:

• Additive Gaussian White Noise • Device noise • Atmospheric noise in the microwave channels • Intersymbol interference in data communication systems • Interspeaker interference in voice communications • Near-end and Far-end crosstalk • Echoes in Link and chamber • Friendly and unfriendly jammers, etc.

7. Digital Demodulator: This operation is the exact mirror operation of the modulator. Here the carrier is removed from the signal stream and the in-phase and quadrature components (in the case of QAM) separated into two paths. 8. Channel Decoder: Perform inverse operations of Channel Coder 9. Source Decoder: Perform inverse operations of Source Coder. The two functions Channel Decoder and Source Decoder are often lumped as Vector Detector as shown in Figure 4.1.

10. User: The final destination of the message. At this point the message is in its original format but may not be identical. This is referred to as the recovered message m .

Return to Table of Contents TOC

Page 9: Qam64

9

Chapter 2 DISCUSSION OF INFORMATION THEORY

Rare events carry more information than common events

Information is directly linked with probability, more so than we realize at first. If I told you that the sun was shining brightly in San Francisco there would not be as much information conveyed as if I told you that there was a magnitude 7 earth quake in San Francisco this morning and there was great destruction to lives and property. Now that’s information! The nature of information defined scientifically is explored next. It was a great scientist named Claude Shannon in 1948 who based on probabilistic models presented two papers that gave birth to Information Theory. He discussed the basic problem of reliable transmission of information in statistical terms. He adopted a logarithmic measure for the information content of a source and established basic limits on the maximum rate that digital information can be transmitted reliably over a noisy communication channel. It is worthwhile to appreciate that Shannon’s work on DIGITAL communication was done at a time when communication was primarily analog and there was little demand for systems that used digital communication because of the large complexity and hence cost of digital hardware required to achieve the high efficiency and the high reliability predicted by Shannon’s theory. Section 2.1 LOGARITHMIC MEASURE OF INFORMATION Say we have two discrete random variables X and Y which can take on values from

X ∈ x1,x2,x3,…,xn and Y ∈ y1,y2,y3,…,ym

We can have two situations either X depends on Y or X is independent of Y. Of course when I say X depends on Y, I mean it may depend on Y to a small degree or a large degree and that relation is defined loosely right now as Mutual Information. We shall see how this works. Some knowledge of probability will be assumed otherwise this discussion will go north exponentially. Given a discrete random variable is exactly like giving a dice (actually die) and predicting the outcome of an event (what number shows up) when a trial is conducted. There are only six possible outcomes so this is a discrete random event. If we had another die and began to throw it and started to predict its outcome based on the outcome of the first die we are trying to relate the two events. It is this sort of thing we are doing with the random variables X and Y. It is very important to realize that if the occurrence of the first event x2 tells us something about the event y3 then we have some knowledge or information about Y from X. But when the events x2 and y3 are so tightly related such as in the following example then no information is conveyed. Say we have a blue card with the letters A, B, and C written on the face, and a yellow card with letters D, E, and F

Page 10: Qam64

10

on it. Now we draw a card (face-up) and given that we pull the yellow card, what is the probability that it also shows the letter E? Well this is of course P(E/yellow) = 1 . So if I told you that I pulled a yellow card (given) and I have also pulled the letter E, I have told you nothing. We know this so well that it seems absurd to even discuss it! So THERE IS NO INFORMATION given when the outcome is certain (probability = 1). Similarly there is no information when P=0. This is like saying “you know what? Astronauts are going to land on the surface of the Sun"; we know that it is impossible to do this. Again non-sense, or no information. When do we have information? When there is some probability of event y3 occurring when x3 has occurred.

We can start putting this is mathematical terms. When X and Y are statistically independent, the occurrence of Y = yj provides no information about the occurrence of the event X = xi. On the other hand, when X and Y are fully dependent such that the occurrence of Y = yj determines the occurrence of X= xi the information content is simply that provided by the event X = xi. A suitable measure that satisfies these conditions is the logarithm of the ratio of the conditional probability. Here is a basic review of probability:

)()( ii xPxXP ≡= is read probability of the random variable X taking on the value xi

)/()/( jiji yxPyYxXP ≡== is read conditional probability of X taking on the value xi

given that Y has occurred and is yi.

Now for the definition of mutual information. The information content provided by the occurrence of the event Y = yj about the event X = xi is defined as

)(

)/(log);(i

jiji

xPyxPyxI = eqn 2.1

);( ji yxI is called the mutual information between xi and yj. The units of );( ji yxI

are determined by the base of the logarithm which is usually selected as 2 but can be the natural base e . When the base of the logarithm is 2 the units of

);( ji yxI are bits and when the base is e then the units of );( ji yxI are called nats (natural units). Note: when working with log2() it is easier to calculate the log to base 10, written log() then divide by the log of 2 to base 10:

A B C

D E F

Page 11: Qam64

11

0.301

)log()2(log)(log)(log

10

102

aaa ==

When the random variables X and Y are statistically independent

)()/()/( ijiji xPyYxXPyxP ==== because the probability of X is not affected by what happens to Y. So equation 2.1 becomes,

0)1log()()(log);( ===

i

iji

xPxPyxI , the mutual information is zero.

However when the occurrence of Y = yj uniquely determines the occurrence of X = xi ie fully-dependent, the conditional probability in the numerator of eq 2.1 is 1 and so

)(log))(

1log()(

)/(log);( iii

jiji xP

xPxPyxPyxI −=== Which is just the information of the

event X = xi and for this reason is called the self information of the event X = xi and is denoted as

)(log)( ii xPxI −=

What is even more important than the self-information is the average self information of the source )(XH . This is defined as

∑=

=n

iii xIxPXH

1

)()()(

but )(log)( ii xPxI −= so that

∑=

−=n

iii xPxPXH

1

)(log)()( eqn 2.2

where X represents the alphabet of possible output letters from a source and )(XH represents the average self-information per source letter and is also

called the entropy of the source.

In the special case when letters from the source are equally probable n

xP i1)( =

for all i eqn 2.2 becomes ∑=

=−=n

in

nnXH

1

log1log1)(

When a general problem is considered where a source emits a sequence of statistically independent letters, where each output letter is either 0 with probability q, or is 1 with probability (1-q). The entropy of such a source is calculated using eqn 2.2.

∑∑==

−−−−=−=−=2

11

)1log()1(log)(log)()(log)()(i

ii

n

iii qqqqxPxPxPxPXH

Note: log in above eqn is in base 2. To plot the graph we use log to base 10, so use the following eqn:

Page 12: Qam64

12

301.0)1log()1(

301.0log)( qqqqqH −−−−=

Note from the graph in Figure 2.1 that the maximum value of the entropy occurs

at 21=q where 1)(

21 =H . Thus the entropy of a discrete source is a

maximum when the output letters are equally probable.

Figure 2.1 Entropy of Source

Also note that when X is the output of a discrete source, the entropy )(XH of the source represents the average amount information emitted by the source.

H q( )

q0 0.2 0.4 0.6 0.8 1

0.2

0.4

0.6

0.8

1

Probability

Entr

opy

in b

its/le

tter

Page 13: Qam64

13

Section 2.2 SOURCE ENCODING

Please refer to Figure 2.2 for this discussion. Having discussed the measure for information. We now examine the process of encoding the output of a source called source encoding. Why we do source encoding or sometimes called simply source coding is to remove redundancy in the input data. There is more fundamental reasoning behind source coding when considering analog sources. This is important to discuss now.

Figure 2.2 Digital Communication System SOURCE CODING IN ANALOG SOURCES In contrast to a discrete time source whose output is a discrete random variable X , a continuous time source (analog source) has an output )(tX that is characterized by a stochastic process. In the encoding of such a signal the first step involves in sampling the source periodically. This converts the continuous time source into an equivalent discrete time source. If the source output is bandlimited and the sampling is performed at Nyquist rate or higher we get no loss of information. However, the amplitudes of the samples are continuous random variables and so each sample cannot be represented by a finite sequence of binary digits. So each sample is quantized in amplitude to a finite number of levels. The analog source is therefore reduced to a discrete-time source having a finite number of levels or finite alphabet. Thus the quantization process introduces some distortion depending on the method used. Since an exact representation of an analog output requires an infinite number of bits quantization results in data compression. Data compression is achieved at the cost of some distortion. The objective of source coding is to minimize the source bit rate while keeping the distortion tolerable.

Source Source Encoder (analog to digital)

Channel Encoder

Digital Modulator

Channel Distortion & Noise

User Source Decoder

Channel Decoder

Digital DeModulator

Page 14: Qam64

14

When each sample is quantized separately the process is called scalar quantization. When a block of samples is quantized jointly as a single vector the process is called vector quantization or block quantization. When source coding is performed on a block of outputs the efficiency of the encoding method improves as the block size is increased. A measure of the efficiency of a source encoding method can be obtained by comparing the average number of binary digits per output letter from the source to the entropy )(XH . It is always more efficient to encode blocks of symbols instead of encoding each symbol separately. By making the block size sufficiently large the average number of binary digits per output letter can be made arbitrarily close to the entropy of the source. When the source is memoryless (ie each symbol is independent of the previous one) the encoding is done separately and the system is called a discrete memoryless system (DMS). There are several source coding techniques used for analog sources and they are listed below.

• PCM – Pulse Code Modulation • DPCM – Differential Pulse Code Modulation • DM – Delta Modulation • LPC – Linear Predictive Coding – is a very different method of

encoding PCM – Pulse Code Modulation In PCM each sample of the analog signal is quantized to one of R2 amplitude levels where R is the number of binary digits used to represent each sample. If R = 3 and we use a uniform quantizer then we get an input/output relationship as shown in Figure 2.3.

Page 15: Qam64

15

Figure 2.3 PCM The unit delta should be replaced with ∆ in Figure 2.3 and then the step size of the quantizer is defined as R−=∆ 2 . So for our example 125.02 3 ==∆ −

This leads to a mean square quantization error of 0013.012

212

22

==∆=− R

E

Measured in db the mean square quantization error is:

dbdbRER

8.288.10612

2log1012

log1022

−=−−==∆=−

for a 3-bit quantizer.

What this tells us is that for one added bit in the quantizer we reduce the error by 6db. So for a 7 bit quantizer error = -52.8 db Many signals such as speech waveforms have the characteristic that small signal amplitudes occur more frequently than large amplitudes. For such signals we use non-linear (non-uniform) quantizers that have more closely spaced levels for small amplitudes and widely spaced levels at large signal amplitudes. Telephone central office uses PCM codes with non-uniform quantizers (A-Law, µ Law). DPCM – Pulse Code Modulation In sources that show significant correlation from one sample to the next a better approach that leads to smaller bit rates is to code the differences between samples instead of coding each sample independently. DPCM exploits the redundancy in the samples to achieve a lower bit rate for the source output.

Page 16: Qam64

16

DPCM also achieves higher dynamic range and improved resolution as the encoder “looks at” tiny variations (resolution) and can follow large signals (dynamic range). Practical DPCM systems use an algorithm for predicting the current sample based on the weighted linear combination of the previous p samples, see eqn 2.3

∑=

−=p

iinin xax

1ˆ eqn 2.3

where nx is the weighted linear combination of the past p samples and ia are the predictor coefficients. The prediction algorithm used is Levinson and Durbin’s.

Figure 2.4 DPCM ENCODER The input to the predictor is denoted as nx~ which is the signal sample nx modified by the quantization process.

Also, ∑=

−=p

iinin xax

1

~~ and nnn xxe ~−= . Each value of the quantized prediction

error ne~ is encoded into a sequence of binary digits and transmitted over the channel to the destination. At the destination the same predictor that was used in the transmitter is synthesized and its output nx~ is added to ne~ to yield nx~ .

Sampler Quantizer

Predictor

x(t)

e(n)

_

+ ne~

nx~

nx~

valuepredicted _

nx~

nx

Page 17: Qam64

17

DM – DELTA Modulation Delta modulation can be viewed as a special case of DPCM in which a two level (1-bit) quantizer is used in conjunction with a fixed first order predictor z 1− .

Figure 2.5 Delta Modulation In effect the DM encoder approximates a waveform )(tx by a linear staircase function. In order for the approximation to be relatively good the waveform

)(tx must change slowly relative to the sampling rate. This requirement implies that the sampling rate must be several (at least 5 ) times the Nyquist rate. Linear Predictive Coding LPC This is a completely different approach to the problem of source encoding from what we have seen so far ie waveform encoding. Instead of transmitting the samples of the source waveform to the receiver, the parameters of a linear system are transmitted along with the proper excitation signal. To do this the source is modeled as a linear system (filter) which when excited by an appropriate input results in the observed output. SOURCE CODING IN DIGITAL SOURCES There has been some confusion regarding source coding for digital sources and what we shall see later called Channel Encoding. Discrete time sources whose output is a discrete random variable have to be encoded in a different way and for a different purpose than analog sources. The purpose here is not to bring a signal into the digital domain (obviously since it is already digital) rather to combat the effects of noisy channels. To put it neatly, the term source coding when applied to analog sources implies some scheme to quantize the signal and when the source is digital the source coder and channel coder are used

Sampler Quantizer

Unit Delay

z 1−

x(t)

e(n)

_

+ 1

~±=ne

nx~

nx~

valuepredicted _

nx~

nx

Page 18: Qam64

18

synonymously. So in the case of digital signals we can go directly to the channel encoding methods. The Communication model in Figure 2.2 emphasizes the analog to digital nature of source coding. Channel Encoding is discussed in the next section and in more detail under Error Correction. Section 2.3 CHANNEL ENCODING In order to overcome noise and interference and to increase the reliability of the data through the channel it is necessary to introduce some redundancy to the data stream in a controlled manner. The redundancy introduced at the transmitter aids the receiver in decoding the desired information bearing sequence. One can conceive of a transmission model that employs no Channel coding at all but practical systems do use some sort of channel coding or error correction. Systems that use channel coding are said to employ coded waveform signaling. One way to reduce the bit error rate ( eP ) is to add more orthogonal signals (by introducing more symbols M ) but this increases the bandwidth required proportional to M . Coding results in a lower probability of error at the price of increasing the bandwidth and the complexity of the system. However, the increase in bandwidth required to transmit a coded waveform is not as much as would be needed if we simply increased M the number of symbols, to lower eP . Higher bandwidth increases the noise introduced in the channel and if we simply increased M we would increase noise proportionally. With coding the gain in lower eP comes at a lower cost of noise than with increasing M . So coding is a more bandwidth efficient way to improve the bit-error rate. A SIMPLE EXAMPLE OF CHANNEL CODING Here is a simple example to illustrate how redundancy can be introduced. We can repeat the binary digit m times where m is say 3. So the possible source coder outputs are as shown in Figure 2.6 below.

0 000 1 111

Figure 2.6 Simple Channel Coding A more sophisticated method is to take k bits (message) at a time and mapping this sequence to another n bit sequence called a code word see Figure 3.1,

Encoder

001 010 100

011 101 110

Page 19: Qam64

19

where kn > . The amount of redundancy introduced by this is measured by the ratio k / n and is called the code rate cR . The process of channel coding produces modulator input symbols that are interrelated in either a block by block or sliding-window fashion, introducing a memory (in the case of sliding-window) and redundancy into the signaling process. There are two major classes of codes 1. Block Codes and 2. Convolutional or Trellis Codes. Some textbooks classify them as 1. Block Codes and 2. Sliding Block codes but I prefer the former identification. Please refer to Figure 3.3 for clarification and a quick synopsis of this. Under block codes we have Fixed-length codes (Linear Codes) and Variable length codes (Non-linear codes). Fixed length codes will be discussed in more detail but first let me get the Non- linear codes out of the way. VARIABLE LENGTH CODES (NON-LINEAR BLOCK CODES) When the source symbols are not equally probable an efficient encoding method is to use variable-length code words. An example of such encoding is the Morse code from the 1800s. In the Morse code the letters that occur more frequently are assigned short code words and those that occur less frequently are assigned long code words. So in short, the probabilities of occurrence of the source letters are used in assigning the code words. This type of encoding is called entropy coding. A modern day example of this coding is the Huffman code (1952). There is an underlying concern with Variable Length coding that the received sequence must be uniquely and instantaneously decodable. There is too much detail to go into here and we must move on to fixed length coding. FIXED LENGTH CODES (LINEAR BLOCK CODES) Say we have M possible symbols that we would like to transmit using binary digits. Since there are M possible symbols the number of binary digits per symbol required for unique encoding when M is a power of 2 is k given as: Mk 2log= where Mk =2 and when M is not a power of 2 it is 1log 2 += Mk Fixed length codes is the subject of Chapter 3 and this is discussed in more detail there. HAMMING DISTANCE The number of bit positions by which two codewords for a particular code are different is called the Hamming distance Hd . Example: Given two code words c1 = 101001 and c2 = 101110, what is their Hamming distance?

Page 20: Qam64

20

1 0 1 0 0 1 1 0 1 1 1 0

same same same Different different different 3 bit positions are different so Hd = 3 MINIMUM HAMMING DISTANCE The minimum number of bit positions in a set in which any two codewords for a particular code are different is called the Minimum Hamming distance min

Hd .

Return to Table of Contents TOC

Page 21: Qam64

21

Chapter 3 ERROR CORRECTION Data is source coded in order to enable the receiver to perform error correction and the general classification of codes is shown in Figure 3.3. In this project I shall discuss only Linear and Cyclic codes while the Convolutional codes will only be mentioned in passing. Section 3.1 Block Codes Block channel encoders are implemented by combinatorial circuits. An inverse circuit is used in the decoder. Each codeword results from a unique message. An (n,k) block encoder over the field with N elements, transforms each information block u into the codeword v by a static time invariant digital system G(u). Refer to Figure 3.1. A key point in block codes (as opposed to convolutional codes) is that each codeword is formed independently from other codewords.

Figure 3.1 Systematic Block Encoder In a block code the input information sequence u is divided into blocks of length k and each block is mapped into coded vectors v of length n. This mapping is independent from previous blocks (there exists no memory from one block to another). If a code is transmitted without being altered (ie parity bits are tacked on) it is called systematic encoding shown in Figure 3.2. This simple coder appends parity check digits so that the message appears unaltered in the codeword occupying the last k bits. The job of the encoder is to choose the n-k digits called parity check digits. The decoder simply picks the last k digits to recover the message. Most block codes are systematic.

Figure 3.2 Anatomy of a Codeword

k message bits n code bits

Page 22: Qam64

22

Section 3.2 Convolutional Codes Convolutional channel encoders are encoders with memory. Convolutional codes differ from block codes in that there are no independent codewords. The encoding process can be envisioned as a sliding window M symbols wide, which moves over the sequence of information symbols in steps of K symbols. M is called the constraint length of the code and K is usually equal to 1. With each step of the sliding window, the encoding process generates N symbols based on the M symbols visible in the window. The code rate is always nk / . Most Convolutional codes are nonsystematic.

Figure 3.3 Class of Channel Codes

There are two methods of decoding (a) algebraic and (b) probabilistic. The method by which convolutional codes are decoded is probabilistic and most often done using the Viterbi Algorithm. The decoding of block codes is done using algebraic methods based on a special branch of linear algerbra called Galois

BCH, Reed Solomon, Cyclic Hamming, Cyclic Golay

Hamming codes, Hadamard codes, Golay codes

Page 23: Qam64

23

(pronounced "Galua") finite fields. The general form of a Galois Field is GF(pM) where there are pM elements, and p is a prime number. Galois Field is needed only for non-binary codes (in fact the binary codes are a special case of GF with M=2). Section 3.3 Block Codes in Detail In general block codes break the data stream up into bitk − blocks and

)( kn − check bits are added to these blocks. This is referred to as a ),( kn bock code. An encoder outputs a unique n-bit code for each of the k2 possible input

bitk − blocks . For example, a (15,11) code has 15 bit codewords, 4 bits of which (15-11) are parity bits and the remaining 11 bits are data. If we know the Hamming distance of a code, min

Hd then the number of errors that can be corrected is 2/)1( min−≤ Hdt and the number of errors that can be detected is min

Hd≤ . The idea of coding should be envisioned as creating an n dimensional hypercube in n dimensional space with n2 vertices. We then choose kM 2= of these vertices as codewords. Note: nk 22 < since nk < . A linear block code is a k -dimensional linear subspace of the n -dimensional space. The vertices of the codewords should be chosen to be as far apart as possible to minimize the error probability. This is done by making the minimum Hamming distance min

Hd as large as possible. The goal is to choose parity bits to correct as many errors as possible getting as close to the theoretical limit of 2/)1( min−≤ Hdt while keeping the communication efficiency as high as possible (don’t use too much bandwidth). It is true that adding more parity bits will enable the system to correct more errors but this requires more bandwidth (adding more noise) and the complexity of the hardware needed to decode longer codes increases enormously. Examples of Block codes are Hamming codes, Hadamard codes, and Golay codes. Hamming Codes: A good example of Block codes with the special property given below are the Hamming codes. Block length 12 −= mn Number of message bits 12 −−= mk m Hamming distance min

Hd = 3 For some integer 3≥m

Page 24: Qam64

24

Some valid Hamming codes are: N 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 K 4 11 26 57 120 247 502 1013 2036 4083 8178 16369 32752 M 3 4 5 6 7 8 9 10 11 12 13 14 15 Consider the example of a (7,4) Hamming code. Since )4,7(),( =kn the last condition of 2≥m is satisfied 127 −== mn so 3=m

412 =−−= mk m Code rate 7/4/ == nkRc Example of (7,4) Hamming Code Correcting an error Here is a listing of Code words for a (n,k) = (7,4) Hamming code.

Message Word Code Word 0000 0000000 0001 1010001 0010 1110010 0011 0100011 0100 0110100 0101 1100101 0110 1000110 0111 0010111 1000 1101000 1001 0111001 1010 0011010 1011 1001011 1100 1011100 1101 0001101 1110 0101110 1111 1111111

Table 3.1 Code Words for (7,4)

Syndrome Error Pattern Error in bit position

000 0000000 No errors 100 1000000 1 010 0100000 2 001 0010000 3 110 0001000 4 011 0000100 5 111 0000010 6 101 0000001 7

Table 3.2 Decoding Table

Page 25: Qam64

25

Now say we transmit a [1110010] and receive =r [1100010] instead. We realize by inspection that bit 3 is wrong. The error correction circuit needs to do this via the algorithm as follows. The syndrome vector s is calculated from TrHs = In the syndrome table Table 3.2 above the matrix HT

Is known and so [ ] ]001[

101111011110001010100

1100010 =

=s , so we look for the error pattern for the

syndrome [001] in Table 3.2 and it is [0010000] which tells us that bit 3 is in error. To correct the error we add the received vector to the error pattern and get the corrected vector. Received vector: 1100010 Error Pattern: 0010000 Corrected vector 1110010 (which is the same as the original transmitted vector). Since we can correct only 2/)1( min−≤ Hdt errors, for Hamming codes min

Hd = 3 so 12/)13(2/)1( min =−=−Hd we can only correct 1 bit error.

Page 26: Qam64

26

Chapter 4 DATA MODULATION & DEMODULATION Section 4.1 Discrete Data Transmission A Discrete data transmission system involves transmission of one of a finite set of messages over a communication channel. The message source generates messages mi which are binary bits, and wants to communicate with the message sink at the receiver. Refer to Figure 4.1. The source must select which of the allowed messages in a finite set that the transmitter sends over the communication channel. The receiver must determine the message sent (estimate m ) and provide it to the message sink.

Figure 4.1 Vector Model of Communication System Encoding is the process of converting the messages from their raw form as bits into vectors of real numbers that represent the messages. A vector encoder converts each message mi into a symbol xi, which is a real vector (in signal space).

Message Source

Vector Encoder

Modulator

Channel

Message Sink

Vector Detector

DeModulator

mi

m

xi(t) xi

Symbol

y(t) y

Transmitter

Receiver

Page 27: Qam64

27

Modulation is a procedure for converting the encoder output vectors into analog waveforms for transmission over a physical channel. The modulator converts the symbol vector x that represents the selected message into a continuous time (analog) waveform that the transmitter outputs into the channel. There is a set of possible M signal waveforms xi(t) that is in direct one-to-one correspondence with the set of M messages. In general the conversion of a discrete data signal into a continuous time analog signal is called digital modulation. The Demodulator converts continuous time channel output signals back into a channel output vector y, from which the detector estimates x and thus also the message sent. This estimate from the detector is m . In the transmission of digital information over a communication channel, the modulator is the interface device that maps the digital information into analog waveforms that match the characteristics of the channel. The mapping is performed by taking blocks of Mk 2log= binary digits at a time from the information sequence na and selecting one of M waveforms for transmission over the channel. When the mapping from the digital sequence na to waveforms is performed under the constraint that a waveform transmitted in any time interval depends on one or more previously transmitted waveforms the modulator is said to have memory otherwise if the mapping is symbol by symbol then it is called memory-less. Section 4.2 Introduction to Linear Modulation Methods In analog modulation the information bearing signal is impressed onto a carrier frequency by modulating either the carrier amplitude (amplitude modulation – AM) or the carrier phase (Phase modulation – PM), or the carrier frequency (frequency modulation – FM). In digital modulation the modulator maps the sequence of binary digits into a corresponding set of discrete amplitudes (PAM), or a set of discrete phases (PSK), or a set of discrete frequencies (FSK). See Figure 4.2 for an example of a binary PAM message signal, its FSK version and then its PSK signal. The output of the carrier modulator is a passband signal that can be represented as follows:

)(Re)( 2 tfj cetvts π= eqn 4.1

Where cf is the carrier frequency and )(tv is the baseband information-bearing signal. The term passband and bandpass are used interchangeably but I prefer the consistency in using passband for carrier modulated and baseband for signals that include 0 hz.

Page 28: Qam64

28

The signal waveform )(tv depends on the method by which the binary information sequence is mapped into either the set of discrete amplitudes or discrete phases or discrete frequencies.

Figure 4.2 PAM Signal, FSK, & PSK

Page 29: Qam64

29

PAM If the modulator maps the binary information sequence into discrete amplitudes then the method is called digital pulse amplitude modulation (PAM) or amplitude shift keying (ASK). The signal waveform is then,

)(Re)( 2 tfjmm

cetuAts π= Mm ,...,2,1= eqn 4.2

Where ,...,2,1, MmAm = are the M possible signal amplitudes corresponding to the kM 2= possible k bit blocks or symbols. )(tu is a real valued signal pulse whose shape constitutes a signal design problem when there is a band limited channel. Suppose the bit rate is R bits/sec then the symbol rate is kR / . The symbol rate is the rate at which changes occur in the amplitude of the carrier to reflect the transmission of new information. The signal space diagram of PAM is shown in Figure 4.3 for M =2, 4 and 8. Note that this is a one-dimensional modulation scheme.

Figure 4.3 PAM Constellation

Page 30: Qam64

30

Digital PAM can also be used for transmission over a channel that does not require carrier modulation. In this case the signal waveform is simply )()( tuAtA mm = Mm ,...,2,1= eqn 4.3

Since there is no carrier this is called a baseband signal. Figure 4.4 illustrates the concept graphically and shows a baseband PAM and the carrier modulated version of the same signal as a passband PAM signal is shown in Figure 4.5 The PAM carrier modulated signal (eqn 4.2) )(Re)( 2 tfj

mmcetuAts π= is a double

sideband (DSB) signal and requires twice the channel bandwidth of the equivalent lowpass signal for transmission. There is a single sideband (SSB) PAM that is given by

)](ˆ)([Re)( 2 tfjmm

cetujtuAts π±= Mm ,...,2,1= And uses half the bandwidth of the DSB version. )(ˆ tu denotes the Hilbert transform of )(tu .

Figure 4.4 Base Band PAM

Page 31: Qam64

31

Figure 4.5 Pass Band PAM PSK When you modulate the phase of a carrier the modulation scheme is known as Phase Shift Key (PSK) and this was shown in Figure 4.2 for M=2. Because the range of the carrier phase is πθ 20 ≤≤ , the phase of each of the M symbols is

Mkk /2πθ = where 1,...,1,0 −= Mk . This is shown in Figure 4.6 for =M 2, 4, and 8. When 4=M the phase difference works out to 90 and this is called QPSK. PSK is a 2 dimensional modulation scheme.

Figure 4.6 PSK

Figure 4.7 QPSK Waveform

Page 32: Qam64

32

The QPSK waveform is shown in Figure 4.7 where T is the symbol period. Abrupt changes in phase may seem like mathematical absurdities but these phase changes are actually continuos but very rapid. They are always shown as abrupt in textbooks. QAM QAM modulates the phase and the amplitude of the carrier. The bandwidth efficiency of PAM/SSB can also be obtained by simultaneously impressing two separate k bit symbols from the sequence na on two quadrature carriers

tfcπ2cos and tfcπ2sin . The resulting modulation technique is called quadrature PAM or QAM (quadrature amplitude modulation). The signal waveforms are

)()Re()( 2 tfjmsmcm

cetujAAts π+=

tftuAtftuA cmscmc ππ 2sin)(2cos)( −= Mm ,...,2,1= eqn 4.4

where mcA is the signal amplitude modulated by the cosine carrier and msA is the signal amplitude modulated by the sine carrier. To see why eqn 4.4 is a phase and amplitude modulation scheme we can re-write eqn 4.4 as

)2cos()()(Re)( 2mcm

tfjjmm tftuVetueVts cm θππθ +== eqn 4.5

where 22msmc AAVm += and

mc

msm

AA1tan −=θ

From eqn 4.5 it is apparent that QAM signal waveforms are a form of combined amplitude and phase modulation. QAM is a 2 dimensional modulation scheme. Figure 4.8 shows various QAM constellations and how many bits are needed to modulate the data. In Figure 4.10 several different signal space diagrams for QAM are shown for M = 4, 8, 16, 32 and 64. The phase angle mθ for each constellation (M) can be calculated from

M

mm

)1(2 −= πθ Mm ,...,2,1= eqn 4.6

where M is the total number of signal points in two dimensional space. So in the case of 64 QAM, 6 bits are used to map into the 64 possible symbols. In other words, 1 symbol takes 6 bits to represent. Furthermore, 2 of these six bits are used to decode the quadrant (1st, 2nd, 3rd, 4th). As shown in Figure 4.13 the first two bits (bits 5,4) in the six bit symbol are used to decode the quadrant and the next four bits (bits 3,2,1,0) are used to find which symbol within that quadrant was transmitted.

Page 33: Qam64

33

“Constellations”

Figure 4.8 QAM Constellations

Figure 4.9 Modulated Waveforms

QPSK (=4-QAM) 1 symbol 2

bits 2

16-QAM 1 symbol 4

bits 4

256-QAM 1 symbol 8

bits 8 6

64-QAM 1 symbol 6

bits 6 6

Page 34: Qam64

34

Figure 4.10 Rectangular QAM

Section 4.3 QAM Schematic The schematic of a QAM modulator is shown in Figure 4.11 and the Demodulator is shown in Figure 4.12.

Figure 4.11 Qam Modulator

Page 35: Qam64

35

Figure 4.12 Qam Demodulator

Page 36: Qam64

36

Figure 4.13 64-QAM Bit Assignment Section 4.4 Probability of Error in QAM Noise in the channel causes the received signal to be distorted and can lead to erroneous decoding in the demodulator. The signal constellation in a noisy QAM system is depicted in Figure 4.15. The calculation of probability of a symbol error is based on a PAM system which extends easily into the rectangular constellation based on quadrature carriers. If the constellation is not rectangular you cannot use the following equations. For rectangular constellations in which kM 2= where k is even the QAM signal constellation is equivalent to two PAM signals on quadrature carriers each having 2/2kM = signal points. The starting point of this discussion is the probability of error in a PAM system given by

)(1

3)11(2o

av

NE

MQ

MP M

−−= eqn 4.7

and the above is related to the probability of correct decision in a M-ary QAM,

cP as follows:

Page 37: Qam64

37

2)1( MPPc −= eqn 4.8

where MP is the probability of a symbol error in aryM PAM with 21 the

average power in each quadrature signal of the equivalent QAM system. Since the probability of making a wrong decision is 1 – probability of making the correct decision,

2)1(11 MPPcPM −−=−= eqn 4.9

Substituting eqn 4.7 into eqn 4.9

2][ )(1

3)11(211o

avM

NE

MQ

MP

−−−−= eqn 4.10

where =MP probability of symbol error in QAM M-ary =M # of symbols

=o

av

NE SNR, signal energy/noise energy

=)(Q erf function which can be calculated using a table or solved in MathCad using Q(x) = 1 – pnorm(x,0,1).

This is the exact form of the probability of error in a QAM system. Now eqn 4.10 is exact for evenk = but if oddk = in kM 2= we have no equivalent aryM PAM system. So for oddk = we calculate an upper bound on

MP .

2)]([1

3211o

avM

NE

MQP

−−−≤ with the simplification 1)11( ≈−

M, this has

the effect of overestimating MP so it is okay to do so,

)](4)([1

31

3411 2

o

av

o

avM

NE

MQ

NE

MQP

−−−−≤ +

)(4)(1

31

34 2

o

av

o

avM

NE

MQ

NE

MQP

−−≤ −

Further simplification )()(4)(1

341

31

34 2

o

av

o

av

o

av

NE

MQ

NE

MQ

NE

MQ

−−−≈−

gives

)(1

34o

avM

NE

MQP

−≤ for oddk = eqn 4.11

Page 38: Qam64

38

Figure 4.14 PM vs SNR for QAM & PSK

Figure 4.15 Noisy Signal Constellation

The probability of error for various modulation schemes is shown in Figure 4.14 Return to Table of Contents TOC

Page 39: Qam64

39

Chapter 5 Cable Modem Introduction Section 5.1 Definition of Cable Modem Cable Modem A cable modem is a high-speed device for digital transmission of bits over a coaxial cable. A simple-minded view is as a modulator (at the transmitting end) and a demodulator (at the receiving end). Actual implementation involves many other blocks and will be covered in detail later. A cable modem as the term applies today is a very high-speed modem for Internet access over a cable CATV present in a lot of homes in the USA today. Contrasted with the kind of modem we are used to talking about in the context of telephone line modems which are very slow indeed, called POTS modem for Plain Old Telephone Modem. The term Cable modem has since the initial writing of this project changed its meaning and it was intended to refer to a high-speed video modem. Perhaps I should have chosen the title "Video Modem design". However in this project the term Cable modem refers to modems used in digital cable-TV set-top boxes whose FEC (Forward Error Correction) is compliant with the IEEE802.14 (not released yet). Other standards that may apply are the European DVB-C standards (Digital Video broadcasting) and the DAVIC standard (Digital Audio-Visual Council) which is also a European standard. Due to the availability of the IEEE802.14 in draft form this design concerns mostly with this standard. It is hoped that this standard will be adopted and companies can begin competing in the video modem arena. Section 5.2 Structure of Cable systems The basic structure of a cable system is a simple one (see Figure 5.1). There are five major parts to a cable system: 1.the headend, 2.the trunk cable, 3.the distribution (or feeder) cable in the neighborhood, 4.the drop cable to the home and in-house wiring, and 5.the set-top box equipment (consumer electronics). The head end is the source in a central facility that broadcasts signals onto the cable network. The head end gathers signals from various sources such as satellite dishes and high-gain antenna.

Page 40: Qam64

40

Figure 5.1 Cable Network The trunk network is made of a larger coax and in fact today an optical fiber is used for this. This combination is called a hybrid fiber coax (HFC) shown in Figure 5.2 and in a broader context of networks in Figure 5.3. When a coax is used in the trunk the signal needs to be amplified every two thousand feet because of loss (especially at high frequencies). This trunk amplifier in the case of an analog signal adds noise. Optical transmission of digital data (fiber) can go much longer before requiring re-amplification. This simplifies the trunk architecture and reduces the noise that is introduced. For the same length of coax cable and fiber, coax can have 500 times more attenuation than the fiber. The distribution network is coax and is bridged off the trunk. The distribution network is the “neighborhood network” and amplifiers here are called line extenders. The subscriber drop line is taken from the distribution network by tapping the line and is no more than 150-200ft. This tap is at the curb usually inside an underground service box. Here is the surprising part. Where does the power for the amplifiers come from? Answer: from the cable itself! A 60V, 60Hz ac current is sent over the trunk cable (of course this is not possible if the trunk is fiber) and is taken to the trunk amplifiers. Power is not carried beyond the distribution networks into the subscriber drop. At times the power is taken from a telephone pole transformer and fed into the cable midway and this is why cable

Page 41: Qam64

41

service may be interrupted during a power failure in a certain neighborhood even when the Cable Company has emergency generators.

Figure 5.2 Hybrid fiber/coax network

Page 42: Qam64

42

Figure 5.3 HFC Network

Page 43: Qam64

43

CATV stands for Community antenna television. It was first built in 1948 by Ed Parson of Astoria, Oregon. It consists of a copper-clad steel center conductor inside an insulating foam dielectric material surrounded by a braided wire and/or metal foil. Finally a plastic sheath protects the contents from damage, see Figure 5.4 and Figure 5.8. The characteristic impedance of this cable is 75 Ω . Cable does have a high loss and it depends on the frequency of interest. The logarithm of the attenuation of cable (db) varies with the square root of the frequency. So the attenuation at 216Mhz (channel 13) is twice that of 54Mhz (channel 2) since the frequency is four times as great. If channel 2 is attenuated 10db in 1000ft then channel 13 will be attenuated 20db (see Figure 5.5). For the frequency response of a drop cable see Figure 5.6 and for that of a trunk cable see Figure 5.7. It can be seen that the trunk cable has a higher performance than the drop cable. The graphs show the attenuation for a 100ft-length cable over various frequencies.

Figure 5.4 Coaxial Cable

Figure 5.5 FCC Frequency Allocation

Page 44: Qam64

44

Figure 5.6 Drop Cable Frequency Response

Figure 5.7 Trunk Cable Frequency Response

1 10 100 1 10 3 0.1

1

10 Drop Cable

Frequency (Mhz)

Atte

nuat

ion

(db/

100f

t)

1 10 100 1 10 3 0.1

1

10 Trunk Cable

Frequency (Mhz)

Atte

nuat

ion

(db/

100f

t)

Page 45: Qam64

45

Section 5.3 Cable Specifications TRUNK CABLE SPECIFICATIONS courtesy of CommScope.

Figure 5.8 Trunk Coax Construction

Page 46: Qam64

46

Page 47: Qam64

47

DROP CABLE SPECIFICATIONS Cable type Characteristic Impedance Used In RG-58/U 53.5 Ω Ethernet (but not

recommended due to improper shielding)

RG-58A/U or RG-58C/U

50 Ω 10 Base2 CSMA/CD (Thin wire Ethernet)

RG-59/U 75 Ω CATV (cable TV) RG-62/U 93 Ω IBM 3270 terminals,

ARCnet RG stands for radio guide as the cable guides radio frequency signals. The /U means general utility.

Page 48: Qam64

48

Page 49: Qam64

49

Figure 5.9 FCC Frequency Detail

Page 50: Qam64

50

Section 5.4 Baud, Bit-rate, Modem Speed The units can be confusing to a new comer so here is a quick summary. Data rate refers to the rate at which bits are transmitted over the physical medium. The unit of data rate or bit rate is bits/sec. Modulation rate refers to the rate at which the symbols are transmitted over the physical medium. The unit of modulation rate (also called signaling rate) is baud or symbols/sec. A symbol is a unique state of the communication channel, distinguishable by the receiver from all other possible states. For example, it may be one of two voltage levels on a wire for a direct digital connection or it might be the phase or frequency of a carrier or a unique combination of phase and amplitude (QAM). The term "baud" was originally a unit of telegraph signaling speed, set at one Morse code dot per second. Or, more generally, the reciprocal of the duration of the shortest signaling element. It was proposed at the International Telegraph Conference of 1927, and named after J.M.E. Baudot (1845-1903), the French engineer who constructed the first successful teleprinter. Comparison of speed of transferring a 10-Megabyte file over different modems:

MODEM SPEED / TYPE

TRANSFER TIME

9.6-Kbps Telephone Modem 2.3 hours 14.4-Kbps Telephone Modem 1.5 hours 28.8-Kbps Telephone Modem 46 minutes 56-Kbps Telephone Modem 24 minutes 128-Kbps ISDN Modem 10 minutes 1.54-Mbps T-1 Connection 52 seconds 4-Mbps Cable Modem 20 seconds 10-Mbps Cable Modem 8 seconds 30-Mbps Cable Modem 2.7 seconds

POTS modems are modems used for modulating digital data inside a computer onto an analog phone line. The symbol rate (called Baud or loosely Baud rate) is about 3000 Baud. The relationship between Baud and bits-per-sec depends on the number of bits used to make up a symbol. In 64 QAM which is one of the modulation schemes in the downstream Digital Video DVB-C standard and IEEE802.14, it takes 6 bits to make up a symbol. So the relationship between bits per sec (bps) and Baud (symbols/sec) is

Baudbits

bpsBaud/6

= For 64 QAM

Example: If we are using a 64 QAM modulation scheme and we have 27 Mbps

then it translates into MBaudBaudbits

Mbps 5.4/6

27 = , or 4.5x106 Baud

Page 51: Qam64

51

A Digital TV channel bandwidth is 6Mhz (based on the current analog NTSC

allocation). This 6Mhz bandwidth can accommodate 36 Mbps under the adopted ATSC standard for digital TV. Audiovisual signals with standard resolution can be compressed using MPEG-2 to sustainable rates of around 6 Mbps, so around 4 digital TV channels can be safely supported in a single channel without congestion. This is great news for the FCC as they can sell more channels in the same space.

Section 5.5 Digital TV Standards HDTV Current TV sets display 480 lines of information with the 240 odd-numbered lines being scanned from top to bottom first and then the 240 even-numbered lines are scanned next. This gives the present TV its flicker and is called the interlaced format. Each set of odd and then even lines is scanned 30 times a sec. The aspect ratio of today's TV sets is 4:3. Computer monitors on the other hand use 480 lines and display all 480 lines from top to bottom without interlacing. This is called progressive format. This is why computer monitor pictures appear sharper. Also, the minimum frames per sec are 60fps or up to 85fps in some high-end monitors. High definition TV changes all that. HDTV uses 1080 interlaced lines or 720 progressively scanned lines on a 16:9 aspect ratio screen. HDTV will contain seven times more information than what today's format allows. The FCC has allocated the 6 Mhz band into several channels and "lent" each station an additional channel so that they may transmit both NTSC and digital signals until the year 2006 at which time they must "return" the analog channel bandwidth to FCC. Most stations in the Bay area are going to transmit some digital channel by Nov 1999. SDTV This is HDTV in a standard resolution comparable to the existing standard but of course digital i.e. 480 lines progressive scanning. SDTV stands for Standard Definition Television. MPEG-2 Compression standard for moving images conceived by the Motion Pictures Expert Group, an international group of industry experts set up to standardize compressed moving pictures and audio. This removes redundancy in the digitized picture matrix by using Discrete Cosine transforms. The analog bandwidth from a HDTV camera consists of something like 30Mhz each of red, blue, and green colors. That’s nearly 100Mhz of analog signal and would require more than a gigabit (109 bits) per second of straight digital transmission if no compression was used. With compression these bit rates can be in the 27x106 bits/s range. A little history is in order. In 1988 the process of creating a universal audio and video compression standard was started by the Motion Pictures Expert Group. In

Page 52: Qam64

52

1990 the MPEG-1 standard was derived. This standard is already being used in the VideoCD and CD-I products. The MPEG-2 is a more advanced standard supporting higher picture resolutions for HDTV and DVD (Digital Video Disk). Other competing standards are Indeo, Quicktime and Cinepack. To ensure the support of many different equipment and chip vendors, the standard does not define a standard encoder or decoder, but only the coded bit-stream. The MPEG standard also has a major drawback. Because of the many available bit-rates, frame-rates and resolutions in the MPEG standard, the MPEG hardware vendors choose to support only a few of those different bit-rates, frame-rates and resolutions necessary for specific applications. These different solutions are not interoperable, so in order to create one standard for many different applications, many different standards are created with one common name: MPEG. Modulation Methods Two main competitors are Quadrature amplitude modulation (QAM) and Vestigial sideband (VSB) modulation. A 16-VSB system tested by ATTC (Advanced Television Test Center) delivered 38.5 Mbps. Cable companies are deploying 64-QAM (with 27 Mbps) because it maps one 27 Mhz satellite transponder capacity in one 6 Mhz channel (allocated by FCC). Everyone must work within the 6 Mhz bandwidth allocated. Section 5.6 Overview of transport subsystem There are several transport methods. One way is to use the ATM network and is supported in the IEEE802.14. The MPEG-2 compressed signal rides on a mass transit-like system already developed for ATM networks. This is called the Packet Transport. It is illustrated in Figure 5.10. The organization of a digital television transmitter-receiver pair and the location of the transport subsystem in the overall system is shown in Figure 5.11. The transport resides between the application (e.g., audio or video) encoding/decoding function and the transmission subsystem. At its lowest layer, the encoder transport subsystem is responsible for formatting the encoded bits and multiplexing the different components of the program for transmission. At the receiver, it is responsible for recovering the bit streams for the individual application decoders and for the corresponding error signaling. The data transport mechanism is based on the use of fixed-length packets that are identified by headers. Each header identifies a particular application bit stream (also called an elementary bit stream), which forms the payload of the packet. Applications supported include video, audio, data, program and system

Page 53: Qam64

53

control information, etc. The elementary bit streams for video and audio are themselves wrapped in a variable-length packet structure called the packetized elementary stream (PES) before transport processing. The PES layer provides functionality for identification, and synchronization of decoding and presentation of the individual application.

Figure 5.10 Transport packet format

Figure 5.11 Transmitter-Receiver for Digital Television

Page 54: Qam64

54

Section 5.7 MPEG-TS Transport Stream The preferred method for video is to use the MPEG2-TS framing structure and not use the ATM format. The TS stands for transport stream. The IEEE802.14 supports both formats. The MPEG2-TS framing is shown in Figure 5.12. The first octet (byte=8bits) is the SYNC field used to recognize the beginning of the transport stream. The next field is 1 bit TEI and shows the mpeg decoder if the entire packet has an error. The next bit is PUSI (payload unit start indicator) and is reserved for future use. The next bit is TP (transport priority) and can be used in giving some packets higher priority. The next 13 bits are the program id (PID) and is set to 0x1FFD. The next 2 bits are TSC (transport scrambling control) which is 00 for now (reserved). The next two bits are AFC (adaptation field control) which is not discussed at all in the IEEE802.14 spec. The next four bits are CC (continuity counter) which keeps the packet identified with the program id. This too is poorly understood and not described in the spec. Finally the payload! The next 184 octets (1472 bits) are used to deliver the payload (video data). So a total of 1504 bits are used to make up an MPEG2-TS packet.

Figure 5.12 MPEG-2 Frame

Page 55: Qam64

55

Section 5.8 Set-Top Boxes Basic Analog Boxes Today set-top boxes in homes are analog and the RF signal coming in is demodulated to recover the analog signal. Key components in a basic analog set-top box include an RF tuner, mixed-signal demodulator for intermediate-frequency (IF) processing, and a descrambler chip. There are audio/video amplifiers and a standard UHF channel modulator to communicate with the NTSC television set. Most boxes also have 8-bit controllers and associated memory for internal and remote control functions. Analog-Addressable Interactive Boxes A great deal of development activity is currently focused on analog-addressable interactive set-top boxes. These set-top boxes have a return channel to the CATV head-end station. This return channel enables subscribers to obtain a variety of services at their fingertips, including pay-per-view programs, online program guides, bulletin boards, and other online services such as stock quotes, sports scores, weather and home shopping. The return channel uses Quadrature Phase Shift Keying (QPSK) or Frequency Shift Keying (FSK) demodulation techniques. Low-End Interactive Digital Boxes At the present time it seems that most digital set-top (ST) boxes will be used for satellite transmission. However there are companies developing Digital ST boxes for CATV. These ST boxes will utilize MPEG-II decompression technology to increase the number of channels possible. Digital audio will range from CD-quality in the low-end box to Dolby surround sound quality in the high-end boxes. In the satellite ST box demodulation will be done with QPSK and in CATV boxes it will be QAM or Vestigial Sideband (VSB). VSB is a proprietary standard backed by Zenith. QAM is still an open standard for the cable industry promoted by a number of set-top box manufacturers such as General Instruments. The decompressed (MPEGII) video and audio signal has to be up converted to NTSC (or PAL, SECAM) for today's television, as the true digital television receiver has not yet arrived. The return channel is similar to the analog addressable ST box, except in the case of satellite ST box which uses a conventional telephone modem. The CATV return channel will be about 100K bps.

Page 56: Qam64

56

High-End Interactive Digital Boxes High-end interactive digital boxes are strictly for CATV at the moment. They will be capable of displaying 3-D graphics. A RISC or CISC microprocessor with 16Mbytes of RAM will be common. The return channel will be similar to the Low-end interactive digital boxes, i.e. using QPSK or FSK (in some cases), but with transmission rates of 1.5 Mbps. These boxes will have flexible and upgradeable features since they have microprocessors and software in them.

Figure 5.13 Digital Video Standards

Page 57: Qam64

57

Glossary of terms ATSC ATSC: Advanced Television Systems Committee. Formed to establish

technical standards for advanced television systems, including digital high definition television (HDTV). Internet: http://www.atsc.org/

AC3 Dolby Digital (formally Dolby AC-3, now also Dolby D): The approved 5.1 channel (surround-sound) audio standard for ATSC digital television, using approximately 13:1 compression. Six discreet audio channels are used: Left, Center, Right, Left Rear (or side) Surround, Right Rear (or side) Surround, and a subwoofer. The bit rate can range from 56 Kbps to 640 Kbps. When moving from analog recording to a digital recording medium, one finds that the digital audio coding used yields an amount of data too immense to store or transmit economically, especially when multiple channels are required. As a result, new forms of digital audio coding-often known as "perceptual coding"-have been developed to allow the use of lower data rates with a minimum of perceived degradation of sound quality. Dolby's third generation audio coding algorithm (originally called AC-3) is such a coder. This coder has been designed to take maximum advantage of human auditory masking in that it divides the audio spectrum of each channel into narrow frequency bands of different sizes, optimized with respect to the frequency selectivity of human hearing. This makes it possible to sharply filter coding noise so that it is forced to stay very close in frequency to the frequency components of the audio signal being coded. Reducing or eliminating coding noise wherever there are no audio signals to mask it can subjectively preserve the sound quality of the original signal. In this key respect, a coding system like Dolby Digital is essentially a form of very selective and Powerful noise reduction.

CATV Community antenna television. DAVIC Digital Audio-Visual Council DCT Discrete Cosine Transform. A widely used method of data compression

of digital video pictures basically by resolving blocks of the picture (usually 8 x 8 pixels) into frequencies, amplitudes, and colors. JPEG and DV depend on DCT.

DSS Digital satellite system. An alternative to cable and analog satellite reception initially utilizing a fixed 18-inch dish focused on one or more geostationary satellites. DSS units are able to receive multiple channels of multiplexed video and audio signals as well as programming information, Email, and related data. DSS typically uses MPEG-2 encoding.

DVB Digital Video broadcasting (European) DVB-C Digital Video broadcasting for Cable

Page 58: Qam64

58

HDTV High definition television. Typically 1,125-, 1,080- and 1,035-line interlace and 1,080-line progressive formats in a 16:9 aspect ratio. Officially a format is high definition if it has at least twice the horizontal and vertical resolution of the standard signal being used. There is a debate as to whether 720-line progressive is also high definition.

JPEG Joint Photographic Experts Group. ISO/ITU-T. JPEG is a standard for the data compression of still pictures (intrafield). In particular its work has been involved with pictures coded to the ITU-R 601 standard. JPEG uses DCT and offers data compression of between two and 100 times and three levels of processing are defined: the baseline, extended and "loss less" encoding.

MPEG Compression standards for moving images conceived by the Motion Pictures Expert Group, an international group of industry experts set up to standardize compressed moving pictures and audio. Four MPEG standards were originally planned but the accommodation of HDTV within MPEG-2 has meant that MPEG-3 is now redundant. . The main interest for the television industry is in MPEG-1 and MPEG-2.

MPEG-1 MPEG-1: A group of picture blocks, usually four, which are analyzed during MPEG coding to give an estimate of the movement between frames. This generates the motion vectors that are then used to place the macroblocks in decoded pictures. This was designed to work at 1.2 Mbits/sec, the data rate of CD-ROM, so that video could be played from CDs. However the quality is not sufficient for TV broadcast.

MPEG-2 MPEG-2 is the basis for ATSC digital television transmission. Its work follows on from that of JPEG to add interfield compression, the extra compression potentially available through similarities between successive frames of moving pictures.

MPEG4 MPEG-4 is intended for unrelated applications, however can be used to display ATSC formats on a PC

NTSC National Television Standards Committee QAM Quadrature Amplitude Modulation QPSK Quadrature Phase Shift Key SMPTE Society of Motion Picture and Television Engineers. A professional

organization that sets standards for American television. http://www.smpte.org

Return to Table of Contents TOC

Page 59: Qam64

59

Chapter 6 Modem Design Section 6.1 Basic Modulator To understand the demodulator one must first understand the modulator basics. The modulator described here will accept a data stream (bit stream) with a symbol rate equal to B (standing for baud) and will output a modulated QAM signal centered at an IF (intermediate frequency) equal to the symbol rate or twice the symbol rate (B or 2B). A typical application would be a 5 MBaud (5 million symbols per second) 64 QAM modulator for a digital television transmitter. The modulator will Nyquist filter (pulse shape) the QAM signal, mix it up to be centered at either 5 MHz or 10 MHz (digital sine/cosine generator), D/A convert it and output an analog signal ready to be mixed up to a final radio carrier frequency of several hundred megahertz.

Figure 6.1 Basic Modulator The basic functions of a QAM modulator are shown in Figure 6.1: The bit stream is formatted into symbols consisting of In-phase (I) and Quadrature (Q) words. A 64-QAM symbol uses 6 input bits per symbol, 3 bits for the I and 3 bits for the Q. The I and Q values for 64 QAM are ±1, ±3, ±5 and ±7. The symbols are zero padded to generate a data stream at the desired sample rate for the final digital to analog converter (DAC). The desired sample rate is a function of the IF signal frequency and its bandwidth. If the excess bandwidth of the Nyquist filter is α , and the IF signal’s center frequency is F, then the DAC frequency must be at least twice (F + (1+α )B/2). This means that the DAC frequency must be greater than (2F + (1+α )B). If the IF is centered at the symbol rate B, then a DAC frequency of 4B is adequate. If the IF center frequency is 2B, then a DAC frequency of 8B is needed. If the DAC frequency is chosen as 4B, then the zero pad circuit must insert 3 zeroes between each symbol. If the DAC frequency is 8B, then 7 zeroes must be inserted between each symbol. The pulse shape filter is typically the raised cosine pulse defined in eqn 6.1 below.

FORMAT INTO

SYMBOLS ZERO PAD

ZERO PAD PULSE SHAPE FILTER

PULSE SHAPE FILTER

DIGITAL SIN/COS OSC

D/A

BIT STREAM

IN

IF SIGNAL

OUT

I

Q

(IF=5 Mhz)

CLOCK SYNTHESIZER

30 Mbps

30 Mhz =(6bitsx5Mhz) FDAC=20 Mhz =(4 x 5Mhz)

Mixer

20 Mhz

20 Mhz

Page 60: Qam64

60

= 221

cossin)(

s

s

s

s

Tt

Tt

TtTt

tpα

απ

π

π

eqn 6.1

Where α sets the excess bandwidth of the pulse and Ts is the symbol time spacing and baud rate B = 1/T. If the DAC frequency is 4B, then the pulse filter will use the impulse response h(k) = p(kT/4) for k = -N to +N. The length of the filter is 2N+1. The value of N, and hence the length of the filter, is set so that the value of p(t) in eqn 2.1 is sufficiently close to zero for k > N. If the DAC frequency is 8B, then h(k) = p(kT/8). Typically N is less than 30 for a DAC frequency of 4B and is less than 60 for a DAC frequency of 8B. The I/Q signal coming from the pulse shape filters is mixed up to the desired IF center frequency as shown in Figure 6.1. The real part of the mixer output is retained and sent to the DAC. A lowpass filter smoothes the DAC output. The lowpass filter’s passband extends from 0 to (F + (1+α )B/2) and its stop band starts at FDAC - (F + (1+α )B/2)

Figure 6.2 Low Pass Filter DAC frequency FDAC is calculated on the next page for our case.

F+(1+α )B/2 FDAC – F-(1+α )B/2

Page 61: Qam64

61

If the DAC frequency is 4B and the IF is B, or if the DAC frequency is 8B and the

IF is 2B, then the mixer frequency is nj

e 4π

which is simply the sequence (1, j, -1, -j,...). This means that the mixer only needs to make sign changes and to multiplex between the I and Q filter outputs. Three different raised cosine pulses are shown in Figure 6.4 , Figure 6.5, and Figure 6.6 for 0=α , 0.5, and 1. The case of 0=α (0 excess bandwidth) is ideal low pass, sin(x)/x response, the case of 5.0=α (50% excess bandwidth) is a realistic filter with some trade-off between excess bandwidth and pulse rate. The case of 1=α is called full cosine roll-off and the excess bandwidth is 100%. A cable system uses typically 13.0=α (please see Figure 6.3 and Table 6.1).

Figure 6.3 Raised Cosine Pulse 13.0=α

p t ( )

10 5 0 5 10 0.5

0

0.5

1

DAC Frequency Rajat Sewal DAC_freq.mcd

α 0.13 F 5 IF center frequency (Mhz) B 5 Baud rate (Mhz)

Dac_freq 2 F. 1 α( ) B.( ) Dac_freq 15.65= Mhz

so we can use 20 Mhz ie F DAC = 4B = 20 Mhz. Also note that F=B

Low Pass Filter

Pass Band from 0 to (B+(1+αααα )B/2 Stop Band starting at 3B-(1+ αααα )B/2

Pass_band B 1 α( ) B2

. Pass_band 7.825= Mhz

Stop_band 3 B. 1 α( ) B2

. Stop_band 12.175= Mhz

Page 62: Qam64

62

Figure 6.4 Raised Cosine Pulse 0=α (ideal low pass)

Figure 6.5 Raised Cosine Pulse 5.0=α

Figure 6.6 Full Raised Cosine Pulse 1=α

p(t)

t 10 5 0 5 10 0.5

0

0.5

1

p t ( )

t 10 5 0 5 10 0.5

0

0.5

1

t

p t ( )

10 5 0 5 10 0.5

0

0.5

1

Page 63: Qam64

63

Section 6.2 Modem Specification A video modem processing an MPEG2-TS stream has to be fast because it is not only processing high-speed video data but also the overhead bits used in synchronizing and other housekeeping tasks. This adds more demands on the modem design. The symbol rate has to be in accordance with the IEEE802.14 standard (in development) and is 5.05Mbaud for 64 QAM. The architecture of a 64 QAM modem is shown in Figure 6.7. Because of its high bandwidth efficiency quadrature amplitude modulation has become the established modulation scheme for digital high-capacity modems.

Figure 6.7 QAM Architecture The RF input (88Mhz to 860Mhz in USA) has several 6Mhz bandwidth channels and is the cable input to the subscriber and carries digital RF modulated signals which are down-converted (carrier is stripped off) and filtered by a SAW (surface acoustic wave) filter in the tuner. A SAW filter is simply an analog version of a FIR filter but is made from a piezoelectric material on a ceramic substrate. The SAW filter performs a very sharp cut-off, low-pass filtering operation without adding any noise. The only drawback is that it has some insertion loss, as it is a passive device. It is kept away from any hot components to keep its Johnson noise to a minimum. The output is then fed into an AGC circuit whose gain is controlled by the output of the ADC (analog to digital converter). This allows the ADC to have a good dynamic range as the input signal amplitude may vary considerably. The ADC is a 10 bit fast sampling device and considerable design effort goes into this component. One difficult part of the ADC design is that the sampling FET introduces noise current as charge is rapidly pulled in and out of its gate. The charge couples into the drain/source circuitry and results in errors in the storage element. The FET has to be large to be able to switch quickly but a large FET area means more gate to source/drain coupling. This conflicting requirement has been a real challenge for design engineers and some clever

Page 64: Qam64

64

ways have been developed to try and reduce this effect. Another area of the design that has been a challenge is controlling the phase jitter of the PLL driver to the ADC sampling circuit. If the clock driving the PLL has jitter or the PLL itself introduces jitter noise then the ADC sampling is in real trouble and the accuracy of the ADC is effected directly. The sampling frequency of the ADC depends on whether the IF frequency (Intermediate frequency) is centered at the symbol rate B or twice the symbol rate, 2B. If the IF is centered around symbol rate B then the ADC sampling is done at 4B, if the IF is at 2B then ADC sampling is done at 8B. The output of the ADC now contains the in-phase and quadrature components of the baseband QAM modulated signal. These are demodulated by a cosine and a sine wave signal generated by the symbol timing recovery circuits. For high performance transmission equalization is necessary after the demodulation to compensate for the dispersive fading of the transmission channel (cable exhibits loss at high frequencies). The amount of computation necessary in the tap coefficient updates (multiply and accumulate) far exceeds the capabilities of programmable DSP chips (such as TI 320 series, Motorola 56000, Analog Devices 2600 series and Intel i860). These DSP chips (processors) are good for up to 100K Baud. Above 100K Baud one must design custom chips (ASICS) that are fully optimized for high computation rates to support rates as high as 35 M Baud. The multiplier time using pipelined multipliers that I have seen are 10ns. This level of performance requires pipelining and large multipliers. Recall that in the case of 64 QAM, 6 bits are used to map into the 64 possible symbols. In other words, 1 symbol takes 6 bits to represent. Furthermore, 2 of these six bits are used to decode the quadrant (1st, 2nd, 3rd, 4th). As shown in Figure 4.13 the first two bits (bits 5,4) in the six bit symbol are used to decode the quadrant and the next four bits (bits 3,2,1,0) are used to find which symbol within that quadrant was transmitted. The probability of error for a rectangular constellation is repeated here:

2][ )(1

3)11(211o

avM

NE

MQ

MP

−−−−= eqn 6.2

where =MP probability of symbol error in QAM M-ary =M # of symbols

=o

av

NE SNR, signal energy/noise energy

=)(Q erf function which can be calculated using a table The block diagram of a 64-QAM from National Semiconductor is shown in Figure 6.8 and it shows a more practical view down to the external input/output pins.

Page 65: Qam64

65

The demodulator is controllable from an external microprocessor via a serial interface.

Figure 6.8 National Semiconductor-QAM Schematic

Page 66: Qam64

66

Section 6.3 IEEE802.14 Specification The IEEE802.14 supports three physical layer (PHY) formats A, B and C as shown in the table below. PHY Type A PHY Type B PHY Type C (USA) 64QAM & 256 QAM 64QAM & 256 QAM 64QAM & 256 QAM 8 Mhz Channel BW 6 Mhz Channel BW 6 Mhz Channel BW FEC is Reed Solomon FEC is RS for outer and

Trellis (TCM) for inner symbols ie concatenated

FEC is Reed Solomon

Spectral roll-off 15.0=α Spectral roll-off 64QAM: 18.0=α 256QAM: 12.0=α

Spectral roll-off 13.0=α

Modulation rate: 6~6.952 Mbaud

64QAM: 5.05 Mbaud 256QAM: 5.19, 5.36 Mbaud

Modulation rate: 5.0 ~ 5.31 Mbaud

Table 6.1 PHY Formats

Figure 6.9 Type C PHY

Return to Table of Contents TOC

Page 67: Qam64

67

Chapter 7 Matlab Simulation Section 7.1 Communication Tool Box The modem is simulated using the Communication ToolBox of Matlab. The communication toolbox from Matlab allows one to design a high level system without having to design every single lower level function. A higher level of abstraction gives the designer mobility in choosing various system parameters and try out different scenarios in a shorter time. There is another toolbox called DSP Blocksets which has larger blocks built in, such as equalizers and carrier recovery blocks. I did not have access to the DSP Blocksets toolbox unfortunately. The version of Matlab I used is listed here: MATLAB Toolbox Version 5.2 18-Dec-1997 Communications Toolbox Version 1.3 01-Dec-1997 Signal Processing Toolbox Version 4.1 21-Nov-1997 Simulink Version 2.2 21-Nov-1997

Page 68: Qam64

68

Section 7.2 Matlab Code The matlab code is shown in the next few pages and to understand the code you need to refer to Figure 7.1, the system block diagram.

% EE297 Project Rajat Sewal % File Name : qam64.m % % This program simulates a 64 QAM Modem % % Date Revision History % ------- -------- ---------------------------- % 7/11/98 1.0 Started writing code % 10/24/98 2.0 Added channel impairment % 10/26/98 3.0 Display Ber vs Eb_No curve % 10/27/98 4.0 Added RS Error correction with prompt % 10/27/98 5.0 Fixed some errors in data lengths % 10/28/98 6.0 Prompt for extra graphs and zoom in Eb_No curve % 10/29/98 7.0 Prompt for code word length N & log start/stop time % % Initialization fprintf('Clearing all variables...\n') clear all %symbol rate, digital transfer frequency Fd Fd=1; %assign Carrier Frequency Fc=10; %Sample Rate or sample freq Fs. This is the rate Matlab samples the analog signals because after all the computer cannot sample infinitely fast to simulate an analog signal. This frequency has more to do with the computer than the modem itself. Fs=100; N=7; % %Error-control coding use_reed_solomon=input('Do you want Reed Solomon error correction?[1=Yes,0=No]: '); if use_reed_solomon==1 N=input('Enter code word length N=2^M-1, say 7,15,31: '); end fprintf('Do you want extra graphs of Mapped Data, XMIT Filtered output\n'); extra_graphs=input('RF Data, FFT of RCVR Filt,& QASk Constellation?[1=Yes,0=No]: '); K=6; % N=(2^M)-1; Check bits = N-K % start_time=clock;

Page 69: Qam64

69

%QAM bits/symbol Specification bits_per_symbol=6; % note: 2^6=64 QAM Data_length=[10 10 10 10 10 10 10]*N*bits_per_symbol*K; % for i=1:length(Data_length) % the message source bits = randint(Data_length(i),1,2); % Reed Solomon Encoding % if use_reed_solomon==1 coded_data = encode(bits,N,K,'rs'); % encode data else coded_data = bits; % don't encode data end % Generate symbols (0 to 63) from binary bits (0,1,1,0,1,0...) symbols=bi2de(vec2mat(coded_data,bits_per_symbol)); % Digital to analog signal mapping mapped_data = modmap(symbols,Fd,Fs,'qask',64); %%%%%%%%%% Transmit Raised Cosine shaping %%%%%%%%%% filtered_data=rcosflt(mapped_data,Fd,Fs/50,'fir/sqrt',0.13); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% QAM MODULATION & %%%%%%%%%%%% %%%%%%% Analog Upconversion to communication channel transmit_rf = amod(filtered_data,Fc,Fs,'qam'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% CHANNEL NOISE %%%%%%%%%%%%%%% %%%%%%%%%% Channel Impairment Section %%%%%%%%%%%%% % Add AWGN noise and compute Eb/No %fprintf('adding AWGN... ') noise_var=[2,1.5,1,0.3,0.2,0.15,0.01]; fprintf('adding AWGN with variance: %2.1d\n',noise_var(i)) %Additive noise variance noise_gaussian=randn(length(transmit_rf),1) * noise_var(i); noisy_rf_signal=transmit_rf + noise_gaussian; % Calculate signal and noise energy signal_energy=transmit_rf' * transmit_rf / length(transmit_rf); noise_energy=noise_gaussian' * noise_gaussian / length(noise_gaussian); Eb_No(i)= signal_energy/noise_energy;

Page 70: Qam64

70

%%%%%%%%%%% QAM 64 RECEIVER %%%%%%%%%%%%%%%% % analog demodulation of carrier and qam signal analog_rx=ademod(noisy_rf_signal,Fc,Fs,'qam'); %%%%% Received Matched filter - Raised Cosine %%%%%%%%%%%% % with excess bandwidth = 0.13 rx_ana_data=rcosflt(analog_rx,Fd,Fs/50,'fir/sqrt',0.13); %%%%%% Decimate results by taking every 1/Fs sample %%%%%%%%% % decimate to subsample the Matlab rcosflt output exp_ana_data_i = decimate(rx_ana_data(:,1), 4); exp_ana_data_q = decimate(rx_ana_data(:,2), 4); %%%%%%%%%%%%%%%%% SLICER %%%%%%%%%%%%%%%%% slicer=demodmap([exp_ana_data_i exp_ana_data_q],Fd,Fs,'qask',64); %%%%%%%%% decode symbols into bits %%%%%%%%%%%%% demod_bit=de2bi(slicer,bits_per_symbol)'; demod_bit=demod_bit(:); % % Reed Solomon Decoding % if use_reed_solomon==1 decoded_bits = decode(demod_bit,N,K,'rs'); else decoded_bits = demod_bit; end % %%%%%%%%%%%%%% BER Tests %%%%%%%%%%%%%%%%%% %err = symerr(bits,demod_bit); [numb(i),BER(i)]=biterr(decoded_bits(:),bits); ber_array(i,1)=BER(i) end %%%%%%%%%%%%%%%% Extra Graphs %%%%%%%%%%%%%%%% if extra_graphs==1 plot(mapped_data);title('Mapped Data');figure; plot(filtered_data);title('XMIT Filtered Data');figure; plot(transmit_rf);title('RF data');figure; plot(abs(fft(rx_ana_data)));title('FFT of RCVR filter output');figure; qaskenco(slicer,64); % plot received symbols on constellation end %%%%%%%%%%%%%%% BER PLOTS %%%%%%%%%%%%%%%%%% % Curve fitting using Spline function x_axis=logspace(log10(min(Eb_No)),log10(max(Eb_No)),20); Eb_No(find(BER==0))=[]; BER(find(BER==0))=[]; y_data=spline(log10(Eb_No),log10(BER),log10(x_axis)); % %plot results figure loglog(x_axis,10.^y_data,'b-',Eb_No,BER,'bo')

Page 71: Qam64

71

xlabel('Eb/No') ylabel('BER') % next line added to fix the xy axis scales axis([1 1E4 1E-12 1]); if use_reed_solomon==1 title([num2str(2^bits_per_symbol),'-ary QASK with [',num2str(N),',',num2str(K),'] Reed Solomon simulation result']) grid; else title([num2str(2^bits_per_symbol),'-ary QASK Simulation result']) grid; end zoom fprintf('Select area to zoom in and right click to zoom out\n') stop_time=clock; elapsed_time=stop_time - start_time %%%%%%%%%%%%%%%%%% END %%%%%%%%%%%%%%%%%%

Page 72: Qam64

72

Figure 7.1 QAM -Matlab System

decoded_bits

DATA SOURCE

ENCODE Reed

Solomon VEC2MAT BI2DE MODMAP

RCOSFLT AMOD

NOISE

ADEMOD RCOSFLT

DECIMATE

DEMODMAP DE2BI

bits coded_data symbols

mapped_data

mapped_data

filtered_data transmit_rf

noise_gaussian

analog_rx

rx_ana_data

rx_ana_data

exp_ana_datai

exp_ana_data_q

slicer demod_bi

t

noisy_rf_signal

DECIMATE

DECODE Reed

Solomon

Page 73: Qam64

73

Section 7.3 Discussion of Matlab Code The user launches Matlab and then types the name of the program “qam64”. The program then prompts the user to activate the Reed Solomon error correction block or bypass correction. If the user selects Reed Solomon error correction then he is asked to input the code word length N. There is a rule for selecting N and it is 12 −= MN where M = 3, 4, 5, 6 etc. M cannot be less than 3. Here is a list of valid =N 7, 15, 31, 63 based on the four values of M listed above. If Reed Solomon is not selected then N defaults to 7 so that we get a reasonable Data_length. Then the program prompts for extra graphs and if one chooses not to display them, a graph of BER vs EB/No is displayed at the end anyway. Random data is then generated with a function called RANDINT, which has the format: RANDINT Random integer matrix generator. OUT = RANDINT(N,M,RANGE) generates an N-by-M matrix of random binary numbers in the RANGE. The appearance of "0" and "1" have even probability. When RANGE is a scalar positive integer, the output integer range is [0, RANGE-1]. In my program I have: bits = randint(Data_length(i),1,2); Since Data_length is defined earlier on as Data_length=[10 10 10 10 10 10 10]*N*bits_per_symbol*K; It takes on the value depending on N, bits_per_symbol, and K. The value of bits_per_symbol is 6 in accordance with 64-QAM. The value of K is 6. So Data_length comes out to be 360N. However coding changes that as discussed below. The program runs through its entire course 7 times (Data_length). So if we wanted to increase the number of loops we simply increase the length of Data_length by adding another 10. The program is designed so that for each set of “runs” out of the 7 runs it generates and pushes as many bits as dictated by the following algorithm:

Data_length.mcd RajatSewalN 31 bits_per_symbol 6 K 6

data_length 10 N. K. bits_per_symbol. data_length 11160=

uncoded_data_length data_length uncoded_data_length 11160=

coded_data_length uncoded_data_lengthbits_per_symbol

N K( ). uncoded_data_length

coded_data_length 57660=

Page 74: Qam64

74

Using the above equations the coded_data_length with several values of N are tabulated in Table 7.1.

N (uncoded) Data_length=360*N

Coded Data Length

7 2520 2940 15 5400 13500 31 11160 57660 63 22680 238140

Table 7.1 Data Lengths So “bits” contains Data_length number of binary data (0110001010101010…). This is then Reed Solomon encoded if the choice was made or left un-encoded. The format of the function “encode” is: ENCODE Error-control code encoding computation. CODE = ENCODE(MSG, N, K, METHOD) Encodes the binary message specified in MSG using the coding technique in METHOD. The code word length is N and the message length is K. The format of MSG can be either a vector or K column matrix. A code has code word length 2^M -1, where M is an integer no less than 3. The message length is 2^M - M - 1. Hamming code is a single error-correction code. The METHOD can be 'hamming' Hamming code, 'linear' Linear block code, 'cyclic' Cyclic code, 'bch' Binary BCH code, 'rs' Reed-Solomon code, or 'convol' Convolution code. When MSG is a K-column matrix, the output CODE is an N-column matrix. In my program the usage is: coded_data = encode(bits,N,K,'rs'); After coding the data is called “coded_data” and is still binary data. This data is then sent to a block called VEC2MAT described next: VEC2MAT Vector to matrix conversion. MAT = VEC2MAT(VEC, M) converts VEC to be an M column matrix with row priority arrangement. If it needs to add an element, 0 will be added to the end of the input vector to form the required matrix. In my program the usage is: symbols=bi2de(vec2mat(coded_data,bits_per_symbol)); Where bits_per_symbol=6 so that the output of vec2mat is a binary data of 6 column matrix partitioned symbol by symbol. This step is followed by a conversion from binary to decimal format:

Page 75: Qam64

75

symbols=bi2de(vec2mat(coded_data,bits_per_symbol)); So now symbols is a decimal grouping of numbers from 0 to 63. Here is the format of the bi2de command: BI2DE Converts binary to decimal format. D = BI2DE(B) converts a binary representation vector B to a decimal representation D. When B is a matrix, the output D is a column vector with each element being the transfer of a row of B. The first element in B represents the lowest binary bit. For example bi2de([1 0]) results in 1; bi2de([0 1]) results in 2. The next step is to take the “symbols” vector and run it into MODMAP which maps the decimal formatted numbers into their equivalent QAM symbol constellation coordinates ( ± 1, ± 3, ± 5, and ± 7). The modmap function is described next. MODMAP Maps a digital signal to an analog signal for modulation. Y = MODMAP(X, Fd, Fs, METHOD,M) maps a sample frequency Fd (Hz) signal vector X into a sample frequency Fs (Hz) in-phase and quadrature components in Y. Y is a two column matrix. The first column is an in-phase component and second column is a quadrature component. When METHOD = 'ask', Y is a column vector instead of a matrix. This function does mapping only. M defines the M-ary number of a square constellation when METHOD is qask. METHOD is a string, which can be one of the following: 'ask' M-ary Amplitude shift keying modulation. 'psk' M-ary Phase shift keying modulation. 'qask' M-ary Quadrature amplitude shift-keying Modulation. 'fsk' M-ary Frequency shift keying modulation. 'msk' Minimum shift keying modulation. 'sample' Up sample the input signal. In my program the usage is: mapped_data = modmap(symbols,Fd,Fs,'qask',64) The next block is the filter block to pulse-shape the symbols that are to be transmitted. This is the RCOSFLT ie raised cosine filter with excess bandwidth

13.0=α . The format is shown next: RCOSFLT Filters the input signal using raised cosine filter. Y = RCOSFLT(X, Fd, Fs, TYPE_FLAG, R) filters the input signal X using raised cosine (R-C) FIR filter. The sample frequency for X is Fd (Hz). The sample frequency for Y is Fs. Fs must be larger than Fd. Fs/Fd must be an integer. The rolloff factor R has a default of 0.5 but must a real number in the range [0, 1]. TYPE_FLAG is a string, which can be one of the following: 'fir' Use FIR R-C filter (default). 'iir' Use IIR R-C filter. 'normal' Use normal R-C filter (default), in contrast to 'qart'.

Page 76: Qam64

76

'sqrt' Use square root raised cosine filter. 'wdelay' Keep the full length of the filtered result, in the case the row number (or vector length) of Y is (length_of_X + DELAY)*Fs/Fd. The value DELAY is a default of 3. The function default has had the delay cut off from the output. 'Fs' X is input with sample frequency Fs. In this case, only elements X(i*Fs/Fd+1,:) are used in the calculation. All others are discarded. In my program the usage is: filtered_data=rcosflt(mapped_data,Fd,Fs/50,'fir/sqrt',0.13) The next section is the last part of the transmitter and is AMOD (analog modulator). AMOD Analog signal modulation. Y = AMOD(X, Fc, Fs, METHOD) modulates the message signal X with carrier frequency Fc (in Hz) and sample frequency Fs (Hz) using the modulation scheme in string variable METHOD. The time interval between two successive points in X is 1/Fs. When Fs is a two-element vector, the second element specifies the initial phase in the carrier signal modulation. The unit of the initial phase is rad. For best results, Fs > Fc is required (by Nyquist theory). METHOD is a string, which can be one of the following: 'amdsb-tc' Amplitude modulation, double sideband with transmission carrier 'amdsb-sc' Amplitude modulation, double sideband suppressed carrier 'amssb' Amplitude modulation, single sideband suppressed carrier 'qam' Quadrature amplitude modulation 'fm' Frequency modulation 'pm' Phase modulation In my program the usage is: transmit_rf = amod(filtered_data,Fc,Fs,'qam') Now the signal goes through an ideal channel with AWGN (additive white gaussian noise) added at the input of the receiver. The code that generates the random noise is discussed next. First we define a noise variance matrix called noise_var noise_var=[2,1.5,1,0.3,0.2,0.15,0.01] Here the length of the noise_var matrix is 7 elements long to match the way the program is designed: it loops through the entire program 7 times picking the first noise variance of 2 and then moving on to smaller and smaller noise till it gets to 0.01. The function that is used in generating noise is RANDN. RANDN Normally distributed random numbers.

Page 77: Qam64

77

RANDN(M,N) is an M-by-N matrix with random entries. RANDN produces pseudo-random numbers. The sequence of numbers generated is determined by the state of the generator. In my program the usage is: noise_gaussian=randn(length(transmit_rf),1) * noise_var(i) The noise is then added to the tranmitted rf signal: noisy_rf_signal = transmit_rf + noise_gaussian Now we enter the receiver with “noisy_rf_signal” and process it with ADEMOD (analog demodualtor) which is the opposite function of AMOD. The output of the ADEMOD is analog_rx, which is the demodulated analog baseband QAM signal. This signal needs to be filtered to remove any carrier components and to reduce intersymbol interference (ISI). Another raised cosine filter (Receive Filter) is used here in the filter block “rcosflt”. The output of the RCVR filter is rx_ana_data and since the XMIT filtering operation had interpolated data, we need to decimate this data at the same rate using the DECIMATE blocks. We decimate the in-phase and quadrature portions separately. The command is described next. DECIMATE Resample data at a lower rate after lowpass filtering. Y = DECIMATE(X,R) resamples the sequence in vector X at 1/R times the original sample rate. The resulting resampled vector Y is R times shorter, LENGTH(Y) = LENGTH(X)/R. DECIMATE filters the data with an eighth order Chebyshev type I lowpass filter with cutoff frequency .8*(Fs/2)/R, before resampling. In my program the usage is: exp_ana_data_i = decimate(rx_ana_data(:,1), 4) exp_ana_data_q = decimate(rx_ana_data(:,2), 4) The next step is to do a demapping of the exp_ana_data_i and exp_ana_data_q signals so that the symbol value is extracted. This is done with inverse function of modmap ie. DEMODMAP described next. DEMODMAP Demaps a modulation mapped signal to the closest digit number. The sampling frequency for Y is Fs (Hz) and the digital sampling frequency is Fd (Hz). slicer = demodmap([exp_ana_data_i exp_ana_data_q],Fd,Fs,’qask’,64) Z = DEMODMAP(Y, Fd, Fs, METHOD,M) is a reverse mapping of function MODMAP. This function demaps a sampling frequency Fs (Hz) analog signal into a sampling frequency Fd (Hz) digital signal Z. Y is a two column matrix

Page 78: Qam64

78

where the first column is an in-phase component and second column is a quadrature component. When METHOD = 'ask', 'fsk', or 'msk', Y is a one column vector instead of a matrix. When Fd is a two element vector, the second element is the offset value for the decision point. The offset timing in the plot is offset/Fs. The default offset is 0. The received digital signal is sampled at time i/Fd + offset/Fs. The sample value holds until time (i+1)/Fd +offset/Fs when the next sample point is taken. The demapping process finds the distance from the sample value to all of the possible digital symbols. The digital symbols with the shortest distance to the current sampling point is the demodulated output. In my program the usage is: slicer = demodmap([exp_ana_data_i exp_ana_data_q],Fd,Fs,’qask’,64) The output “slicer” is then sent to a decimal to binary converter so that the binary bits can be recovered. This function is described next. DE2BI Converts positive decimal numbers to binary numbers. B = DE2BI(D, N) specifies the column number for matrix B. N is a positive scalar number. The first element in B represents the lowest binary bit. For example DE2BI(1, 2) results in [1 0]; DE2BI(2) results in [0 1]. In my program the usage is: demod_bit=de2bi(slicer,bits_per_symbol) The next step is to take all the columns of demod_bit and convert them into one single column so we have a string of bits in one column. This is done with the command demod_bit=demod_bit(:) The next step is to decode with Reed Solomon algorithm if encoded. This is done in an if statement: if use_reed_solomon==1 decoded_bits = decode(demod_bit,N,K,'rs'); else decoded_bits = demod_bit; end DECODE Error-control code decoding computation. MSG = DECODE(CODE, N, K,METHOD) decodes binary codeword in CODE using decode METHOD. The code word length is N and the message length is K. The format of CODE can be either a vector or an N column matrix. METHOD ENCODE SCHEME

Page 79: Qam64

79

'hamming' Hamming code 'linear' Linear block code 'cyclic' Cyclic code 'bch' BCH code 'rs' Reed-Solomon code 'convol' Convolution code In using methods other than the "rs" method, L equals N. In using the "rs" method, L = M, where N = 2^M - 1. M is an integer >= 3. CODE can also be a non-negative integer in the range of [0, 2^L-1]. In this case, you have to add '/decimal' in the method specification. For example, 'bch' is equivalent to 'bch/binary'. 'bch/decimal' means the data in MSG is binary. Except for the 'rs' method, MSG can only be a vector when using the decimal method. The output MSG contains the decoded message. The format of MSG matches the format of CODE. When CODE is a N-column matrix, the output MSG is a K-column matrix. When the format of the input CODE is not the same as the output of function ENCODE, this function stops processing. The next step is to take decoded_bits and perform BER (bit error tests) and graph the results. The BER tests are done with a function called biterr BITERR Computes bit error. [NUMBER, RATIO] = BITERR(X, Y) compares the elements in the input matrices X and Y. The number of the bit differences is outputted in NUMBER. The ratio of NUMBER to the total bit number contained in Y is output in RATIO. All elements in X and Y should be non-negative integers. The total bit number in Y is estimated by column_y * row_y * K, where K is the bit number for each element in Y. K is the smallest integer satisfying MAX < 2^K, where MAX is the maximum number in both X and Y. When X or Y is a matrix and the other is a vector, this function convert the vectors to a matrix with the column number the same as the matrix before the comparison. In my program the usage is: [numb(i),BER(i)]=biterr(decoded_bits(:),bits); Signal and noise energy is calculated using signal_energy=transmit_rf' * transmit_rf / length(transmit_rf) noise_energy=noise_gaussian' * noise_gaussian / length(noise_gaussian) and SNR is calculated using: Eb_No(i)= signal_energy/noise_energy;

Page 80: Qam64

80

Section 7.4 Discussion of Simulation Results The data beside the graph is the bit error array produced for 7 different noise variances.

Data_length=[10 10 10 10 10 10 10]*N*bits_per_symbol*K; noise_var=[2,1.5,1,0.3,0.2,0.15,0.01]; The program runs through 7 times, each time picking a new noise variance from the array shown above. The bit error is logged into an array called ber_array and each point is plotted using a sophisticated algorithm called “spline” for curve fitting. The circles on the graph are the data points in the ber_array. Values that are zero (no single error) are not shown because this is a log scale and it does not go below 1x10-12. CASE 1 N=7 (default), since No error correction selected, number of bits = 2520. Bits pushed = 2520 x 7 = 17,640 ber_array = 0.1246 0.0798 0.0444 0.0004 0 0 0

Figure 7.2 No Error Correction

100 101 102 103 10410-12

10-10

10-8

10-6

10-4

10-2

100

Eb/No

BE

R

64-ary QASK Simulation result

Page 81: Qam64

81

CASE 2 N=7 , Reed Solomon error correction selected, number of bits (coded) = 2940 Correction bits = N-K=7-6=1. Bits pushed = 2940 x 7 = 20,580 ber_array = 0.1187 0.0857 0.0353 0 0 0 0

Figure 7.3 Error Correction N=7

100 101 102 103 10410-12

10-10

10-8

10-6

10-4

10-2

100

Eb/No

BE

R

64-ary QASK with [7,6] Reed Solomon simulation result

Page 82: Qam64

82

CASE 3 N=15 , Reed Solomon error correction selected, number of bits (coded) = 13,500. Bits pushed = 13,500 x 7 = 94,500 Correction bits = N-K=15-6=9 ber_array = 0.1385 0.0617 0.0104 0 0 0 0

Figure 7.4 Error Correction N=15

100 101 102 103 10410-12

10-10

10-8

10-6

10-4

10-2

100

Eb/No

BE

R

64-ary QASK with [15,6] Reed Solomon simulation result

Page 83: Qam64

83

CASE 4 N=31 , Reed Solomon error correction selected, number of bits (coded) = 57,660. Bits pushed = 57,660 x 7 = 403,620 Correction bits = N-K=31-6=25 ber_array = 0.1228 0.0461 0.0002 0 0 0 0

Figure 7.5 Error Correction N=31

100 101 102 103 10410-12

10-10

10-8

10-6

10-4

10-2

100

Eb/No

BE

R64-ary QASK with [31,6] Reed Solomon simulation result

Page 84: Qam64

84

CASE 5 N=7 , No error correction selected, number of bits pushed = 2520 x 7 = 17,640 Additional graphs selected. In this mode the following graphs are displayed:

• Mapped Data Figure 7.6 • XMIT Filtered Data Figure 7.7 • RF Data Figure 7.8 • FFT of RCVR Filter Figure 7.9 • QASK Constellation Figure 7.10

Page 85: Qam64

85

Figure 7.6 Mapped Data

Page 86: Qam64

86

Figure 7.7 XMIT Filtered Data

Page 87: Qam64

87

Figure 7.8 RF Data

Page 88: Qam64

88

Figure 7.9 FFT of RCVR Filter Output

Page 89: Qam64

89

Figure 7.10 QASK Constellation

Page 90: Qam64

90

Section 7.5 Summary of Simulation Results The simulation results are summarized in Table 7.2. The error correction algorithm used in cases 2-4 is the Reed Solomon with ),( kn = )6,(N , where k is the message length and N is the code word length. The effect of increasing the code word length on the bit error rate is explored. The value of BER is a ratio not a percentage (so BER = 0.0444 is 4.44%). The values of BER = 0 mean no bits were in error and is not a result of rounding off in the calculations.

CASE 1 No Error

Correction

CASE 2 Reed

Solomon N=7

CASE 3 Reed

Solomon N=15

CASE 4 Reed

Solomon N=31

1 0.1246 0.1187 0.1385 0.1228 2 0.0798 0.0857 0.0617 0.0461 3 0.0444 0.0353 0.0104 0.0002 4 0.0004 0 0 0 5 0 0 0 0 6 0 0 0 0 7 0 0 0 0

Table 7.2 BER Summary

As can be seen going across any row, there is improvement in the BER performance as the value of N increases because more and more redundancy is added as correction bits (N-K) increases. Increasing N does come at a cost of reduced source rate. The simulation times can be large for N=31 and can range somewhere around 8-12hrs depending on the machine. How N is picked is very important and the rule is 12 −= MN where 6,5,4,3=M resulting in =N 7, 15, 31, and 63 respectively. I actually ran =N 63 and the computer (233Mhz Pentium, 64 Mbyte of SD Ram) ran out of resources after 32 hrs. The total number of bits I was trying to push through the modem was 1,666,980 bits. A factor in simulation speed is whether one is doing a passband simulation or a baseband simulation of a passband system. The later runs much faster because it does not involve a carrier (less computation on the part of the computer). However, the baseband simulation involves using the complex envelope of the Qam signals and the math can be complex. The filters also have to be complex. Matlab allows one to do the baseband simulation in Simulink and although I have familiarity with it I did not use a Simulink model in this project. My model does not have an equalizer because the channel I was using is an ideal channel corrupted by AWGN and this cannot be equalized. The carrier recovery in the ADEMOD function is direct. The model picks up Fc directly from the transmitter. Carrier Phase offsets can be modeled by the ADEMOD function call by specifying the phase offset but I let it run with zero phase offset.

Page 91: Qam64

91

Chapter 8 Set-top Box ASIC Design For a set-top terminal, most of the hardware design work is implemented in ASICs. An ASIC's functionality is usually defined in the system engineering, feature selection, and customer requirements phase. After the functions have been defined and partitioned, design teams can be assembled to complete the task of designing and fabricating the product ASICs. The kind of tools needed by the ASIC engineers are Synopsys design compiler, Chronologic Verilog simulators, Motive static timing analyzers, and Cadence Verilog simulators. Sun Sparc workstations are used as simulation and synthesis servers. The first stage of the ASIC implementation is writing a high-level description document. The document contains high-level block diagrams, and architecture descriptions for the modules contained in the ASIC. The document is written by the ASIC design team and is supervised by an ASIC lead designer or project leader. This high-level description document is used by the design team as a guide through the ASIC development phase. After implementation of the high-level description is approved, the ASIC design team codes the design in Verilog. The design is simulated and each code block is verified at the module level. Each designer is responsible for the functionality of his/her assigned sections. Individual integration efforts can begin at a point where major modules can be connected. Typically, integration occurs in phases, but each stage of integration only proceeds after the modules to be integrated have been thoroughly verified. While preliminary integration occurs, synthesis of lower-level modules may be completed in parallel. Synthesis scripts can be developed in an infant state, then later optimized and integrated when synthesizing at the full chip level. After full ASIC-level integration has been completed, chip synthesis may begin. This process converts the Verilog RTL (register transfer level) behavioral code to the actual chip netlist for the targeted ASIC library. In parallel to chip synthesis, regression tests that verify the functionality are developed. The regression tests verify the functionality of the behavioral code, and later can be used to verify the gate-level implementation. After the ASIC has been synthesized, regression tests should be run to verify the ASIC functionality by simulating the design at a unit-delay level. Once the design functions at the unit-delay level, the design can be back annotated with estimated pre-layout delays. Functionality is then rechecked with the regression tests. The design should also be checked with a static timing analyzer tool (Design Compiler by Synopsys) to verify that worst-case paths (which are hard to simulate) meet timing. Once the design meets timing and functionality with pre-layout estimated timing, the design is ready for floor planning followed by cell placement and routing. The floor planning is sometimes done in parallel with the estimated timing verification phase of the design. This occurs because the design is somewhat stable and usually the major blocks of the design do not change architecturally. The first stage of the cell placement and routing can take up to 2 weeks for designs greater than 100,000 gates. The average turn time for designs ranging

Page 92: Qam64

92

from 50,000 gates to 150,000 gates can be anywhere from 1 to 2 weeks. After all nets are routed and all cells placed, the layout engineer delivers a wire delay file (based on actual capacitive loading) back to the ASIC designer so that actual timing can be back-annotated into the design. Typically, loading constraints on buffers and some timing has been violated with the first cut of the layout. The designer is required to perform a regression test and retime static paths in the design so that all violations due to the actual wire loading can be corrected. When all violations are detected and repaired, the ASIC designer returns the updated netlist to the layout engineer so that the new and changed cells can be updated in the layout database. One more wire delay file is delivered from the layout engineer to the ASIC designer for final verification. Once the ASIC designer completes the final verification, they will run the final LVS (layout vs. schematic) and DRC (design rule checker) tools before handing the layout database to the mask shop.

Return to Table of Contents TOC