2.11 Advanced: PSDs of Digitally Modulated Baseband Signals
The next paragraphs concern the PSDs of PAM and some line codes. Some of the results are valid for other modulations but this section focuses on baseband, linear and memoryless modulations.13 Modulations that use upconversion to create a passband signal are discussed in Chapter 3, which discusses QAM. Besides, most of the results are valid for linear modulations described by Eq. (2.29), but PAM is assumed for simplicity.
The model adopted here for generating a continuous-time line code is the following:
| (2.24) |
Basically, the PAM generation of Block (2.15) is expanded with the “random phase” from Block (A.89). Similarly, the discrete-time version of a line code can be obtained from Block (2.16) and Block (A.84).
Recall that PSDs are defined only for WSS random processes. The need for the “random phase” block is that is not WSS, but wide-sense cyclostationary (WSC). In this case, its autocorrelation depends not only on the “lag” but on the absolute time too, and the PSD cannot be obtained via a Fourier transform of such bidimensional autocorrelation as for WSS processes (see Figure A.32). Randomizing the phase is a well-known procedure to transform a WSC process into a WSS, as discussed in Appendix A.19.5 without resorting to advanced mathematics.14
Block (2.24) indicates that a discrete-time signal representing the symbols is converted to a sampled signal and later, when the symbols are represented by , they are convolved with the shaping pulse to obtain the modulated signal . The goal is to find an expression for the PSD of (or in discrete-time).
Table 2.3 summarizes some PSD expressions for linear and memoryless baseband modulations. It can be noted that these PSDs are primarily imposed by the shaping pulse (or ), but the symbols also influence the spectrum via their autocorrelation .
Continuous-time (CT): general expression | |
CT for uncorrelated & zero-mean symbols | |
Discrete-time (DT): general expression | |
DT for uncorrelated & zero-mean symbols | |
In Table 2.3, is the symbol interval, is the Fourier transform of the shaping pulse , is the average constellation energy, is the DTFT of the shaping pulse and is the oversampling factor.
The general PSD expression for continuous-time in Table 2.3 correspond to using (see Section F.7.1) , where and is given by Eq. (A.92). Similarly, the discrete-time version uses Eq. (A.88).
These two PSD expressions can be simplified in the case the autocorrelation of the transmit symbols is non-zero only at the origin, i. e., . This corresponds to uncorrelated and zero-mean symbols (recall from Eq. (C.50) that for ), which lead to a white PSD. More specifically, this case leads to the simplified expressions in Table 2.3 because , where is the constellation average energy given by Eq. (C.69).
As mentioned, Table 2.3 illustrates the dependence of the PSD of the transmit signal on two factors:
- the spectral characteristics of the shaping pulse via ;
- the spectral characteristics of the pre-coded information sequence via the DTFT of .
Hence there are two opportunities to control the PSD of the transmit signal.
2.11.1 Examples of PSDs
This section discusses few PSD examples. The Fourier transform of a rectangular with amplitude and support given by Eq. (A.50) is a useful result for these examples. In this case, . When is the mentioned rectangular pulse, one just needs to calculate for the signal of interest. Here, the random sequence is assumed to be composed by independent and equiprobable symbols. In this situation, it is interesting to contrast the case the symbols have zero-mean or not. This is done in the sequel using a polar and unipolar line codes, respectively.
Example 2.2. PSD of NRZ polar and unipolar line codes. The polar and unipolar line codes are discussed in Example A.6, where their autocorrelations are obtained. Similar procedure is repeated here. For the polar code with symbols , the autocorrelation at is . For calculating , consider the product of all possible pairs of symbols: , which leads to and with probability 0.5 each. Therefore and, similarly, . Hence, for the NRZ pulse with amplitude and polar symbols:
| (2.25) |
For the unipolar code, and averaging the products among all possible pairs leads to , for . Hence,
where the last step used Eq. (A.57) and the previous one incorporated the term corresponding to into the summation. When multiplying the previous expression by , it should be noted that all the impulses but the one at cancel with the nulls of the of (this happens for the NRZ ), leading to the PSD for the unipolar code:
Figure 2.17 shows the PSDs of both polar and unipolar NRZ line codes for signals with power of 1 W (i.e, amplitudes 1 and for polar and unipolar, respectively).
Note from Figure 2.17 that one fourth of the power of the unipolar code is concentrated at DC. Also, the only impulse for the unipolar code is at DC. The cancellation of impulses and nulls of the sinc is further discussed in Example 2.4.
Example 2.3. Comparing theoretical and estimated PSDs of the NRZ polar code. PSD estimation techniques such as Welch’s routine, discussed in Chapter E.19, can be used for evaluating the line codes in frequency domain. Figure 2.18 compares the PSDs from the theoretical expression Eq. (2.25) and an estimation for the NRZ polar code of Figure 2.15. The results were obtained with Listing 2.13.
1Rb=6; %symbols (bits in this case) per second 2Tsym=1/Rb; %symbol period 3N=100000; %number of symbols 4x=rand(1,N)>=0.5; %convert to 0 or 1 amplitudes 5x=2*(x-0.5); %convert to -1 or 1 amplitudes 6oversampling=8; %oversampling factor 7p=ones(oversampling,1); %mimics a NRZ pulse 8s=zeros(N*oversampling,1); %pre-allocates 9s(1:oversampling:end)=x; %s is the upsampling of x 10s=filter(p,1,s); %implements the convolution: s is the line code 11window=512; %window length 12noverlap=[]; %overlapping, [] for Octave and Matlab compatibility 13fftsize=window; fs=oversampling*Rb; 14%if you use below, the result is off by 3 dB: 15%[P,f]=pwelch(s,window,noverlap,fftsize,fs,'onesided'); 16[P,f]=pwelch(s,window,noverlap,fftsize,fs,'twosided'); 17f=f(1:window/2); %f is from 0 to fs... 18P=P(1:window/2); %keep only from 0 to fs/2 19plot(f,10*log10(P),'r'); %plot the estimated PSD 20polar=Tsym*sinc(f*Tsym).^2; % theoretical expression (A=1, B=1) 21polardB = 10*log10(polar); hold on, plot(f,polardB,'b-x')
Note from Figure 2.18 that in this case the nulls of the sinc are at frequencies that are multiples of the symbol rate bauds, as also indicated in Figure 2.17, which uses the ordinate in linear scale (while Figure 2.18 is in logarithmic scale).
Example 2.4. PSD of a RZ unipolar line code. Different from the NRZ unipolar code of Example 2.2, when the support of is shorter than (a RZ code), the impulses of the parcel in Eq. (2.26) may not be canceled by the zeros of the squared sinc of . The current example assumes a RZ pulse with amplitude and support from to . From Eq. (A.50), the Fourier transform of in this case is with nulls at frequencies multiple of while Eq. (2.26) has impulses spaced by . Combining with Eq. (2.26) leads to the following PSD for the RZ unipolar:
| (2.27) |
In this case, the PSD presents the impulses of Eq. (2.26) that are not located at frequencies multiple of . Figure 2.19 presents Eq. (2.27) for , bauds and , superimposed to the estimated PSD.
Note in Figure 2.19 that the peaks of the estimated PSD coincide with the impulses, but not with their areas. This is expected given that the infinite amplitude of the impulses is not realizable. Besides, the PSD value depends on the FFT bin width used in the estimation process. To highlight this dependence, Figure 2.20 was obtained with a PSD estimated via the same procedure that generated Figure 2.19 but with a smaller FFT bin width (1024 times smaller, which corresponds to dB).
Comparing Figure 2.19 and Figure 2.20, it can be seen that the PSD peaks corresponding to impulses increased by approximately 30 dB while the variance of the estimated PSD also increased significantly. This issue is discussed in Chapter E.19.
Example 2.5. Comparing theoretical and estimated PSDs of a PAM signal. A typical PAM constellation obeys the guidelines listed in Section 2.7.1. Consequently, the uncorrelated and zero-mean symbols lead to an autocorrelation that is non-zero only at lag , with this value coinciding with the constellation average energy. Hence, from Table 2.3, the PSD for such PAMs is
| (2.28) |
Listing 2.14 compares a theoretical curve for the PSD of a discrete-time PAM signal and an estimated PSD.
1M=16; %modulation order, number of distinct symbols 2N = 400000; % number of symbols 3L=8; %oversampling factor 4indices=floor(M*rand(1,N))+1; %random indices from [1, M] 5alphabet=[-(M-1):2:M-1]; %symbols ...,-3,-1,1,3,5,7,... 6Ec=mean(alphabet.^2); %constellation average energy 7symbols=alphabet(indices); %obtain M random symbols 8m_upsampled=zeros(1,N*L); %pre-allocate space with zeros 9m_upsampled(1:L:end)=symbols; %insert symbols, L-1 zeros in-between 10p=ones(1,L); %shaping pulse is a NRZ square waveform 11s=conv(m_upsampled,p); %convolve symbols with shaping pulse 12Fs = 2*pi; %normalized sampling frequency 13[SpamEstimated,f]=ak_psd(s,Fs); %find PSD in dBm/Hz 14Tsym=L/Fs; %the normalized symbol interval 15SpamTheoretical=Ec*Tsym*sinc(f*Tsym).^2; % theoretical expression 16clf; plot(f,SpamEstimated-30,f,10*log10(SpamTheoretical),'.-r'); 17xlabel('\Omega (rad)'); ylabel('PSD (dBW / normalized freq.)'); 18legend('Estimated','Theoretical'), axis([-pi pi -20 30]), grid
Figure 2.21 confirms that the modulation order of a PAM simply scales the PSD via , while the PSD shape (number of nulls, etc.) is imposed by the pulse .
Example 2.6. PSDs of binary ASK, FSK and PSK. The PSDs of ASK, FSK and PSK can be obtained from frequency upconversion of their corresponding baseband signals. This fact is discussed in this example.
Figure 2.22 illustrates the PSDs of all three modulations. The time-domain signals were obtained with ak_simpleBinaryModulation.m using a symbol rate of bauds.
In Figure 2.22, there are peaks at 500 Hz for ASK, 500 and 1500 for FSK and no peak for PSK. All these peaks correspond to impulses in the theoretical expressions (see Figure 2.17). Note that ASK and PSK are obtained from baseband unipolar and polar (NRZ) line codes. Similarly, the FSK can be seen as the sum of two unipolar signals that were previously multiplied by distinct carrier frequencies. Therefore, a PSK does not have an impulse in its PSD because it corresponds to an upconverted version of the NRZ polar. In contrast, ASK has one impulse at the carrier frequency and FSK has two impulses positioned at the respective two frequencies. This fact is emphasized in Figure 2.23 for PAM and ASK, in which ASK was generated by multiplying the PAM by a carrier with frequency Hz. In practice, due to the finite duration of the simulated signals, the theoretical ASK impulse shows up as a peak at Hz in the ASK PSD.
Figure 2.23 provides an example where the bitstream is [1 0 1 0 1 1 1 0]. The PAM uses oversampling and Hz. The ASK uses a carrier at rad, which corresponds to Hz. The PSDs were estimated with low frequency resolution but the effect of frequency upconversion can be easily noted.