Cyclostationarity of Direct-Sequence Spread-Spectrum Signals

Spread-spectrum signals are used to enable shared-bandwidth communication systems (CDMA), precision position estimation (GPS), and secure wireless data transmission.

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:

Figure 1. The time-domain plot of a rectangular-pulse BPSK signal with bit rate 1/10 and carrier frequency offset 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:

Figure 2. Pulses for the simple rectangular-pulse BPSK signal, p(t), and for a DSSS signal, q(t).

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:

Figure 4. Fourier transform of the delay product associated with x_c(t).

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):

Figure 5. Estimated power spectrum for a rectangular-pulse DSSS BPSK signal.

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

Figure 6. Time-domain plot of one data symbol for a rectangular-pulse DSSS BPSK signal, which is equivalent to 127 chip durations.

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:

Figure 7. Blindly estimated non-conjugate cycle frequencies and corresponding coherence and spectral correlation peaks for a DSSS BPSK signal having chip rate 1/10 and 127 chips per data symbol.

And here is the conjugate cyclostationarity:

Figure 8. Blindly estimated conjugate cycle frequencies and corresponding coherence and spectral correlation peaks for a DSSS BPSK signal having chip rate 1/10 and 127 chips per data symbol.

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 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.

Figure 9. Estimated power spectrum for a square-root raised-cosine DSSS BPSK signal. Compare to Figure 5.
Figure 10. Blindly estimated non-conjugate cycle frequencies and corresponding coherence and spectral correlation peaks for a SRRC DSSS BPSK signal having chip rate 1/10 and 127 chips per data symbol.
Figure 11. Blindly estimated conjugate cycle frequencies and corresponding coherence and spectral correlation peaks for a SRRC DSSS BPSK signal having chip rate 1/10 and 127 chips per data symbol.

Because 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:

Figure 12. Estimated power spectrum for a captured WiFi DSSS BPSK signal.
Figure 13. Blindly estimated non-conjugate cycle frequencies for a captured WiFi DSSS BPSK signal. The data rate is 1 MHz and there are 11 chips per data symbol.
Figure 14. Blindly estimated conjugate cycle frequencies for a captured WiFi DSSS BPSK signal. The data rate is 1 MHz and there are 11 chips per data symbol.

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:

Figure 15. Estimated power spectrum for a captured DSSS BPSK signal.
Figure 16. Blindly estimated non-conjugate cycle frequencies for a captured DSSS BPSK signal. The chip rate is about 3.9 MHz and the number of chips per data symbol is estimated as 1000.
Figure 17. Blindly estimated conjugate cycle frequencies for a captured DSSS BPSK signal. The chip rate is about 3.9 MHz and the number of chips per data symbol is estimated as 1000. The carrier frequency offset is slightly greater than zero at about 160 kHz.

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):

Figure 18. Power spectrum estimate for captured WCDMA.
Figure 19. Blindly estimated non-conjugate cycle frequencies for a captured WCDMA signal. The chip rate is 3.84 MHz.

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/2 \\ 0, & \mbox{\rm 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!

Author: Chad Spooner

I'm a signal processing researcher specializing in cyclostationary signal processing (CSP) for communication signals. I hope to use this blog to help others with their cyclo-projects and to learn more about how CSP is being used and extended worldwide.

9 thoughts on “Cyclostationarity of Direct-Sequence Spread-Spectrum Signals”

  1. Morning Chad.

    I think there’s a minor error in Figure 3. Isn’t the third chipped pulse in s(t) not inverted like it should be?

    Hoping your days are cyclically great,

  2. Two questions:

    1: In Figures 10 and 11 there are a handful of coherence values greater than 1. Is that a mistake, or could it be an instance of the classic aphorism, “In theory, theory and practice are the same, but in practice they’re not”?

    2: Occasionally you refer to “significant” cycle frequencies. Are you defining “significant” in a mathematical way (e.g. 3-sigma), or just colloquially?


    1. Answers:

      1. Yes, it is an example of that aphorism, or similar ones. Several commenters have asked similar questions over the past couple years. So searching through the comments sections of the FAM and SSCA posts will be fruitful. To get you started, look at my comment here.

      The root cause of these greater-than-one coherence magnitudes is that the PSD estimate used in the coherence calculation violates one or more of the conditions under which we calculate a coherence-magnitude threshold. Those conditions include the ability to “adequately resolve” the spectrum of the signal with the estimate. One cannot adequately resolve the PSD of some signals with any non-parametric power spectrum estimator (like the FSM and TSM). For example, signals with unit-step-function discontinuities in their spectrum. For some DSSS signals, the true spectrum is not really like the one in Figure 9. There can be many rather narrow (in frequency) and deep (in power spectral density) fluctuations, and these are hard to resolve, which leads to the mismatch between numerator and denominator in the coherence. ‘Hard to resolve’ just means that the effective spectral resolution of the estimator is either too big (oversmoothed) or too small (undersmoothed) relative to the fluctuation widths.

      2. I looked at the instances of ‘significant’ in the post. Sorry for the vagueness! Here I am using ‘significant’ to mean ‘large relative to the total,’ or similar. Consider a periodic signal. It has some number of non-zero Fourier-series coefficients. The sum of all the magnitudes of those coefficients is, say, S. Then a significant Fourier-series component is one that has magnitude s such that s/S > threshold. So that is more like your idea of a colloquial use of ‘significant.’ In other CSP Blog contexts, I’m talking about ‘significant cycle frequencies’ for blind cycle-frequency estimation, and there ‘significant’ means ‘greater than the coherence threshold’ discussed in (1) above.

      1. I appreciate the feedback. Never apologize for your blog content; it is well worth the fancy cup of coffee.


  3. Chad,

    My team is looking to start moving past the CSP basics we’ve learned through implementing and tinkering with the SSCA. We’re particularly keen to get a firm grasp on DSSS’s cyclostationary properties and interesting ways that folks have exploited them. To get started, I pulled down the three papers you cited at the beginning of this post (actually grabbed Perna’s thesis instead of R11).

    Can you also recommend a relatively recent survey paper, or similar starting point(s), we could use to launch into this niche topic?


    1. I don’t have any good ideas about survey papers for either uses of DSSS or detecting DSSS. I invented the CSP technique of tunneling in part for low-cost detection of DSSS, so you might want to look at My Papers [43].

      I don’t have it, but I want it: Principles of Spread-Spectrum Communication Systems 5th ed. 2022 Edition, D. Torrieri.

      A little dated is Modern Communications and Spread Spectrum by (two of my favorite authors) G. R. Cooper and C. D. McGillem. (The Literature [R154]).

      Hope that helps!

      1. I appreciate the references. Last night I blew off some dust and checked inside the front cover of my introductory spread spectrum text. The copyright date (which started with a “1”) made me feel very, very old. Maybe Torrieri’s next edition should be on my Christmas list too. 🙂


Leave a Comment, Ask a Question, or Point out an Error