The spectral correlation density (SCD), sometimes also called the cyclic spectral density or spectral correlation function, is a function that describes the cross-spectral density of all pairs of frequency-shifted versions of a time-series. The spectral correlation density applies only to cyclostationary processes because stationary processes do not exhibit spectral correlation. Spectral correlation has been used both in signal detection and signal classification. The spectral correlation density is closely related to each of the bilinear time-frequency distributions, but is not considered one of Cohen's class of distributions.
Definition.
The cyclic auto-correlation function of a time-series formula_1 is calculated as follows:
formula_2
where (*) denotes complex conjugation. By the Wiener–Khinchin theorem [questionable, discuss], the spectral correlation density is then:
formula_3
Estimation methods.
The SCD is estimated in the digital domain with an arbitrary resolution in frequency and time. There are several estimation methods currently used in practice to efficiently estimate the spectral correlation for use in real-time analysis of signals due to its high computational complexity. Some of the more popular ones are the FFT Accumulation Method (FAM) and the Strip-Spectral Correlation Algorithm. A fast-spectral-correlation (FSC) algorithm has recently been introduced.
FFT accumulation method (FAM).
This section describes the steps for one to compute the SCD on computers. If with MATLAB or the NumPy library in Python, the steps are rather simple to implement. The FFT accumulation method (FAM) is a digital approach to calculating the SCD. Its input is a large block of IQ samples, and the output is a complex-valued image, the SCD.
Let the signal, or block of IQ samples, formula_4 be a complex valued tensor, or multidimensional array, of shape formula_5, where each element is an IQ sample. The first step of the FAM is to break formula_4 into a matrix of frames of size formula_7 with overlap.
formula_8
where formula_9 is the separation between window beginnings. Overlap is achieved when formula_10. formula_11 is a tensor of shape formula_12, and formula_13 depends on how many frames were able to fit in formula_4.
Next a windowing function formula_15 of shape formula_16, like the Hamming window, is applied to each row in formula_11.
formula_18
where formula_19 is element-wise multiplication. Next the FFT is taken on each row in formula_20
formula_21
formula_22 is commonly known as the waterfall plot, or spectrogram. The next step in the FAM is for the phase to be corrected from delay of the FFTed frames.
formula_23
where formula_24 is a tensor of shape formula_25 corresponding to each digital frequencies in the FFTs
formula_26
Next the FFTs are autocorrelated to create a tensor formula_27 of shape formula_28.
formula_29
where formula_30 denotes complex conjugate. In other terms, if we let formula_31 be a matrix of shape formula_32, we can rewrite formula_33 as
formula_34
where H denotes Hermitian (conjugate and transpose) of a matrix. The next step is to take the FFT of formula_33 along the first axis.
formula_36
formula_37 is the full SCD, but in the shape of a 3-dimensional tensor. What we aim for is a 2-dimensional tensor formula_38 (a matrix or image) of shape formula_39 where each entry corresponds to a particular frequency formula_40 and cyclic frequency formula_41. All values of formula_41 in formula_37 can be arranged in the tensor formula_44, and all values of formula_40 in formula_37 in the tensor formula_47. Here, formula_48 and formula_49 are normalized frequencies.
formula_50
formula_51
where formula_52. Now the SCD image formula_38 can be arranges in the form of a matrix with zeros where there are no values for a particular formula_54 pair in formula_37, and entries from formula_37 where it is valid as per formula_44 and formula_47.
Estimating the SCD by skipping the second FFT.
The full SCD is a rather large and computationally complex, mostly due to the second round of FFTs. Fortunately, from formula_37 an estimate formula_60 of the SCD can be calculated as
formula_61
For even less computational complexity, we can compute formula_62 as
formula_63
because averaging all values in an FFT window before or after an FFT are equivalent. Note that formula_62 will look like a 45 degree rotated version of the true SCD formula_65.
References.
 ;templatestyles src="Reflist/styles.css" / ;