You are on page 1of 5

Higher Order Cyclostationarity

October 10, 2022

1 Motivation
Suppose x(t) is a cyclostationary signal. This means that the correlation
fuction

E(x(t + τ )x(t)∗ ), (1)

is an almost periodic function in t and one can expand


X
E(x(t + τ )x(t)∗ ) = Rxα (τ )e2iπαt , (2)
α

The parameter α runs over a countable set and this set is called the set
of cycle frequencies. The cycle frequencies of a signal contain information
about important inherent periodicities of the signal like chip rate in the case
of spread spectrum signals, and the cycle prefix in the case of OFDM signals.
If we remove the conjugate in these equations, the resulting function, called
the conjugate cyclic autocorrelation function, is again almost periodic, and
the cycle frequencies in this case tell us about the carrier frequency.
While this is sufficient for most cases of interest, second order cyclosta-
tionarity does not distinguish between same modulation signals which have
different mod orders, like 8QAM, 16QAM, 64QAM, 256QAM. In other words,
the conjugate and non-conjugate cycle frequency sets are identical for these
signals. Thus, distinguishing these signals using cyclostationary analysis calls
for applying higher than quadratic non-linearities to the input signal.

1
2 Pure and Impure Sine waves
The statement at the conclusion of the previous section just means that we
consider functions like

E(x(t + τ1 )x(t + τ2 )x(t + τ3 ) (3)

E(x(t + τ1 )x(t + τ2 )x(t + τ3 )x(t + τ4 )) (4)

One can then naively conclude that one needs to simply compute these func-
tions look at their FFT wrt t as a function of τi .
The reason why this is simplistic is to consider the following case :

x(t) = c1 e2iπα0 t + c2 e2iπα1 t (5)

The main point of complication is that ’the product of sine waves is a sine
wave’. This means that if a signal is second order cyclostationary, which
means that multiplying the signal to itself produces finite strength sine waves,
then, one can multiply these sine waves together to obtain finite strength
additive sine waves at the quartic order!
Thus, a portion of the sine waves at quartic order are actually due to the
sine waves at the quadratic order. But we just saw that they do not give
discriminating information that we want.
Thus, in order to analyse the sine waves that are present purely at quartic
order, one needs to subtract these lower order sine waves first. The mathe-
matical apparatus that helps us do this is the cumulant. Hence, what we are
interested in higher order cyclostationarity are not the moment functions,
but the cumulant functions. These cumulants are defined identically as in
probability theory.

3 Moment to Cumulant formula


One can prove the following formula for a cumulant in terms of moments and
cumulants at strictly lower order. Define the moment function
n
!
Y
Rx (t, τ , b) = E x(∗i ) (t + τi ) (6)
i=1

2
Here the ∗ represent optional conjugation. The boolean vector b has its i-th
element 0 if x(t + τi ) occurs without conjugation in the above function and
its 1 otherwise.
For a finite set G, a partition {νj } is a collection of subsets of G such that
∪ i νi = G νi ∩ νj = φ i 6= j (7)
Then, one can show
X Y
Cx (t, τ , b) = Rx (t, τ , b) − Cx (t, τ p , bp ) (8)
P 6=[n] p∈P

To explain the notation, in the second term above we sum over all possible
partitions P of the set [n] = {1, 2, · · · , n}. The condition P 6= [n] means
that we drop the trivial partition that is the whole set [n].
The notation τ p means that if the subset p ∈ P is such that p =
{i1 , · · · , ik }, then, τ p = (τi1 , · · · , τik ). Similarly for bp
Thus, the cumulant at order n above is represented as the subtraction of
all lower order cumulants from the moment function. Thus, by induction,
one can see that Cx (t, τ , b) contains no sine wave due to lower orders of
cyclostationarity.

4 Moment to Cumulant algorithm


4.1 Enumeration of partitions
In order to devise an algorithm to compute the n-th order cumulant, one
needs an algorithm to enumerate all possible partitions of the set [n]. We
steal this algorithm from an as yet unpublished book chapter by D.E. Knuth
and it goes as follows.
One first notes that any partition P of [n] induces as equivalence relation
on [n] given by
j ≡ k ⇐⇒ j ∈ νi and k ∈ νi (9)
for some νi ∈ P .
Next, one can show that a partition P of [n] may be represented by a
restricted growth string [a1 , · · · , an ] which is a string of integers satisfying
aj+1 ≤ 1 + max(a1 , · · · , aj ). With this notation, we can easily show that
aj = ak ⇐⇒ j ≡ k (10)

3
for every j, k ∈ [n]. Thus, an enumeration of partitions of [n] is equivalent
to the enumeration of restricted growth strings of length n. The following is
the pseudocode for this eumeration in lexicographical order.

1. Initialize a = a1 a2 ... an = 0000· · · 0


2. Initialize b = b1 b2 ... bn-1 = 1111· · · 1 (n-1 times)
3. Initialize m = 1
4. Visit the restricted growth string a. Go to step 6 if an = m
5. Increment an = an + 1 and return to step 4.
6. Set j = n-1; Then, while aj = bj, set j=j-1
7. Terminate if j=1. Else, set aj = aj + 1
8. Set m = bj + 1 if aj = bj else m = bj and also set j = j + 1.
While j < n set aj = 0, bj = m, j = j + 1. Finally set an=0 and
go back to step 4

4.2 Cumulant estimation algorithm


We give a recursive algorithm to evaluate Eq.(3) at arbitrary orders and
arbitrary lagvectors τ . This is a slight modification of the algorithm given
in [1] to make the coding easier. We maintain a C++ hash map named
cumulants whose keys are a std::vector which are the lags, and the values
are a std::vector which are the corresponsing cumulant time series.
The function accepts arguments Input which are the input time series,
positions which are the lags, conjugations which are the set which specify
the conjugation order. The hash map cumulants is passed by reference so
that the function can modify it recursively.
form cumulant evaluation(Input, positions, conjugations, cumulants)
1. If the map cumulants contains the key positions then dont do any-
thing. Else proceed (This is one of the base cases).
2. Define a variable precumulant.
3. If the length of positions is one, then set precumulant = lagproduct
(This is the second base case). Proceed to step 9.

4
4. If the length of positions is more than one, then, form all the par-
titions of the set [n] where n > 1 is the length of positions. Form
the subsets of positions and conjugations corresponding to each
partition. Keep a record of these subsets.

5. For each partition found in the previous step (whose size > 1) recur-
sively call form cumulants with the arguments (input, new positions,
new conjugations, cumulants), where new positions, new conjugations
are each of the subsets found above.

6. The previous recursive step ensures that the appropriate cumulant time
series for the subsets found in step 4. have been added to the map
cumulants.

7. Perform a product of the values of the map cumulants corresponding


to the subsets found in step 4.

8. Sum the quantity found in the previous step over all the partitions
found in step 4. Set precumulant = lagproduct - sum

9. Take the FFT of the precumulant, threshold it and obtain the fre-
quencies corresponding to the lag in positions. Optionally store these
frequencies. These are the pure n-th order frequency estimates corre-
sponding to this lag vector.

10. Do an inverse FFT over just these frequencies. This is the cumulant
corresponding to this lag. Call it current cumulant.

11. Set cumulants[positions] = current cumulant.

References
[1] C. M. Spooner and W. A. Gardner, ”The cumulant theory of cyclosta-
tionary time-series. II. Development and applications,” in IEEE Trans-
actions on Signal Processing, vol. 42, no. 12, pp. 3409-3429, Dec. 1994,
doi: 10.1109/78.340776.

You might also like