The Spectral Correlation Function for Rectangular-Pulse BPSK

In this post, I show the non-conjugate and conjugate spectral correlation functions (SCFs) for the rectangular-pulse BPSK signal we generated in a previous post. The theoretical SCF can be analytically determined for a rectangular-pulse BPSK signal with independent and identically distributed bits (see My Papers [6] for example or The Literature [R1]). The cycle frequencies are, of course, equal to those for the CAF for rectangular-pulse BPSK. In particular, for the non-conjugate SCF, we have cycle frequencies of \alpha = k f_{bit} for all integers k, and for the conjugate SCF we have \alpha = 2f_c \pm k f_{bit}.

The simulated BPSK signal is used as input to the frequency-smoothing method of spectral correlation estimation (My Papers [6], The Literature [R1, R5]). The signal has bit rate of f_{bit} =  100 kHz and a carrier frequency of f_c =  50 kHz. (The simulated signal as a bit rate of 0.1 and a carrier offset of 0.05, and we have selected the somewhat arbitrary sampling rate of 1.0 MHz.) The result is shown below:

ww_scf

Figure 1. Estimated non-conjugate and conjugate spectral correlation surfaces for rectangular-pulse BPSK.

Only the non-negative cycle frequencies are shown for the non-conjugate SCF due to symmetry of the SCF.

The theoretical SCF formula can be numerically evaluated using the parameters of our rectangular-pulse BPSK signal, and the result is plotted below:

ww_ideal_scf

Figure 2. Theoretical non-conjugate and conjugate spectral correlation surfaces for rectangular-pulse BPSK. The formula for the spectral correlation function for a continuous-time BPSK signal is numerically evaluated to form the surfaces.

The match is excellent!

At this point, we have generated a useful test signal, defined the basic temporal and spectral second-order parameters of cyclostationary signals, and shown that our formulas and estimates match for the test signal. We are prepared to begin study of more complex mathematical topics and, perhaps most usefully, study of the cyclostationarity properties of sophisticated real-world signals.

Comparison to a Bandwidth-Efficient BPSK Signal

The rectangular-pulse BPSK signal has infinite bandwidth, and so theoretically has an infinite number of cycle frequencies. But most of them correspond to spectral correlation functions with very small maximum magnitudes. Most BPSK signals we’re likely to encounter in practice will be bandwidth-efficient signals, meaning their occupied bandwidth is not more than twice their symbol rate. A common pulse function is the square-root raised-cosine pulse, which is characterized by the pulse roll-off parameter r \in [0, 1]. For r=0, the occupied bandwidth of the signal is equal to the symbol rate, and the power spectrum for the signal is a rectangle. For r=1, the occupied bandwidth is twice the symbol rate, and the power spectrum smoothly varies from its peak to zero. See my post on the cyclostationarity of SRRC QAM/PSK signals for a lot more details. Also see the post on digital QAM and the gallery post.

Here, we’ll just compare to a single SRRC BPSK signal with r = 0.3:

ww_scf

Figure 3. Estimated non-conjugate and conjugate spectral correlation surfaces for bandwidth-efficient BPSK. Note that this version of BPSK has far fewer cycle frequencies than the rectangular-pulse version.

15 thoughts on “The Spectral Correlation Function for Rectangular-Pulse BPSK

  1. Sorry for the late reply. The code that plots my SCFs and CAFs strongly depends, of course, on the format of the SCF or CAF to be plotted. We haven’t covered estimators yet. But if you can get your estimates or ideal functions in matrix form, so that each SCF estimate, for example, corresponds to all frequencies [-0.5, 0.5) regardless of the value of cycle frequency, then you can use waterfall.m in MATLAB to get plots similar to mine:

    h = waterfall (fnc(1:subsamp:end)*fs/fsFac + fcarrier/fsFac, …
    anc*fs/asFac, …
    ((abs(ync(:, 1:subsamp:end)))), zeros(size(ync(:, 1:subsamp:end))));
    set (h, ‘edgecolor’, [0 0 0]);
    set (h, ‘facecolor’, [0.9 0.9 0.95]);
    grid on;
    axis tight;
    xlabel (‘f (Hz)’);
    ylabel (‘\alpha (Hz)’);

    Here fnc is the frequency vector, anc is the cycle-frequency vector, and the function to be plotted is the matrix ync. The extra zeros in the waterfall.m call force the color of the edges to be black, then I color the faces with the set() calls.

    The subsamp integer controls how much I subsample the various functions, which is usually needed because MATLAB takes a long time to plot the surface if the sizes of fnc and anc are large.

    I usually have to play around with the viewing angle when doing three-dimensional plots. For these plots I used

    view (-150, 30);

    Does that help?

  2. Hi Chad, Thank you for your blog. Here you mentioned that a rectangular pulse has infinite bandwidth. My question is only somewhat relevant but I thought I could use your help. I am interested in what happens to the autocorrelation of a random process when it is passed through a Heaviside step function. In other words, how is the autocorrelation of the input noise related to the autocorrelation of the output rectangular binary waveform.

    I found a relationship for the mean-squared bandwidths when a correlated random processes is transmitted through a nonlinearity in equation 11 of this paper: https://ieeexplore.ieee.org/abstract/document/1054033
    Namely, this equation relates the mean-squared bandwidth of the output process to that of the input process. However, the term g’^2, where g’ is the derivative of the nonlinearity, is problematic given that the derivative of the step function is the dirac delta function and we end up with the delta function squared (maybe this is a consequence of the fact that a rectangular waveform has infinite bandwidth, as you pointed out).

    Do you by any chance know how one can relate the autocorrelation function of a stochastic process to the autocorrelation of a rectangular waveform which is created by applying the Heaviside step function at every point of the input stochastic process?

    Many thanks for your help!

    • Riemannk: Thanks so much for stopping by the CSP Blog!

      I think we can get close to an answer to your question, but first I think it is not sufficiently precise. In particular, can you please define “is passed through a Heaviside step function.” “passed through” is not clear. I have an idea of what you mean, but I don’t want to go with it until I’m sure. If it is more convenient to describe what you mean using pictures, go ahead and email me at cmspooner@ieee.org and I’ll insert them in this comment thread. I can’t get WordPress to allow readers to add images to comments … yet. Some people post their pictures to imgur.com, but I’m happy to insert here.

  3. Chen says:

    Hi Chad
    Why is the region of support in the bifrequency plane for the theoretical spectral correlation surfaces for a rectangular-pulse BPSK signal not the diamond region? While the frequency-smoothing method of spectral correlation estimation of the rectangular-pulse BPSK signal is the diamond region.
    On the other hand, a rectangular-pulse BPSK signal is a band-pass signal. So there should be four diamond region in the bifrequency plane. It means that you did not plot all regions, right?

    • Why is the region of support in the bifrequency plane for the theoretical spectral correlation surfaces for a rectangular-pulse BPSK signal not the diamond region?

      I’ve updated the post to add captions to the figures. I think you are asking why the diamond-shaped principal domain for the spectral correlation function is not visible in the theoretical plots of Figure 2, but it is visible in the estimated plots of Figure 1. The reason is that the theoretical surfaces arise from the numerical evaluation of a spectral correlation function formula for a continuous-time BPSK signal, and so the formula is valid for all f and \alpha–there is no principal domain in continuous time.

      On the other hand, a rectangular-pulse BPSK signal is a band-pass signal. So there should be four diamond region in the bifrequency plane.

      I use complex-valued signals in the CSP blog. So, no, the signal I’m processing here is not a bandpass signal. It is a low-pass complex-envelope signal. Instead of four diamonds in the f\alpha plane, we use two separate planes: the non-conjugate and conjugate.

Leave a Reply