Vous êtes sur la page 1sur 21

Agilent EEsof EDA

Quadrature Phase-Shift Keying (QPSK) Modulation and Error Correcting Codes

This document is owned by Agilent Technologies, but is no longer kept current and may contain obsolete or inaccurate references. We regret any inconvenience this may cause. For the latest information on Agilents line of EEsof electronic design automation (EDA) products and services, please go to:

www.agilent.com/nd/eesof

QPSK Modulation and Error Correcting Codes


By: Michael DeLucca

Temple University For : EE 551 Prof James A Brennan May 7, 2003

Introduction:
The purpose of this project is to demonstrate the performance of a Quadrature phase-shift keying (QPSK) modulated system in the presence of a noisy channel. Various error-correcting codes will be incorporated into the QPSK modulated system to add coding gain for enhancing the system performance. QPSK is one of the most popular digital modulation techniques used for Satellite communication and sending data over cable networks. Its popularity comes from both its easy implementation and resilience to noise. The implementation of QPSK involves changing the phase of the transmitted waveform. Each finite phase change representing unique digital data. A phasemodulated waveform can be generated by using the digital data to change the phase of a signal while its frequency and amplitude stay constant. A QPSK modulated carrier undergoes four distinct changes in phase that are represented as symbols and can take on the values of /4, 3/4, 5/4, and 7/4. Each symbol represents two binary bits of data. The constellation diagram of a QPSK modulated carrier is shown if figure 1.

Figure 1. Constellation diagram of a QPSK modulated carrier

The block diagram of a typical QPSK transmitter is shown in figure 2. The unipolar input binary message stream m(t), of data rate Rb, is first converted into a bipolar non-return-to-zero (NRZ) sequence. The bit stream m(t) is then split into two bit streams mI(t) and mQ(t) (in-phase and quadrature streams), each having a bit rate of Rs = Rb/2. The two binary sequences are then separately

modulated by two carriers, which are in quadrature. The two modulated signals, each of which can be considered to be a BPSK signal, are summed to produce a QPSK signal. The filter at the output of the modulator confines the power spectrum of the QPSK signal within the allocated band. This prevents spillover of signal energy into adjacent channels and also removes out-of-band spurious signals that are generated during the modulation process.

Figure 2. Block diagram of a QPSK transmitter The PSD of a QPSK signal has a null-to-null bandwidth that is equal to the bit rate Rb, which is half that of a BPSK signal. Therefore, QPSK has twice the bandwidth efficiency of BPSK, since 2 bits are transmitted in a single modulation symbol instead of 1 bit for BPSK. Further, the bit error probability of QPSK is identical to BPSK, while twice as much data can be sent in the same bandwidth. Thus, when compared to BPSK, QPSK provides twice the spectral efficiency with exactly the same energy efficiency. The block diagram of a coherent QPSK receiver is shown in figure 3. The frontend bandpass filter is used to remove any out-of-band noise and adjacent channel interference. The received signal that was filtered is then split into two parts, and each part is coherently demodulated using the in-phase and quadrature carriers. The coherent carriers used for demodulation are recovered from the received signal using carrier recovery circuitry. The outputs of the demodulators are passed through decision-making circuits that generate the inphase and quadrature binary streams. These two streams are then multiplexed to reproduce the original message binary sequence.

Figure 3. Block diagram of a coherent QPSK receiver The system performance of a digital communication network can be enhanced by incorporating a coding technique, within the system, known as Gray coding. The gray encoder is used to map the data in such a way as to help reduce bit errors. A QPSK system takes the input data bits, two at a time, and creates a symbol that represents on of four phase states. The gray encoder therefore is used to map every two input data bits to one of four unique symbol values so that the bit pairs that are used to generate the symbols are only one bit different from each adjacent symbol. This technique proves to help with error performance because if a symbol is received in error, it will contain only one error bit if it was received in error to an adjacent symbol. This can be more easily observed by viewing the QPSK constellation diagram that is shown in figure 1. This QPSK constellation diagram shows symbols, each represented by two data bits that were first gray encoded. One can see that each adjacent symbol is represented by two data bits that vary by one bit. The performance of digital communication networks can further be enhances by the use of error correcting codes. Convolutional codes are one type of error correcting codes. These encoders are created by multiple FIR filter delay line with coefficients either 1 or 0. The length of the delay line or number of taps is known as the constraint length k. Typically it does not exceed 7 or 9 as the decoder complexity increases exponentially. This structure creates rate 1/n codes where n is an integer. For example if 3 sets of coefficients are taken, the three outputs are then transmitted sequentially creating 3 output bits for every one input bit resulting in a rate 1/3 encoder. To create other rates such as 2/3 or 3/4, the output is punctured, i.e. certain bits are simply deleted. Convolutional encoding is usually decoded by an algorithm known as Viterbi decoding.

Convolutional codes are based on memory. The added redundant bits are generated by Modulo 2 convolutions. The n input bits are stored and shifted to generate k output code bits. Block codes are other types of coding schemes that prove to be very effective at enhancing the error rate performance of a communication system. While Convolutional codes are very effective at correcting random errors, block codes are better at correcting burst errors. One type of block code that is used very often today is known as a Reed Solomon (RS) code. RS codes are a form of BCH cyclic codes. It is a nonbinary code that is capable of correcting burst errors and is often concatenated with convolutional codes. RS codes are often used to correct byte size generated symbols. The coded symbol block length of these codes is n = 2m-1. The number of parity symbols that must be used to correct t errors is n k = 2t, where k is the number of information symbols.

SystemView Modeling: SystemView was used to simulate the performance of a typical QPSK system. The following SystemView model, shown in figure 4, illustrates a coherently detected QPSK modulated system with gray coding. This model was created to demonstrate the error performance of a QPSK modulated system while in the presence of noise.

Figure 4. SystemView model of a coherently detected QPSK modulated system with gray
coding.

The input data source to the QPSK modulated system is located at token 0. It is a pseudo random sequence with a data rate of 80 Hz. The next token indicated as token 1, is a sampler that is used to sample the source data at the data rate of 80 Hz. The sampled data is then fed into a gray encoder that is labeled as token 18. The gray encoded data is next delivered to token 2, the bit-to-symbol token. This token is used to generate one of four symbols with every two input bits. The four output symbols from token 2 are represented by one of four voltages ranging

from zero to four volts. These voltage-represented symbols are then fed into a gain token that is label as token 3. The gain of this token is set to 2/4 volts. This value is chosen because a QPSK modulated signal is represented by four different phase states within 2 radians, therefore the four QPSK symbols need to be normalized to 2 volts. Once the symbol-represented data is normalized to 2 volts, it is delivered to the Sine token number 4. Within this token, the data is split apart by taking every other data symbol to form an in-phase (I) sequence and a quadrature (Q) sequence. The two I and Q sequences are then padded to 8 times the symbol rate by the hold tokens numbered 5 and 6. This step is done to bring the symbol rate up to the system rate. The transmitted QPSK constellation diagram is generated by capturing the output of these two tokens and performing a scatter plot of the I sequence verses the Q sequence. The constellation diagram of the QPSK modulated signal is shown in figure 5.

Figure 5. Constellation diagram of the QPSK modulated signal

The sampled I and Q sequences are passed through root raised cosine filters, tokens 20 and 21, which were designed with 129 taps and have a roll-off factor of 35%. These filters are incorporated in the system to contain the signal energy to within the channel passband, thus reducing the sidelobe energy. After being filtered by the root raised cosine filters, the I and Q sequences are then combined in the Quad Modulator token, which is labeled as token 7. Within this token, the I and Q sequences are summed together to produce the QPSK signal. The frequency parameter of this token is set to 100 Hz, therefore, the output of the Quad modulator token is a QPSK modulated carrier that is centered at 100 Hz and output across a channel. The filtered PSD of the In-phase sequence and the PSD of the modulated carrier are both shown in figure 6. As one can see from the PSD of the QPSK modulated carrier, the 3 db bandwidth is approximately 40 Hz. This was expected because the bandwidth of a QPSK signal is half that of the input data rate. Therefore, a QPSK modulated carrier has twice the bandwidth efficiency as transmitting raw data.

Figure 6. (a) PSD of the In-phase sequence after being passed through the root raised cosine
filter. (b) PSD of the QPSK Modulated Carrier

Once the QPSK modulated carrier is generated, it is sent across a channel where it is introduced by additive white Guassian noise (AWGN), which is indicated by token 16. The AWGN power is varied by the gain token number 17 and is added to the QPSK modulated carrier by the adder token that is labeled as token 8. The AWGN power needs to be calibrated properly to ensure proper BER performance measurements. This will be explained later when performing the BER measurements of the system. At the receiver end of the QPSK system, the signal is first received by token 9, which is an IQ Mixer. The frequency parameter of this token is set to 100 Hz to downconvert the 100 Hz QPSK modulated carrier back to baseband. This token also extracts the In-phase and Quadrature components of the signal and outputs them as separate sequences. After extracting the I and Q sequences from the QPSK signal, they are individually passed through separate root raised cosine filters that are indicated by tokens 22 and 23. These two filters are designed exactly the same as those in the transmitter. They are needed to remove out-of-band noise and adjacent channel interference. The filtered I and Q bit streams are then fed into token 10, which is the PSK demodulator. Within this token, the decision making process takes place to determine the received values of the I and Q bit streams and they are multiplexed to reproduce the original symbol represented sequence. The symbol-represented sequence is then delivered to a symbol-to-bit converter that is indicated by token 11. This token is responsible for converting the received symbol sequence back to binary bits by generating two bits for every one symbol received. The gray decoder is the next token that is needed in the receiver end and is identified by token 19. This token receives the binary bit stream and de-maps the coding scheme that was performed by the gray encoder. The output of the gray decoder should be the original PN data sequence that was the input to the system granted that no errors were obtained. One of the most important parameters that indicate the figure of merit for a digital communications network is known as a Bit Error Rate (BER). This measurement is a good indication of a digital communication networks performance while in the presence of noise. The QPSK modulation system of figure 4 was set up to perform a BER measurement by feeding the output stream of the gray decoder into the BER token that is labels by number 12. The sampled input bit stream (token 1) also needs to be fed into the BER token through a delay token, which is labeled as token 14. The input bit stream and the output bit stream need to be cross correlated to obtain the system delay samples. The cross correlation of the input bit stream and the output bit stream is shown in figure 7.

Figure 7. Cross correlation of the input bit stream and the output bit stream for the QPSK
modulated system with gray coding.

As indicated by the input and output cross correlation plot, the system is correlated at 38 samples which indicates that a delay of 38 samples is needed in the delay token and the BER token. A stop sink and a final value sink are also need to be connected to the BER token. The stop sink is indicated by token 15 and the final value token is labeled as token 13. The parameters for these tokens along with a detailed description of a BER measurement setup can be obtained from SystemViews application note AN107A. Before performing the BER measurement, the AWGN token that is labeled as token 16, must first be calibrated such that the noise power is equal to the signal power. The signal to noise ratio, which is generally expressed in energy per bit (Eb) divided by the noise power density No (W/Hz) is determined by the following equation. Eb/No = A2T / No = A2/NoR

The parameter A is the transmitted signal amplitude and R = 1/T is the data rate of the source. To properly calibrate the noise source, No needs to be set such that Eb/No = 1 (0 dB) or, No = A2 / R The A parameter is normally set to 1 if the signal amplitude is a constant envelope. However, if the transmitted signal is not of a constant envelope, as in the case of the QPSK modulated system, the time domain analysis of the transmitted signal needs to be obtained and its standard deviation needs to be recorded and substituted for the A parameter. Once the noise is calculated, then its value needs to be entered into the noise source token using the W/Hz parameter window. After the AWGN is calibrated, the Eb/No of the system can be controlled by inserting a gain token (token 17) after the noise source. The gain of the noise can then be controlled to obtain a BER curve with varying Eb/No values. Once the noise power is calibrated properly and globally linked to vary in gain while running successive loops, a BER curve can be generated to simulate its performance. The BER curve for this system can be seen in figure 11. In an effort to better enhance the performance of the QPSK communication link, error correcting codes can be incorporated within the system. The following system that is shown in figure 8, demonstrates the same QPSK system but with a convolutional code.

Figure 8. QPSK Modulated System with Gray Coding and Convolutional Coding. The tokens that are used in this model are exactly the same as that used in the previous QPSK system of figure 4. However, this model has an added convolutional encoder (token 25), convolutional decoder (token 27), and a resample token labeled as token 30. The convolution encoder has a code rate, which means that for every 1 data bit that goes into the encoder, a 2 bit code word is output. The encoder also has a constrain length of 7 which means that the encoder is made up of 7 shift registers and thus has a delay of 7 samples between the input and output. The convolution decoder is based on the Viterbi algorithm. Its parameters are set up the same as those in the encoder and uses hard decision making. The resampler token is used to sample the output bit stream, at the input date rate of 80 Hz, before it is input to the BER token. This token is needed to

compensate for any phase shift that make occur during the data rate conversions and due to the coding and decoding process. After calibrating the noise power and taking the same steps as previously mentioned for making BER measurements, a BER curve was generated and is shown in figure 11. The next SystemView model that is shown in figure 9 is again the same as that used in the previous QPSK system of figure 4. However, this model uses a Reed Solomon coder and decoder (tokens 27 and 30). A Reed Solomon code is based on non-binary symbols and can correct up to half the amount of parity symbols that are used to form the coded symbol sequences.

Figure 8. QPSK Modulated System with Gray Coding and Reed Solomon Coding. The Reed Solomon encoder in this system is based on 8 bit encoded symbols. Therefore, before the sampled input data is feed into the RS encoder, it must first be converted to symbols by the bit-to-symbol converter that is labeled as token 26. This token generates one symbol for every eight bits that are input. Once the eight bit symbols are generated, they are then fed into the RS endoder. The

parameters of the RS encoder are set up to take 239 information symbols and generate a 255 code symbol sequence. There are sixteen parity symbols that are added to generate the code symbol sequence. The RS encoder can correct up to half the amount of parity code symbol thus it can correct up to 8 symbols within the 239 information symbol sequence. After the 8 bit symbols are output from the RS encoder, they have to be converted back to bits so that they can be passed on to the gray encoder. Therefore, output symbols of the RS encoder are fed into a symbol-to-bit converter that is indicated as token 28. At the receiver end of the QPSK communication link, the RS encoded data needs to be decoded by a RS decoder (token 30). This tokens parameters are configured to be the same as those in the RS encoder. Since the RS encoder was used to encode 8 bit generated symbols, the received data bits first need to be converted back to 8 bit symbols again before entering the RS decoder. The 8 bit symbols are converted back to bits by the bit-to-symbol converter that is labeled by token 29. Because every symbol is generated by 8 bits, the sample delay (token 37), that is place before the bit-to-symbol token, is needed to offset the data bits enough until the system delay between token 28 and 29 is a multiple of eight. After calibrating the noise power and taking the same steps as previously mentioned for making BER measurements, a BER curve was generated and is shown in figure 11. Often several error correcting codes are concatenated together to enhance the performance of many communication networks. The QPSK SystemView model that is shown in figure 9 includes a concatenated RS and convolutional coding scheme. The QPSK system is the same as that shown in figure 4 and the parameters of the convolutional code and RS code are identical to those using in the previous models. The convolutional code is known as the inner code and is usually the more power code. The RS code is the outer code and is primarily used to correct burst errors that could not be corrected by the convolutional code. Again, the BER curve of this model was generated and shown in figure 11.

Figure 9. QPSK Modulated System with Gray Coding and Concatenated RS and
Convolutional Coding.

One of the most popular coding techniques used today for communication networks is of that shown in figure 10. This SystemView model is the same as that shown in figure 9, however an interleaver process was introduced to help reduce burst errors. The interleaver token that is labeled as token 41 has its parameters set to 1 row sample and 128 column samples. Therefore, within this token, 128 bits are scrambled into a particular known sequence. When the bits are reached by the de-interleaver, in the receiver, (token 42), they are arranged back into there original sequence. The parameters of the de-interleaver are set to 128 row samples and 1 column sample. This technique proves to reduce burst errors and increases the correction capability of the RS code. Because the transmitted bits are scrambled before they are transmitted and then reconfigured at the receiver, if burst errors do happen to occur as a result of a corrupt channel, they will be scattered by the de-interleaver process, thus reducing the length of the burst errors. Again, the BER curve of this model was generated and shown in figure 11.

Figure 10. QPSK Modulated System with Gray Coding, Concatenated RS and
Convolutional Coding and Convolutional Interleaving.

Figure 11 shows the BER vs. Eb/No performance of the five previously discussed QSPK SystemView models. From the BER curves, one can see that as error correcting code scheme increased in complexity, the error rate decreased. One can also see that as discussed early, the convolutional code is more powerful than the RS block code. Although the error rate has decreased with the more sophisticated coding schemes, there are trade-offs that accompany the lower error rate performance than just complex system complexity. One trade off achieving lower error rate performance is system bandwidth. Because redundant bits need to be added for coding, the data rate and thus the bandwidth of the system will increase if the system cannot afford delay. However, if the system can tolerate delay, the system will not need to have an increase data rate and thus increased system bandwidth.

BER performance vs. Eb/No for Uncoded and Coded QPSK Modulation
1.00E+00

1.00E-01

1.00E-02

Uncoded QPSK QPSK-RS

BER

QPSK-Convolutional

1.00E-03
QPSK-Concatenated QPSK-Concatenated with Interleaving

1.00E-04

1.00E-05

1.00E-06 0 1 2 3 4 5 6 7 8 9 10

Eb/No (dB)

Figure 11. BER performance vs. Eb/No for an Uncoded and Coded QPSK Modulated System

Final Value Sink 13: Loop N Time Value 1 506 55.5375000000000 1.97628458498024e-3 2 2407 128.513210784314 5.26038926880589e-4 3 77513 1.11655125612745e+3 1.33145154847815e-5 4 164324 2.25090176470588e+3 1.15192775109145e-5 5 7619358 95.4880400857843e+3 1.34137550546382e-7 6 259207867 3.24039361550858e+6 0.00000000000000e+0 7 402909967 5.03671908753064e+6 0.00000000000000e+0 Final Value Sink 13: Loop N Time Value 1 153 51.1250000000000 6.53594771241830e-3 2 478 104.400790441176 3.07692307692308e-3 3 40634 655.563909313725 2.49028787727861e-5 4 405814 5.26952690563725e+3 2.73837559559669e-6 5 68652799 858.406053235294e+3 1.46526619454325e-8 6 109641434 1.37081320463235e+6 0.00000000000000e+0

References: [1] Rappaport, Theodore S., Wireless Communications: Principles and Practice, Prentice Hall PTR, Upper Saddle River, New Jersey, pp. 243-247, 340-345, 1996. [2] Lathi, B. P., Modern Digital and Analog Communication Systems, third edition, Oxford University Press, Inc., New York, New York, pp. 728754, 1998. [3] Schiff, Maurice L., "Using SystemView by Elanix to Generate Bit Error Rate (BER) Curves," SystemView Application Note AN107A, Elanix Inc., Westlake Village, California, May 12, 1997. [4] Proakis, John G., and Salehi, Masoud, Communication Systems Engineering, Prentice Hall, Englewood Cliffs, New Jersey, pp. 753767, 777-781, 1994. [5] Sklar, Bernard, Digital Communications: Fundamentals and Applications, second edition, Prentice Hall PTR, Upper Saddle River, New Jersey, pp. 437-472, 2001.

For more information about Agilent EEsof EDA, visit: www.agilent.com/nd/eesof

Agilent Email Updates


www.agilent.com/nd/emailupdates

www.agilent.com
For more information on Agilent Technologies products, applications or services, please contact your local Agilent office. The complete list is available at:

Get the latest information on the products and applications you select.

www.agilent.com/nd/contactus
Agilent Direct
www.agilent.com/nd/agilentdirect

Quickly choose and use your test equipment solutions with condence.

Americas Canada Latin America United States Asia Pacic Australia China Hong Kong India Japan Korea Malaysia Singapore Taiwan Thailand

(877) 894-4414 305 269 7500 (800) 829-4444

1 800 629 485 800 810 0189 800 938 693 1 800 112 929 0120 (421) 345 080 769 0800 1 800 888 848 1 800 375 8100 0800 047 866 1 800 226 008

Europe & Middle East Austria 0820 87 44 11 Belgium 32 (0) 2 404 93 40 Denmark 45 70 13 15 15 Finland 358 (0) 10 855 2100 France 0825 010 700*
*0.125 /minute

Germany

01805 24 6333**
**0.14 /minute

Ireland 1890 924 204 Israel 972-3-9288-504/544 Italy 39 02 92 60 8484 Netherlands 31 (0) 20 547 2111 Spain 34 (91) 631 3300 Sweden 0200-88 22 55 Switzerland 0800 80 53 53 United Kingdom 44 (0) 118 9276201 Other European Countries: www.agilent.com/nd/contactus
Revised: March 27, 2008

Product specications and descriptions in this document subject to change without notice. Agilent Technologies, Inc. 2008 Printed in USA, May 07, 2003 5989-9521EN

Vous aimerez peut-être aussi