Time-delay estimation can be used to determine the angle-of-arrival of a signal impinging on two spatially separated signals. This estimation problem gets hard when there is cochannel interference present.
Let’s discuss an application of cyclostationary signal processing (CSP): time-delay estimation. The idea is that sampled data is available from two antennas (sensors), and there is a common signal component in each data set. The signal component in one data set is the time-delayed or time-advanced version of the component in the other set. This can happen when a plane-wave radio frequency (RF) signal propagates and impinges on the two antennas. In such a case, the RF signal arrives at the sensors with a time difference proportional to the distance between the sensors along the direction of propagation, and so the time-delay estimation is also commonly referred to as time-difference-of-arrival (TDOA) estimation.
Consider the diagram shown in Figure 1. A distant transmitter emits a signal that is well-modeled as a plane wave once it reaches our two receivers. An individual wavefront of the signal arrives at the two sensors at different times.
The line segment AB is perpendicular to the direction of propagation for the RF signal. The angle is called the angle of arrival (AOA). If we could estimate the AOA, we can tell the direction from which the signal arrives, which could be useful in a variety of settings. Since the triangle ABC is a right triangle, we have
When , the wavefronts first strike receiver 2, then must propagate over meters before striking receiver 1. On the other hand, when , each wavefront strikes the two receivers simultaneously. In the former case, the TDOA is maximum, and in the latter it is zero. The TDOA can be negative too, so that azimuthal degrees can be determined by estimating the TDOA.
In general, the wavefront must traverse meters between striking receiver 2 and striking receiver 1,
Assuming the speed of propagation is meters/sec, the TDOA is given by
In this post I’ll review several methods of TDOA estimation, some of which employ CSP and some of which do not. We’ll see some of the advantages and disadvantages of the various classes of methods through inspection, simulation, and application to captured data. Consider this post as a starting point to a study or development effort rather than as a definitive performance characterization.
The SSCA is a good tool for blind (no prior information) exhaustive (all cycle frequencies) spectral correlation analysis. An alternative is the FFT accumulation method.
In this post I present a very useful blind cycle-frequency estimator known in the literature as the strip spectral correlation analyzer (SSCA) (The Literature [R3-R5]). We’ve covered the basics of the frequency-smoothing method (FSM) and the time-smoothing method (TSM) of estimating the spectral correlation function (SCF) in previous posts. The TSM and FSM are efficient estimators of the SCF when it is desired to estimate it for one or a few cycle frequencies (CFs). The SSCA, on the other hand, is efficient when we want to estimate the SCF for all CFs.
Using complex-valued signal representations is convenient but also has complications: You have to consider all possible choices for conjugating different factors in a moment.
When we considered complex-valued signals and second-order statistics, we ended up with two kinds of parameters: non-conjugate and conjugate. So we have the non-conjugate autocorrelation, which is the expected value of the normal second-order lag product in which only one of the factors is conjugated (consistent with the normal definition of variance for complex-valued random variables),
and the conjugate autocorrelation, which is the expected value of the second-order lag product in which neither factor is conjugated
The complex-valued Fourier-series amplitudes of these functions of time are the non-conjugate and conjugate cyclic autocorrelation functions, respectively.
I never explained the fundamental reason why both the non-conjugate and conjugate functions are needed. In this post, I rectify that omission. The reason for the many different choices of conjugated factors in higher-order cyclic moments and cumulants is also provided. These choices of conjugation configurations, or conjugation patterns, also appear in the more conventional theory of higher-order statistics as applied to stationary signals.
Use this post to help check the accuracy of your second-order CSP estimators.
Update September 2022: New section on the non-conjugate and conjugate coherence function.
In this post I provide some tools for the do-it-yourself CSP practitioner. One of the goals of this blog is to help new CSP researchers and students to write their own estimators and algorithms. This post contains some spectral correlation function and cyclic autocorrelation function estimates and numerically evaluated formulas that can be compared to those produced by anybody’s code.
The signal of interest is, of course, our rectangular-pulse BPSK signal with symbol rate (normalized frequency units) and carrier offset . You can download a MATLAB script for creating such a signal here.
The formula for the SCF for a textbook BPSK signal is published in several places (The Literature [R47], My Papers ) and depends mainly on the Fourier transform of the pulse function used by the textbook signal.
We’ll compare the numerically evaluated spectral correlation formula with estimates produced by my version of the frequency-smoothing method (FSM). The FSM estimates and the theoretical functions are contained in a MATLAB mat file here. (I had to change the extension of the mat file from .mat to .doc to allow posting it to WordPress–change it back after downloading. It is a zipped .mat file as of 12/2/22.) In all the results shown here and that you can download, the processed data-block length is samples and the FSM smoothing width is Hz. A rectangular smoothing window is used. For all cycle frequencies except zero (non-conjugate), a zero-padding factor of two is used in the FSM.
For the cyclic autocorrelation, we provide estimates using two methods: inverse Fourier transformation of the spectral correlation estimate and direct averaging of the second-order lag product in the time domain.
Cyclic cumulants are the amplitudes of the Fourier-series components of the time-varying cumulant function for a cyclostationary signal. They degenerate to conventional cumulants when the signal is stationary.
In this post I continue the development of the theory of higher-order cyclostationarity (My Papers [5,6]) that I began here. It is largely taken from my doctoral work (download my dissertation here).
This is a long post. To make it worthwhile, I’ve placed some movies of cyclic-cumulant estimates at the end. Or just skip to the end now if you’re impatient!
Recall that in the post introducing higher-order cyclostationarity, I mentioned that one encounters a bit of a puzzle when attempting to generalize experience with second-order cyclostationarity to higher orders. This is the puzzle of pure sine waves (My Papers ). Let’s look at pure and impure sine waves, and see how they lead to the probabilistic parameters widely known as cyclic cumulants.
Pictures are worth N words, and M equations, where N and M are large integers.
In this post I provide plots of the spectral correlation for a variety of simulated textbook signals and several captured communication signals. The plots show the variety of cycle-frequency patterns that arise from the disparate approaches to digital communication signaling. The distinguishability of these patterns, combined with the inability to distinguish based on the power spectrum, leads to a powerful set of classification (modulation recognition) features (My Papers [16, 25, 26, 28]).
There are three categories of signal types in this gallery: textbook signals, captured signals, and feature-rich signals. The latter comprises some captured signals (e.g., LTE) and some simulated radar signals. For the first two signal categories, the three-dimensional surface plots I’ve been using will suffice for illustrating the cycle-frequency patterns and the behavior of the spectral correlation function over frequency. But for the last category, the number of cycle frequencies is so large that the three-dimensional surface is difficult to interpret–it is a visual mess. For these signals, I’ll plot the maximum spectral correlation magnitude over spectral frequency versus the detected cycle frequency (as in this post).
Yes, the CSP Blog uses the simplest idealized cyclostationary digital signal–rectangular-pulse BPSK–to connect all the different aspects of CSP. But don’t mistake these ‘textbook’ signals for the real world.
What good is having a blog if you can’t offer a rant every once in a while? In this post I talk about what I call textbook signals, which are mathematical models of communication signals that are used by many researchers in statistical signal processing for communications.
We’ve already encountered, and used frequently, the most common textbook signal of all: rectangular-pulse BPSK with independent and identically distributed (IID) bits. We’ve been using this signal to illustrate the cyclostationary signal processing concepts and estimators as they have been introduced. It’s a good choice from the point of view of consistency of all the posts and it is easy to generate and to understand. However, it is not a good choice from the perspective of realism. It is rare to encounter a textbook BPSK signal in the practice of signal processing for communications.
I use the term textbook because the textbook signals can be found in standard textbooks, such as Proakis (The Literature [R44]). Textbook signals stand in opposition to signals used in the world, such as OFDM in LTE, slotted GMSK in GSM, 8PAM VSB with synchronization bits in ATSC-DTV, etc.
Typical communication signals combine a textbook signal with an access mechanism to yield the final physical-layer signal–the signal that is actually transmitted (My Papers , ). What is important for us, here at the CSP Blog, is that this combination usually results in a signal with radically different cyclostationarity than the textbook component. So it is not enough to understand textbook signals’ cyclostationarity. We must also understand the cyclostationarity of the real-world signal, which may be sufficiently complex to render mathematical modeling and analysis impossible (at least for me). (See also some relevant examples of real-world signals here and here.)
What factors influence the quality of a spectral correlation function estimate?
The two non-parametric spectral-correlation estimators we’ve looked at so far–the frequency-smoothing and time-smoothing methods–require the choice of key estimator parameters. These are the total duration of the processed data block, , and the spectral resolution .
For the frequency-smoothing method (FSM), an FFT with length equal to the data-block length is required, and the spectral resolution is equal to the width of the smoothing function . For the time-smoothing method (TSM), multiple FFTs with lengths are required, and the frequency resolution is (in normalized frequency units).
The choice for the block length is partially guided by practical concerns, such as computational cost and whether the signal is persistent or transient in nature, and partially by the desire to obtain a reliable (low-variance) spectral correlation estimate. The choice for the frequency (spectral) resolution is typically guided by the desire for a reliable estimate.
Cross correlation functions can be normalized to create correlation coefficients. The spectral correlation function is a cross correlation and its correlation coefficient is called the coherence.
In this post I introduce the spectral coherence function, or just coherence. It deserves its own post because the coherence is a useful detection statistic for blindly determining significant cycle frequencies of arbitrary data records. See the posts on the strip spectral correlation analyzer and the FFT accumulation method for examples.
In this post, we introduce the time-smoothing method (TSM) of SCF estimation. Instead of averaging (smoothing) the cyclic periodogram over spectral frequency, multiple cyclic periodograms are averaged over time. When the non-conjugate cycle frequency of zero is used, this method produces an estimate of the power spectral density, and is essentially the Bartlett spectrum estimation method. The TSM can be found in My Papers  (Eq. (54)), and other places in the literature.
The non-blind spectral-correlation estimator called the FSM is favored when one wishes to have fine control over frequency resolution and can tolerate long FFTs.
In this post I describe a basic estimator for the spectral correlation function (SCF): the frequency-smoothing method (FSM). The FSM is a way to estimate the SCF for a single value of cycle frequency. Recall from the basic theory of the cyclic autocorrelation and SCF that the SCF is obtained by infinite-time averaging of the cyclic periodogram or by infinitesimal-resolution frequency averaging of the cyclic periodogram. The FSM is merely a finite-time/finite-resolution approximation to the SCF definition.
One place the FSM can be found is in (My Papers ), where I introduce time-smoothed and frequency-smoothed higher-order cyclic periodograms as estimators of the cyclic polyspectrum. When the cyclic polyspectrum order is set to , the cyclic polyspectrum becomes the spectral correlation function, so the FSM discussed in this post is just a special case of the more general estimator in [6, Section VI.B].
We can estimate the spectral correlation function of one signal in the presence of another with complete temporal and spectral overlap provided the signal has a unique cycle frequency.
In this post I describe and illustrate the most important property of cyclostationary statistics: signal selectivity. The idea is that the cyclostationary parameters for a single signal can be estimated for that signal even when it is corrupted by strong noise and cochannel interferers. ‘Cochannel’ means that the interferer occupies a frequency band that partially or completely overlaps the frequency band for the signal of interest.
A mixture of received RF signals, whether cochannel or not, is accurately modeled by the simple sum of the signals, as in
where is additive noise. We can write this more compactly as
To contrast with HOCS, we’ll refer to second-order parameters such as the cyclic autocorrelation and the spectral correlation function as parameters of second-order cyclostationarity (SOCS).
The first question we might ask is Why do we care about HOCS? And one answer is that SOCS does not provide all the statistical information about a signal that we might need to perform some signal-processing task. There are two main limitations of SOCS that drive us to HOCS.
Spectral correlation in CSP means that distinct narrowband spectral components of a signal are correlated-they contain either identical information or some degree of redundant information.
Spectral correlation is perhaps the most widely used characterization of the cyclostationarity property. The main reason is that the computational efficiency of the FFT can be harnessed to characterize the cyclostationarity of a given signal or data set in an efficient manner. And not just efficient, but with a reasonable total computational cost, so that one doesn’t have to wait too long for the result.
Just as the normal power spectrum is actually the power spectral density, or more accurately, the spectral density of time-averaged power (or simply the variance when the mean is zero), the spectral correlation function is the spectral density of time-averaged correlation (covariance). What does this mean? Consider the following schematic showing two narrowband spectral components of an arbitrary signal:
Let’s define narrowband spectral component to mean the output of a bandpass filter applied to a signal, where the bandwidth of the filter is much smaller than the bandwidth of the signal.
The sequence of shaded rectangles on the left are meant to imply a time series corresponding to the output of a bandpass filter centered at with bandwidth Similarly, the sequence of shaded rectangles on the right imply a time series corresponding to the output of a bandpass filter centered at with bandwidth
Recall that our simulated rectangular-pulse BPSK signal has samples per bit, or a bit rate of , and a carrier offset of , all in normalized units (meaning the sampling rate is unity). We’ve previously selected a sampling rate of MHz to provide a little physical realism; let’s do that here too. This choice means the bit rate is kHz and the carrier offset frequency is kHz. From these numbers, we see that the non-conjugate cycle frequencies are kHz, and that the conjugate cycle frequencies are kHz, or kHz.
We’ll use this simple textbook signal throughout the CSP Blog to illustrate and tie together all the different aspects of CSP.
To test the correctness of various CSP estimators, we need a sampled signal with known cyclostationary parameters. Additionally, the signal should be easy to create and understand. A good candidate for this kind of signal is the binary phase-shift keyed (BPSK) signal with rectangular pulse function.
PSK signals with rectangular pulse functions have infinite bandwidth because the signal bandwidth is determined by the Fourier transform of the pulse, which is a sinc() function for the rectangular pulse. So the rectangular pulse is not terribly practical–infinite bandwidth is bad for other users of the spectrum. However, it is easy to generate, and its statistical properties are known.
So let’s jump in. The baseband BPSK signal is simply a sequence of binary ( 1) symbols convolved with the rectangular pulse. The MATLAB script make_rect_bpsk.m does this and produces the following plot:
The signal alternates between amplitudes of +1 and -1 randomly. After frequency shifting and adding white Gaussian noise, we obtain the power spectrum estimate:
The power spectrum plot shows why the rectangular-pulse BPSK signal is not popular in practice. The range of frequencies for which the signal possesses non-zero average power is infinite, so it will interfere with signals “nearby” in frequency. However, it is a good signal for us to use as a test input in all of our CSP algorithms and estimators.
The MATLAB script that creates the BPSK signal and the plots above is here. It is an m-file but I’ve stored it in a .doc file due to WordPress limitations I can’t yet get around.