Spectral correlation density

From HandWiki
Revision as of 18:19, 6 February 2024 by LinuxGuru (talk | contribs) (fix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.[1] Spectral correlation has been used both in signal detection and signal classification.[2][3] 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 [math]\displaystyle{ x(t) }[/math] is calculated as follows:

[math]\displaystyle{ R_x^\alpha(\tau) = \int_{-\infty}^\infty x\left(t - \frac \tau 2\right)x^*\left(t + \frac \tau 2 \right) e^{-i2\pi\alpha t} \, dt }[/math]

where (*) denotes complex conjugation. By the Wiener–Khinchin theorem [questionable, discuss], the spectral correlation density is then:

[math]\displaystyle{ S_x^\alpha(f) = \int_{-\infty}^\infty R_x^\alpha(\tau) e^{-i2\pi f\tau} \, d\tau }[/math]

Estimation methods

SCD Estimate of Common Communications Signals

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.[4] A fast-spectral-correlation (FSC) algorithm[5] 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, [math]\displaystyle{ x }[/math] be a complex valued tensor, or multidimensional array, of shape [math]\displaystyle{ (N,) }[/math], where each element is an IQ sample. The first step of the FAM is to break [math]\displaystyle{ x }[/math] into a matrix of frames of size [math]\displaystyle{ N' }[/math] with overlap.

[math]\displaystyle{ X = \begin{bmatrix} x[0:N'] \\ x[L:L+N'] \\ x[2L:2L+N']\\ x[3L:3L+N']\\ .\\ . \\ . \end{bmatrix} , }[/math]

where [math]\displaystyle{ L }[/math] is the separation between window beginnings. Overlap is achieved when [math]\displaystyle{ L\lt N' }[/math]. [math]\displaystyle{ X }[/math] is a tensor of shape [math]\displaystyle{ (P,N') }[/math], and [math]\displaystyle{ P }[/math] depends on how many frames were able to fit in [math]\displaystyle{ x }[/math].

Next a windowing function [math]\displaystyle{ a(N') }[/math] of shape [math]\displaystyle{ (N',) }[/math], like the Hamming window, is applied to each row in [math]\displaystyle{ X }[/math].

[math]\displaystyle{ X' = \begin{bmatrix} a(N') \\ a(N') \\ a(N') \\ . \\ . \\ . \\ \end{bmatrix} \otimes X , }[/math]

where [math]\displaystyle{ \otimes }[/math] is element-wise multiplication. Next the FFT is taken on each row in [math]\displaystyle{ X' }[/math]

[math]\displaystyle{ W = \begin{bmatrix} FFT(X[0,:]) \\ FFT(X[1,:]) \\ FFT(X[2,:]) \\ . \\ . \\ . \\ \end{bmatrix} . }[/math]

[math]\displaystyle{ W }[/math] 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.

[math]\displaystyle{ W' = \begin{bmatrix} W[0,:] \\ e^{j\omega L}\otimes W[1,:] \\ e^{j\omega 2L}\otimes W[2,:] \\ e^{j\omega 3L}\otimes W[3,:] \\ . \\ . \\ . \\ \end{bmatrix} , }[/math]

where [math]\displaystyle{ \omega }[/math] is a tensor of shape [math]\displaystyle{ (N',) }[/math] corresponding to each digital frequencies in the FFTs

[math]\displaystyle{ \omega = \bigg[-\pi,...,\pi-\frac{2\pi}{N'}\bigg] . }[/math]

Next the FFTs are autocorrelated to create a tensor [math]\displaystyle{ S }[/math] of shape [math]\displaystyle{ (P,N',N') }[/math].

[math]\displaystyle{ S[i,j,k] = W'[i,j]W'[i,k]^*, }[/math]

where [math]\displaystyle{ ^* }[/math] denotes complex conjugate. In other terms, if we let [math]\displaystyle{ W_i = W'[i,:] }[/math] be a matrix of shape [math]\displaystyle{ (1,N') }[/math], we can rewrite [math]\displaystyle{ S }[/math] as

[math]\displaystyle{ S[i,:,:] = W_i^HW_i , }[/math]

where H denotes Hermitian (conjugate and transpose) of a matrix. The next step is to take the FFT of [math]\displaystyle{ S }[/math] along the first axis.

[math]\displaystyle{ S'[:,i,j] = FFT(S[:,i,j]). }[/math]

[math]\displaystyle{ S' }[/math] is the full SCD, but in the shape of a 3-dimensional tensor. What we aim for is a 2-dimensional tensor [math]\displaystyle{ s }[/math] (a matrix or image) of shape [math]\displaystyle{ (PN',N') }[/math] where each entry corresponds to a particular frequency [math]\displaystyle{ f }[/math] and cyclic frequency [math]\displaystyle{ \alpha }[/math]. All values of [math]\displaystyle{ \alpha }[/math] in [math]\displaystyle{ S' }[/math] can be arranged in the tensor [math]\displaystyle{ A }[/math], and all values of [math]\displaystyle{ f }[/math] in [math]\displaystyle{ S' }[/math] in the tensor [math]\displaystyle{ F }[/math]. Here, [math]\displaystyle{ f \in [-.5,+.5) }[/math] and [math]\displaystyle{ \alpha \in [-1,+1) }[/math] are normalized frequencies.

[math]\displaystyle{ F[i,j,k] = \frac{j+k}{2N'} -.5 . }[/math]

[math]\displaystyle{ A[i,j,k] = \frac{j-k}{N'}+\bigg(i-\frac{P}{2}\bigg)\Delta \alpha. }[/math]

where [math]\displaystyle{ \Delta \alpha = 1/N }[/math]. Now the SCD image [math]\displaystyle{ s }[/math] can be arranges in the form of a matrix with zeros where there are no values for a particular [math]\displaystyle{ (f,\alpha) }[/math] pair in [math]\displaystyle{ S' }[/math], and entries from [math]\displaystyle{ S' }[/math] where it is valid as per [math]\displaystyle{ A }[/math] and [math]\displaystyle{ F }[/math].

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 [math]\displaystyle{ S' }[/math] an estimate [math]\displaystyle{ s' }[/math] of the SCD can be calculated as

[math]\displaystyle{ s' = \frac{1}{P}\sum_{i=0}^{P-1}S'[i,:,:]. }[/math]

For even less computational complexity, we can compute [math]\displaystyle{ s' }[/math] as

[math]\displaystyle{ s' = \frac{1}{P}\sum_{i=0}^{P-1}S[i,:,:], }[/math]

because averaging all values in an FFT window before or after an FFT are equivalent. Note that [math]\displaystyle{ s' }[/math] will look like a 45 degree rotated version of the true SCD [math]\displaystyle{ s }[/math].

References

  1. Gardner, W.A. (1986-10-01). "Measurement of spectral correlation". IEEE Transactions on Acoustics, Speech, and Signal Processing 34 (5): 1111–1123. doi:10.1109/TASSP.1986.1164951. ISSN 0096-3518. 
  2. Yoo, Do-Sik; Lim, Jongtae; Kang, Min-Hong (2014-12-01). "ATSC digital television signal detection with spectral correlation density". Journal of Communications and Networks 16 (6): 600–612. doi:10.1109/JCN.2014.000106. ISSN 1229-2370. 
  3. Hong, S.; Like, E.; Wu, Zhiqiang; Tekin, C. (2010-01-01). "Multi-User Signal Classification via Spectral Correlation". 2010 7th IEEE Consumer Communications and Networking Conference. pp. 1–5. doi:10.1109/CCNC.2010.5421830. ISBN 978-1-4244-5175-3. 
  4. Roberts, R.S.; Brown, W.A.; Loomis, H.H. (1991-04-01). "Computationally efficient algorithms for cyclic spectral analysis". IEEE Signal Processing Magazine 8 (2): 38–49. doi:10.1109/79.81008. ISSN 1053-5888. Bibcode1991ISPM....8...38R. 
  5. Borghesani, P.; Antoni, J. (October 2018). "A faster algorithm for the calculation of the fast spectral correlation". Mechanical Systems and Signal Processing 111: 113–118. doi:10.1016/j.ymssp.2018.03.059. ISSN 0888-3270. Bibcode2018MSSP..111..113B. 

Further reading

  • Napolitano, Antonio (2012-12-07). Generalizations of Cyclostationary Signal Processing: Spectral Analysis and Applications. John Wiley & Sons. ISBN:9781118437919.
  • Pace, Phillip E. (2004-01-01). Detecting and Classifying Low Probability of Intercept Radar. Artech House. ISBN:9781580533225.