6.6  Total Transmit Power Estimation

The goal here is to discuss relations between the power Pt of an analog signal and the power Pd of its digital counterpart. In practice, the analog front end circuitry (line driver, etc.) controls the relation PtPd. For simulation purposes, most of the times using the actual power of the analog signal is not important because only the SNR matters (as will be seen in Eq. (4.59), for example). In other words, a scaling power factor can be implicit in both signals and noises during the simulation if only their ratios are used. However, it is useful to have a clear understanding of how to manipulate power values in multicarrier systems.

For simplicity, it will be assumed that the adopted FFT is unitary, such that Parseval theorem is obeyed. Considering the signals in Figure 6.1, the unitary FFT allows to have the vectors Xk and xn with the same norm. The discussed operations are done in the digital domain (performed by a CPU) and it would remain to determine what is the time assumed for the existence of X and x when the analog signal is sent over the channel. For example, if x lasts for T seconds, its power can be assumed 𝔼[|x|2]∕T.

Note that the signal xp that is effectively sent to the channel is derived from vectors xp, which include the cyclic prefix and have larger norm than the respective xn. But it is assumed here that, on average, the vectors xn and xp lead to signals that have the same power. This way, it is sensible to consider that an element of Xk represents the average power in that specific frequency bin, taking into account the spectrum is bilateral and include negative frequencies. Listing 6.5 illustrates the calculations with a unitary FFT.

Listing 6.5: MatlabOctaveBookExamples/ex_multicarrier_parseval.m
1[A, Ai]=ak_fftmtx(8,1); %obtain unitary FFT matrices 
2xn=rand(8,1); %some arbitrary time-domain sequence as column vector 
3Xk=A*xn; %obtain its unitary DFT 
4xn_energyTime = sum(abs(xn).^2) %check Parseval between xn and Xk 
5Xk_energyFreq = sum(abs(Xk).^2) 
6xp=[xn(5:8); xn]; %add cyclic prefix of 3 samples 
7xp_powerTime = mean(abs(xp).^2) %check average power of xn, xp and Xk 
8xn_powerTime = mean(abs(xn).^2) 
9Xk_powerFreq = mean(abs(Xk).^2)

Hence, the “power” corresponding to Xk will impose the power of the discrete-time signal x[n] and, consequently, its continuous-time version x(t). Here, the assumption is that the power Pd of x[n] is the same as x(t), i. e., Pd = Pt.

For example, assume a DMT transmitting the symbols 5,3 + j,−2 using an FFT of N = 4 points. In this case, X = [5,3 + j,−2,3 − j] and the time-domain signal is obtained with:

1X = [5, 3+j, -2, 3-j] 
2x=sqrt(4)*ifft(X) 
3sum(abs(X).^2) 
4sum(x.^2)

where the sqrt(N) compensates the fact that the ifft function in Matlab/Octave is not unitary. As expected, the squared norms are the same, which in this case is 49. As mentioned, in DMT the DC and Nyquist frequencies are not used and the transmitter calculates the PSD of the tones that carry information (the negative frequency tones have their values obtained by Hermitian symmetry). Adjusting the previous example, consider that Xk = 3 + j is the symbol that carries information. This tone and its Hermitian lead to a time-domain signal with norm 20 and power Pd = 5 W, as indicated by

1X = [0, 3+j, 0, 3-j] 
2x=sqrt(4)*ifft(X) 
3mean(abs(X).^2) 
4mean(x.^2)

In summary, the cyclic prefix does not affect the power. It is assumed that Pt = Pd and Pd is not modified because the CP has the same average power as the other samples.

Sometimes, the available information in a DMT system are the PSD values per tone sk = PkΔf, where the tone frequency is Δf and Pk is the power per tone such that

Pd =k=0N−1P k.

Using estimation based on a single DMT symbol, P^k = |X[k]|2∕N and

P^d = 1 Nk=0N−1|X[k]|2 k=0N−1P k = Δfk=0N−1s k.

Because of the imposed Hermitian symmetry and assuming N is even, sk = sN−k,k = 1,…,N∕2 − 1, one can write

Pd =k=0N−1P k = P0 + PN∕2 + 2k=1N∕2−1P k.

As an example, assume Fs = 211.968 MHz and a tone interval Δf = 51.75 kHz, as for the G.fast standard. Assume also that all tones are used with a flat transmit PSD of Pk = −76 dBm/Hz. Note that the convention is to assume the PSD is unilateral (or one-sided), not bilateral. For example, if it were white noise, one would use the notation N0 = −76 dBm/Hz (not N0∕2 = −76 dBm/Hz), which corresponds to N0 = 2.5119 × 10−11 W/Hz. Recall that Pd = BW ×N0 and BW = Fs∕2, such that a first-order estimate is Pd = 2.66 mW. Assuming that only K = 2004 tones are used, an estimate of Pd = 2.60 mW and the generation of a signal with this power is obtained as in Listing 6.6.

Listing 6.6: MatlabOctaveCodeSnippets/snip_multicarrier_power_calculation.m
1N=4096; %FFT size 
2K=2004; %# tones that can be used 
3Fs = 211.968e6; %sampling frequency 
4BW = Fs/2; %bandwidth 
5sk_dB = -76 %PSD (dBm/Hz) 
6sk = 10^(0.1*sk_dB)*1e-3 %PSD (W/Hz) 
7deltaF = 51.75e3; %tone spacing 
8Pk = sk * deltaF; %power at tone k 
9Pd1=BW * sk *1000 %first order Tx power estimation (mW) 
10Pd2=K*sum(Pk)*1000 %more realistic Tx power estimation (mW) 
11%% just to play with signal generation 
12X=sqrt(Pd2)*randn(1,N); %generate random signal with given power 
13x=sqrt(N)*ifft(X); %go to time-domain 
14mean(abs(X).^2) %compare the squared norms 
15mean(abs(x).^2)

Hence, in general, assuming the PSD per tone (only non-negative frequencies) is available on an array psd in mW/Hz, one can obtain the total power with

1disp('Total power (in mW) per user:') 
2sum(psd)*deltaF %calculate the total transmitted power

where deltaF is in Hz.