Cyclostationarity of Direct-Sequence Spread-Spectrum Signals

In this post we look at direct-sequence spread-spectrum (DSSS) signals, which can be usefully modeled as a kind of PSK signal. DSSS signals are used in a variety of real-world situations, including the familiar CDMA and WCDMA signals, covert signaling, and GPS. My colleague Antonio Napolitano has done some work on a large class of DSSS signals (The Literature [R11, R17, R95]), resulting in formulas for their spectral correlation functions, and I’ve made some remarks about their cyclostationary properties myself here and there (My Papers [16]).

A good thing, from the point of view of modulation recognition, about DSSS signals is that they are easily distinguished from other PSK and QAM signals by their spectral correlation functions. Whereas most PSK/QAM signals have only a single non-conjugate cycle frequency, and no conjugate cycle frequencies, DSSS signals have many non-conjugate cycle frequencies and in some cases also have many conjugate cycle frequencies.

Signal Modeling

In our first model, we’ll introduce the direct-sequence notion by modifying our familiar rectangular-pulse BPSK signal. The rectangular-pulse BPSK signal is simply a pulse-amplitude modulated signal with rectangular pulses where each pulse is multiplied (modulated) by a random binary variable drawn from the set \{+1, -1\}.  Here is the time-domain plot of such a signal that uses ten samples per symbol interval and has a carrier frequency of zero:


In our DSSS signal model, called the waveform-multiplication (WM) model, we are simply going to replace the rectangular pulse p(t)  with a more complicated pulse q(t). The new pulse will have the same length as the old one, but will consist of N_{c} subrectangles, each of which can take on the value of \pm 1. Here is an illustration for N_{c} = 12:


The unspread (original) PSK signal is described mathematically as a pulse-amplitude-modulated signal,

\displaystyle x_d(t) = \sum_{k=-\infty}^\infty d_k p(t - kT_{sym}), \hfill (1)

where d_k is our binary information, or data, symbol. Replacing each instance of the rectangle p(t) in (1) with q(t), the chipped pulse, is equivalent to multiplying the data signal x(t) by a periodized version of q(t). A periodized signal is one formed by concatenating an infinite number of identical segments, and so is periodic by construction. Let the segment, or period, be denoted by b(t), which is zero outside the interval [-T_P/2, T_P/2]. Then the periodized signal corresponding to b(t) is given by

\displaystyle b_P(t) = \sum_{k=-\infty}^\infty b(t - k T_P). \hfill (2)

Our periodized chipping waveform is simply the concatenation of an infinite number of chipped pulses,

\displaystyle x_c(t) = \sum_{j=-\infty}^\infty q(t - jT_{sym}). \hfill (3)

The WM DSSS signal is then

\displaystyle s(t) = x_c(t) x_d(t). \hfill (4)

This multiplication is illustrated below:


An imperfectly downconverted complex envelope signal includes a residual carrier offset frequency, leading to the complex-valued model

\displaystyle x_{ce}(t) = s(t) e^{i 2 \pi f_0 t + i\phi_0}, \hfill (5)

and the corresponding RF signal is

\displaystyle x_{rf}(t) = \Re \left\{ s(t) e^{i 2 \pi f_c + i \phi} \right\} \hfill (6)

for large f_c. Here f_0 is small relative to 1/T_{chip}.

There are variants of this basic binary direct-sequence spread-spectrum (DSSS) signal. In particular, the random variable representing the information to be transmitted, d_k, could be drawn from a quaternary alphabet such as \{+1, -1, +i, -i\}, leading to DSSS QPSK. In DSSS QPSK, the inphase and quadrature signal components can be spread with distinct spreading sequences or identical sequences. Offset, or staggered, QPSK DSSS signals are also possible. Finally, the spreading code(s) can extend past a single data-symbol interval. When they do, the signal is often referred to as a long-code DSSS signal. Otherwise it is a short-code signal.


Let’s analyze the simple short-code DSSS signal using the WM model. What are the cycle frequencies? What is the spectral correlation function? What are the cyclic cumulants?

The complex envelope x_{ce}(t) is the product of a random signal s(t) and the non-random carrier sine wave e^{i 2 \pi f_0 t + i\phi_0}, which means we can use the product-modulation formulas for the cumulants and cyclic cumulants that we derived in the signal-processing post. Recall that we obtained a formula for the cyclic cumulants of a signal y(t) when it is equal to the product of some random (CS) signal z(t) and a non-random signal x(t) (Equation (27) in the signal-processing post). That is the situation we are in with the WM model of DSSS signals. We identify x(t) = e^{i 2 \pi f_0 t + i \phi_0} and z(t) = s(t). So we can focus on the cumulants of s(t) = x_d(t) x_c(t).

Notice that the product-modulation formula can also be applied to s(t), since it itself is the product of a random signal x_d(t) and a non-random periodic signal x_c(t). For the product signal

\displaystyle y(t) = x(t) z(t), \hfill (7)

the cyclic cumulants are given by

\displaystyle C_y^\alpha(\boldsymbol{\tau};n,m) = \sum_\beta C_z^\beta(\boldsymbol{\tau};n,m) R_x^{\alpha - \beta}(\boldsymbol{\tau};n,m). \hfill (8)

Using z(t) = x_d(t) and x(t) = x_c(t),

\displaystyle C_s^\alpha(\boldsymbol{\tau};n,m) = \sum_\beta C_{x_d}^\beta(\boldsymbol{\tau};n,m) R_{x_c}^{\alpha - \beta} (\boldsymbol{\tau};n,m). \hfill (9)

Now \beta is constrained to harmonics of 1/T_{sym}. This is because \beta is a cycle frequency of x_d(t), which is our old friend, the rectangular-pulse textbook BPSK signal with zero carrier frequency offset. So its cycle frequencies, which are (n-2m)f_c + k/T_{sym} reduce to k/T_{sym} for all n, m of interest.

The impure (moment) cycle frequencies for x_c(t) are also harmonics of 1/T_{sym} because x_c(t) is periodic with period T_{sym}, so the cycle frequencies for s(t) are harmonics of 1/T_{sym}. However, for x_d(t) the significant harmonics are small (1/T_{sym}, 2/T_{sym}, \ldots), and for x_c(t), they are large (N_c/T_{sym} = 1/T_{chip}). The combination implied by (9) reveals that the DSSS signal s(t) has a great many more significant cycle frequencies than does the data signal x_d(t).

The strongest second-order non-conjugate feature of a DSSS signal is typically the chip-rate feature. This arises from the combination in (9) of the \beta = 0 feature for s(t) and the \alpha - \beta = \alpha = 1/T_{chip} = N_c/T_{sym} feature for the periodic chipping signal x_c(t). To see that the latter feature is large, here is a plot of the Fourier transform of a segment of a simulated x_c(t)x_c(t+\tau) containing many periods:


In this numerical example, \tau = T_{chip}/2, the chip interval is T_{chip} = 10 samples, N_c = 127 so that T_{sym} = 1270 samples. You can see the harmonic components for 1/T_{sym} = 1/1270 in the zoomed-in portion of the plot, and you can see the dominant feature for N_c/T_{sym} = 127/1270 = 1/10 in the upper plot. We’ll see various examples of the spectral correlation function for DSSS signals, including the rectangular-pulse signal, next.

Formula (9) provides all nth-order cyclic temporal cumulant functions for the WM DSSS signal, which includes the non-conjugate and conjugate cyclic autocorrelation functions for n=2 and m = 0,1. Due to the cyclic Wiener relation for the cyclic polyspectrum and the cyclic cumulant, (9) can also be used to find the spectral correlation function for the WM DSSS signal.


Rectangular-Pulse DSSS BPSK

First let’s show the estimated spectral correlation function for the DSSS signal that we spent so much time with in the previous parts of this post. The signal has a data rate of 1/T_{sym} = 1/1270, a chip rate of 1/T_{chip} = 1/10, which means a processing gain of N_c = T_{sym}/T_{chip} = f_{chip}/f_{sym} = 127. The carrier offset frequency is set to zero. A small amount of noise is added to the signal prior to any plotting or processing.

First we show the PSD, estimated from 65536 samples using the frequency-smoothing method (FSM):


Here is a single data symbol or, equivalently, a single instance of the chipping waveform, which contains 127 chips:


And here is the spectral correlation and spectral coherence (non-conjugate) for the DSSS signal, obtained using the strip spectral correlation analyzer (SSCA) using 64 strips and 65536 samples:


And here is the conjugate cyclostationarity:


Square-Root Raised-Cosine DSSS BPSK

A more realistic DSSS signal uses a non-rectangular pulse function, such as the square-root raised-cosine (SRRC) pulse, which is characterized by a maximum bandwidth of twice the symbol rate, minimum bandwidth of the symbol rate (the Nyquist rate), and an occupied bandwidth between the two that is controlled by the roll-off parameter r \in [0, 1]. The waveform-multiplication model breaks down for signals with pulses such as these, because the pulse extends over many chip intervals. However, the basic results we obtained for the textbook rectangular-pulse DSSS BPSK signal above hold for the realistic signals too, especially the results relating to the values of the cycle frequencies.

Here are some results for a SRRC DSSS BPSK signal with roll-off of r = 0.35, or latex 35$% excess bandwidth (bandwidth in excess of the minimum, which is the Nyquist rate = 1/T_{chip}). Here we again use the SSCA and 65536 samples of the signal to obtain estimates of all significant second-order cycle frequencies and their associated maximum spectral correlation and coherence magnitudes.



dsss_bpsk_srrc_cscfBecause the bandwidth of this SRRC DSSS signal is strictly limited, the range of cycle frequencies is also quite limited. Compare to the plots above for the rectangular-pulse DSSS BPSK signal, which has infinite bandwidth.

Captured WiFi

Now let’s move from textbook simulated signals to captured signals involving DSSS components. First up is WiFi. In some variants of the 802.11 signal, DSSS BPSK and DSSS QPSK are used. These signal components can easily be found in garden-variety WiFi captures around the office or home. The WiFi DSSS BPSK signal uses a chip rate of 11 MHz and a chipping sequence that contains 11 bits (N_c = 11, My Papers [16]). So we should see significant cycle frequencies at multiples of 1 MHz. Here are the estimated PSD, cycle frequencies, and spectral correlation maxima:




Captured DSSS BPSK

Here we examine a captured DSSS signal of unknown origin. The center frequency for the collected data is also unknown to me. We use 131072 samples and a 10-MHz sampling rate to obtain the estimates of the cyclic parameters:




Captured WCDMA

Finally, let’s look at a more familiar signal, the downlink WCDMA (UMTS) cellular radio signal. The signal uses DSSS QPSK and the chip rate is 3.84 MHz. To bring out the symbol-rate features (multiples of 100 Hz) requires a significantly longer processing-block length than for the previous examples. My complex-valued (I/Q) capture has a rate of 6.25 MHz, and I processed 2^21 samples to obtain the following plots (compare to the SCF surface for WCDMA I posted here using a much smaller block length):


The Symbol Combination Model

The waveform-multiplication model was successfully used to predict the many cycle frequencies possessed by DSSS signals, and also it explained why the chip-rate feature is typically dominant. However, it is only an approximate model when considering DSSS signals with non-rectangular pulses, which are the real-world signals. The waveform-multiplication model is an exact match to reality when the data and chip pulses are rectangles.

Another model is more general in terms of accommodating pulse functions. In the symbol-combination (SC) model, the data and chip symbols are combined in discrete time, used to modulate an impulse train, and then applied to a pulse-shaping filter. In particular, we have the following SC model

\displaystyle s(t) = \sum_{k=-\infty}^\infty \sum_{j=1}^{N_c} d_k c_j \delta(t - j T_c - kT_0) \otimes p(t). \hfill (10)

In (10), the data symbols are d_k, the chip symbols are c_j, \delta(\cdot) is the impulse function, \otimes denotes convolution, and p(t) is an arbitrary pulse function. If I’ve not erred, this model reduces to the WM model when

\displaystyle p(t) = r_{T_c}(t) = \left\{ \begin{array}{ll} 1, & |t| < T_c \\ 0, & otherwise, \end{array} \right. \hfill (11)

Other DSSS Variants

We’ve focused on DSSS BPSK in this post, but DSSS QPSK and DSSS SQPSK/MSK are also common. For all of these basic signal types, there are countless variations arising from different combinations of the basic DSSS parameters of pulse type, data-symbol constellation, processing gain N_c, and the specific chipping (sometimes called spreading) sequence. Maximal-length shift-register sequences are common choices, but there are others including Kasami, Gold, and Walsh. In addition, for signals employing quadrature modulation (not BPSK), the inphase and quadrature components of the data signal can be spread with identical or distinct sequences, and this is reflected in the cyclostationarity of the signal. Moreover, the chipping sequence can exceed the data-symbol length.

For the QAM and SQPSK/MSK DSSS signals, the basic second-order cycle frequency pattern is inherited from the data-symbol constellation properties (unless distinct I/Q chipping sequences are employed). So, DSSS QPSK does not exhibit second-order conjugate cyclostationarity, and DSSS SQPSK exhibits some of the non-conjugate and conjugate features for DSSS BPSK, but not all of them.

I’ve posted some of the files I used to generate the results shown on this page.

As usual, I welcome corrections, comments, and questions. Post them below. Thanks!

3 thoughts on “Cyclostationarity of Direct-Sequence Spread-Spectrum Signals

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s