
- •Contents
- •Preface
- •1 Spread spectrum signals and systems
- •1.1 Basic definition
- •1.2 Historical sketch
- •2 Classical reception problems and signal design
- •2.1 Gaussian channel, general reception problem and optimal decision rules
- •2.2 Binary data transmission (deterministic signals)
- •2.3 M-ary data transmission: deterministic signals
- •2.4 Complex envelope of a bandpass signal
- •2.5 M-ary data transmission: noncoherent signals
- •2.6 Trade-off between orthogonal-coding gain and bandwidth
- •2.7 Examples of orthogonal signal sets
- •2.7.1 Time-shift coding
- •2.7.2 Frequency-shift coding
- •2.7.3 Spread spectrum orthogonal coding
- •2.8 Signal parameter estimation
- •2.8.1 Problem statement and estimation rule
- •2.8.2 Estimation accuracy
- •2.9 Amplitude estimation
- •2.10 Phase estimation
- •2.11 Autocorrelation function and matched filter response
- •2.12 Estimation of the bandpass signal time delay
- •2.12.1 Estimation algorithm
- •2.12.2 Estimation accuracy
- •2.13 Estimation of carrier frequency
- •2.14 Simultaneous estimation of time delay and frequency
- •2.15 Signal resolution
- •2.16 Summary
- •Problems
- •Matlab-based problems
- •3 Merits of spread spectrum
- •3.1 Jamming immunity
- •3.1.1 Narrowband jammer
- •3.1.2 Barrage jammer
- •3.2 Low probability of detection
- •3.3 Signal structure secrecy
- •3.4 Electromagnetic compatibility
- •3.5 Propagation effects in wireless systems
- •3.5.1 Free-space propagation
- •3.5.2 Shadowing
- •3.5.3 Multipath fading
- •3.5.4 Performance analysis
- •3.6 Diversity
- •3.6.1 Combining modes
- •3.6.2 Arranging diversity branches
- •3.7 Multipath diversity and RAKE receiver
- •Problems
- •Matlab-based problems
- •4 Multiuser environment: code division multiple access
- •4.1 Multiuser systems and the multiple access problem
- •4.2 Frequency division multiple access
- •4.3 Time division multiple access
- •4.4 Synchronous code division multiple access
- •4.5 Asynchronous CDMA
- •4.6 Asynchronous CDMA in the cellular networks
- •4.6.1 The resource reuse problem and cellular systems
- •4.6.2 Number of users per cell in asynchronous CDMA
- •Problems
- •Matlab-based problems
- •5 Discrete spread spectrum signals
- •5.1 Spread spectrum modulation
- •5.2 General model and categorization of discrete signals
- •5.3 Correlation functions of APSK signals
- •5.4 Calculating correlation functions of code sequences
- •5.5 Correlation functions of FSK signals
- •5.6 Processing gain of discrete signals
- •Problems
- •Matlab-based problems
- •6 Spread spectrum signals for time measurement, synchronization and time-resolution
- •6.1 Demands on ACF: revisited
- •6.2 Signals with continuous frequency modulation
- •6.3 Criterion of good aperiodic ACF of APSK signals
- •6.4 Optimization of aperiodic PSK signals
- •6.5 Perfect periodic ACF: minimax binary sequences
- •6.6 Initial knowledge on finite fields and linear sequences
- •6.6.1 Definition of a finite field
- •6.6.2 Linear sequences over finite fields
- •6.6.3 m-sequences
- •6.7 Periodic ACF of m-sequences
- •6.8 More about finite fields
- •6.9 Legendre sequences
- •6.10 Binary codes with good aperiodic ACF: revisited
- •6.11 Sequences with perfect periodic ACF
- •6.11.1 Binary non-antipodal sequences
- •6.11.2 Polyphase codes
- •6.11.3 Ternary sequences
- •6.12 Suppression of sidelobes along the delay axis
- •6.12.1 Sidelobe suppression filter
- •6.12.2 SNR loss calculation
- •6.13 FSK signals with optimal aperiodic ACF
- •Problems
- •Matlab-based problems
- •7 Spread spectrum signature ensembles for CDMA applications
- •7.1 Data transmission via spread spectrum
- •7.1.1 Direct sequence spreading: BPSK data modulation and binary signatures
- •7.1.2 DS spreading: general case
- •7.1.3 Frequency hopping spreading
- •7.2 Designing signature ensembles for synchronous DS CDMA
- •7.2.1 Problem formulation
- •7.2.2 Optimizing signature sets in minimum distance
- •7.2.3 Welch-bound sequences
- •7.3 Approaches to designing signature ensembles for asynchronous DS CDMA
- •7.4 Time-offset signatures for asynchronous CDMA
- •7.5 Examples of minimax signature ensembles
- •7.5.1 Frequency-offset binary m-sequences
- •7.5.2 Gold sets
- •7.5.3 Kasami sets and their extensions
- •7.5.4 Kamaletdinov ensembles
- •Problems
- •Matlab-based problems
- •8 DS spread spectrum signal acquisition and tracking
- •8.1 Acquisition and tracking procedures
- •8.2 Serial search
- •8.2.1 Algorithm model
- •8.2.2 Probability of correct acquisition and average number of steps
- •8.2.3 Minimizing average acquisition time
- •8.3 Acquisition acceleration techniques
- •8.3.1 Problem statement
- •8.3.2 Sequential cell examining
- •8.3.3 Serial-parallel search
- •8.3.4 Rapid acquisition sequences
- •8.4 Code tracking
- •8.4.1 Delay estimation by tracking
- •8.4.2 Early–late DLL discriminators
- •8.4.3 DLL noise performance
- •Problems
- •Matlab-based problems
- •9 Channel coding in spread spectrum systems
- •9.1 Preliminary notes and terminology
- •9.2 Error-detecting block codes
- •9.2.1 Binary block codes and detection capability
- •9.2.2 Linear codes and their polynomial representation
- •9.2.3 Syndrome calculation and error detection
- •9.2.4 Choice of generator polynomials for CRC
- •9.3 Convolutional codes
- •9.3.1 Convolutional encoder
- •9.3.2 Trellis diagram, free distance and asymptotic coding gain
- •9.3.3 The Viterbi decoding algorithm
- •9.3.4 Applications
- •9.4 Turbo codes
- •9.4.1 Turbo encoders
- •9.4.2 Iterative decoding
- •9.4.3 Performance
- •9.4.4 Applications
- •9.5 Channel interleaving
- •Problems
- •Matlab-based problems
- •10 Some advancements in spread spectrum systems development
- •10.1 Multiuser reception and suppressing MAI
- •10.1.1 Optimal (ML) multiuser rule for synchronous CDMA
- •10.1.2 Decorrelating algorithm
- •10.1.3 Minimum mean-square error detection
- •10.1.4 Blind MMSE detector
- •10.1.5 Interference cancellation
- •10.1.6 Asynchronous multiuser detectors
- •10.2 Multicarrier modulation and OFDM
- •10.2.1 Multicarrier DS CDMA
- •10.2.2 Conventional MC transmission and OFDM
- •10.2.3 Multicarrier CDMA
- •10.2.4 Applications
- •10.3 Transmit diversity and space–time coding in CDMA systems
- •10.3.1 Transmit diversity and the space–time coding problem
- •10.3.2 Efficiency of transmit diversity
- •10.3.3 Time-switched space–time code
- •10.3.4 Alamouti space–time code
- •10.3.5 Transmit diversity in spread spectrum applications
- •Problems
- •Matlab-based problems
- •11 Examples of operational wireless spread spectrum systems
- •11.1 Preliminary remarks
- •11.2 Global positioning system
- •11.2.1 General system principles and architecture
- •11.2.2 GPS ranging signals
- •11.2.3 Signal processing
- •11.2.4 Accuracy
- •11.2.5 GLONASS and GNSS
- •11.2.6 Applications
- •11.3 Air interfaces cdmaOne (IS-95) and cdma2000
- •11.3.1 Introductory remarks
- •11.3.2 Spreading codes of IS-95
- •11.3.3 Forward link channels of IS-95
- •11.3.3.1 Pilot channel
- •11.3.3.2 Synchronization channel
- •11.3.3.3 Paging channels
- •11.3.3.4 Traffic channels
- •11.3.3.5 Forward link modulation
- •11.3.3.6 MS processing of forward link signal
- •11.3.4 Reverse link of IS-95
- •11.3.4.1 Reverse link traffic channel
- •11.3.4.2 Access channel
- •11.3.4.3 Reverse link modulation
- •11.3.5 Evolution of air interface cdmaOne to cdma2000
- •11.4 Air interface UMTS
- •11.4.1 Preliminaries
- •11.4.2 Types of UMTS channels
- •11.4.3 Dedicated physical uplink channels
- •11.4.4 Common physical uplink channels
- •11.4.5 Uplink channelization codes
- •11.4.6 Uplink scrambling
- •11.4.7 Mapping downlink transport channels to physical channels
- •11.4.8 Downlink physical channels format
- •11.4.9 Downlink channelization codes
- •11.4.10 Downlink scrambling codes
- •11.4.11 Synchronization channel
- •11.4.11.1 General structure
- •11.4.11.2 Primary synchronization code
- •11.4.11.3 Secondary synchronization code
- •References
- •Index

284 |
Spread Spectrum and CDMA |
|
|
corresponds to a systematic codeword, since the data bits are exactly k senior coefficients of zn kb(z), and r(z), with degree smaller than r ¼ n k, cannot affect them.
Example 9.2.2. Let us find a codeword of linear (5, 2) code with the generator polynomial g(z) ¼ z3 þ z2 þ 1, if data bits are b0 ¼ 1, b1 ¼ 1. Then b(z) ¼ z þ 1, zn k b(z) ¼ z4 þ z3, having remainder r(z) ¼ z after division by g(z). Summation of zn k b(z) with this remainder leads to the code polynomial u(z) ¼ z4 þ z3 þ z ¼ zg(z) corresponding to a systematic word, with the two last symbols being data bits.
9.2.3 Syndrome calculation and error detection
Suppose that word u of the linear code U is transmitted over the BSC. In an output binary observation y the elements distorted by the channel will differ from those transmitted, which may be written as:
y ¼ u þ e ð9:5Þ
with e being the error vector, having zeros and ones at the places of undistorted and distorted symbols, respectively. For instance, if the word u ¼ (01011) from Example 9.2.2 is transformed by a BSC into the observation y ¼ (11110), the error vector e ¼ (10101). In the same way as codewords, observation y ¼ (y0, y1, . . . , yn 1) and
error vector e ¼ (e0, e1, . . . , en 1) |
can be presented in the form of polynomials |
y(z) ¼ yn 1zn 1 þ yn 2zn 2 þ þ y0 |
and e(z) ¼ en 1zn 1 þ en 2zn 2 þ þ e0. Then |
(9.5) takes the form: |
|
yðzÞ ¼ uðzÞ þ eðzÞ
Let g(z) be the generator polynomial of U. Remainder s(z) after division of observation polynomial y(z) by g(z) is called the syndrome. Since any code polynomial is divisible by g(z), the syndrome repeats the remainder of dividing the error vector e(z) by g(z). Therefore, a non-zero syndrome always reports about the presence of errors in the observation y, and error detection may be implemented as calculating a syndrome for the observation y and deciding that error occurred whenever it is non-zero.
Certainly, not all error patterns are detectable, and any undetectable error vector is always some code vector. Indeed, if e(z) is a code polynomial it is divisible by g(z) and the syndrome is zero. Conversely, zero remainder tells only that e(z) is divisible by g(z), but any polynomial of degree up to n 1 divisible by g(z) is a code polynomial.
Example 9.2.3. Suppose that the transmitted codeword u ¼ (01011) of the (5,2) linear code is distorted by BSC into y ¼ (11001), i.e. two symbol errors occurred. Dividing y(z) ¼ z4 þ z þ 1 by g(z) ¼ z3 þ z2 þ 1 results in a non-zero syndrome s(z) ¼ z2, signalling the presence of errors. On the contrary, if the observation were y ¼ (11101), corresponding to three corrupted symbols, the syndrome would appear zero: y(z) ¼ z4 þ z2 þ z þ 1 ¼ (z þ 1)g(z), failing to detect such an error pattern.

Channel coding in spread spectrum systems |
285 |
|
|
Sometimes the ability of a linear code to detect errors is characterized by the share of undetectable error patterns among all error patterns. Since there are 2n possible error vectors altogether and only those repeating 2k code vectors are undetectable, the share above is 2 (n k) ¼ 2 r.
The linear codes just discussed and built on the basis of generator polynomials are known as cyclic codes or shortened cyclic codes. When used to only detect (not to correct) errors, they are often called cyclic redundancy codes (CRC).
9.2.4 Choice of generator polynomials for CRC
The share of undetected errors drops exponentially with the number of check symbols, which may motivate using generator polynomials of high degrees. It should be remembered, however, that check symbols present an overhead and increasing their number above some reasonable level may be wasteful. CRC are typically used on higher system protocol layers for checking the quality of data frames retrieved on the physical layer, i.e. after resources of much more powerful error-correction codes have already been utilized. Thanks to that, symbol errors met by CRC are rather rare and it is quite unlikely that in the codeword with hundreds of symbols more than a few errors happen. Thus, detection of up to three errors per codeword may often be considered satisfactory. Let us describe the procedure of designing CRC meeting this requirement.
Take a binary primitive polynomial g1(z) of degree m (see Section 6.6). An important fact proved in algebra of extended fields is that a primitive polynomial of degree m never divides any binomial zl þ 1 of non-zero degree l < 2m 1 [30,32]. Then we may prove the following statement.
Proposition 9.2.4. A linear code U with the generator polynomial g(z) ¼ (z þ 1)g1(z) of degree m þ 1 detects up to three errors whenever its code length n 2m 1.
Because of the linearity of U (see (9.3)) and Proposition 9.2.1 it is only necessary to prove that the minimal weight of a non-zero word of U is no smaller than four. Every code polynomial u(z) being divisible by z þ 1 may be written as u(z) ¼ q(z)(z þ 1). Although z is a formal variable, the latter equality should hold after substituting z ¼ 1 in both its parts, resulting in u(1) ¼ un 1 þ un 2 þ þ u0 ¼ 0, which means evenness of the number of non-zero elements of a word, i.e. evenness of its weight. Assuming the existence of a word of weight two with nonzero ith and jth symbols (j > i), we have a code polynomial u(z) ¼ zj þ zi ¼ zi (1 þ zj i ) not divisible by g1(z), since the latter, being irreducible, cannot have z as a factor and does not divide 1 þ zj i (j i < n 2m 1) due to primitivity. Hence, the smallest weight of a non-zero word of U is four.
The choice of appropriate CRC generator polynomial is now straightforward. If the desirable code length is n, then one should just find a primitive polynomial g1(z) of degree m dlog2 (n þ 1)e and the generator polynomial g(z) ¼ (z þ 1)g1(z) is ready.
CRC of this type are nothing other than quite popular Hamming codes (shortened whenever n < 2m 1) with all odd-weight words removed. In alternative applications they are used to correct any single and detect any double errors.