I am trying to determine whether or not a given signal has been corrupted by Gaussian noise, either bandlimited (with a filter) or not. The signal in question is a BPSK or PAM signal that is upsampled and shaped by a Nyquist filter and then frequency modulated. Due to the signal being cyclostationary, I figured the best way was to use the Cyclic Autocorrelation but I am having a hard time understanding how to code it up in Matlab. This paper shows shifting the FT by some frequency $\alpha$ and then doing $F^{-1}(X(f-\alpha)*X'(f + \alpha))$ where $F^{-1}(\cdot)$ denotes the inverse DFT operation. Would I be able to just multiply it in time by a complex exponential at frequency $\alpha$ or is there more to it? Is this a valid approach or am I on a goose chase?



You're on the right track. The cyclic autocorrelation can be estimated by inverse Fourier transformation of the cyclic periodogram. If $X_T(t, f)$ is the Fourier transform of your data block (indexed by time $t$), and $\alpha$ is your desired cycle frequency, you can form the cyclic periodogram by shifting the Fourier transform to the left and to the right by $\alpha/2$ (not by $\alpha$ as you state in your question):

$$I_x^\alpha(t, f) = \frac{1}{T} X_T(t, f+\alpha/2) X_T^*(t, f-\alpha/2)$$

Then just inverse Fourier transform that cyclic periodogram. You'll have to be careful about the case where the cycle frequency $\alpha$ is not equal to an integer number of FFT bins.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.