6.8 Applications
Application 6.1. Find power and bitloading using waterfilling. (version A: without PAMs) Assume a DMT system with a FFT size and design the power and bitloading such that the total transmit power is equal to 20.4 dBm. Use the rate-adaptive version of waterfilling to maximize rate under the power constraint. The gap must be dB and the noise at the receiver is AWGN with dBm/Hz. Do not use the two PAM tones. The estimated channel is (the small channel gains were used to allow results close to the real world). The symbol rate is kHz. Provide: a) a plot of the channel frequency response, b) the signal-to-noise ratio per tone, c) the number of bits per tone assuming this number can be non-integer, d) the margin in dB associated with item c), e) the number of bits per tone assuming the largest integer not greater than in item c), f) the margin in dB associated with item e), g) by how many dB can the (tone with the first one being ) decrease before the error probability becomes lower than the specified by the gap ? h) what is the rate in bps assuming the bit loading of item e)?2
Application 6.2. G.fast: the new DSL standard. This application discusses G.fast, the new ITU-T standard for transmission over copper pairs. It uses TDD instead of FDD as most of its precursors, and the G.fast development has been organized into defining two profiles, with bandwidths of 100 and 200 MHz. The 100 MHz profile will be concluded in the end of 2013.
ADSL | VDSL | G.fast | G.fast | |
(Profile17a) | (100 MHz) | (200 MHz) | ||
FFT size | 512 | 8192 | 4096 | 8192 |
Cyclic prefix length | 40 | 640 | 128 to 1056 | TBD |
Cyclic suffix length | - | - | 64 or 128 | TBD |
Number of tones () | 256 | 4096 | 2048 | 4096 |
(MHz) | 2.208 | 35.328 | 211.968 | 423.936 |
Bandwidth (MHz) | 1.104 | 17.664 | 105.984 | 211.968 |
DMT symbol rate (kHz) | 4.0 | 4.0 | 41.142 to 50.181 | TBD |
Tone spacing (kHz) | 4.3125 | 4.3125 | 51.75 | |
Max. Tx power (US and DS) | - | - | 4 dBm (2.512 mW) | TBD |
m | CP (s) | (kHz) | (%) | |
4 | 128 | 0.6 | 50.182 | 3.03 |
8 | 256 | 1.2 | 48.706 | 5.88 |
10 | 320 | 1.5 | 48.000 | 7.24 |
12 | 384 | 1.8 | 47.314 | 8.57 |
14 | 448 | 2.1 | 46.648 | 9.86 |
16 | 512 | 2.4 | 46.000 | 11.11 |
20 | 640 | 3.0 | 44.757 | 13.51 |
24 | 768 | 3.6 | 43.579 | 15.79 |
30 | 960 | 4.5 | 41.924 | 18.99 |
33 | 1056 | 4.98 | 41.143 | 20.50 |
Table 6.1 provides the currently agreed values for G.fast (these values will not change) and, for comparison, a list of standardized parameters for DMT transmission over DSL. Previous DSL standards adopt Hz. Using Eq. (6.13), one can calculate that MHz for ADSL and MHz for VDSL. For ADSL and VDSL the ratio is the same, and using Eq. (6.15) one gets kHz for both. In contrast, G.fast specifies
where is an integer. The specific settings of and are exchanged during initialization. The code below lists the valid range for . The results are summarized in Table 6.2.
1N=4096; %FFT size 2Fs=211.968e6; %sampling frequency (Hz) 3m=[4, 8, 10, 12, 14, 16, 20, 24, 30, 33] 4L=m*N/128 %cyclic prefix length 5Rdmt = Fs./(N+L) %DMT symbol rate 6100*(1-(N./(N+L))) %overhead, considering only CP
A maximum of bits can be loaded and sub-carriers below 2.2 MHz cannot be used in G.fast. Because , the first 44 tones (from to 43) cannot be used and only 2004 tones can carry data and the maximum number of bits per DMT symbol in G.fast is . Adopting the shortest CP in Table 6.2 ( kHz) leads to a maximum gross rate of
or approximately Gbps.
Application 6.3. Writing SNR in terms of power or energy. As discussed in Section 2.7.8, when using unitary-energy basis functions, the average constellation energy coincides with the signal power. Hence, some texts specify SNR with respect to energy. For example, at [ url5cln], is the average energy , not power. This alternative nomenclature corresponds to assuming the reconstruction uses a filter with of unitary energy.
Assume the DAC converts the discrete-time signal into a continuous-time signal using a sample-and-hold. In this case, one can assume (power is equivalent to the average energy constellation). Assuming the tone bandwidth is , the transmit PSD at tone is , where is the average energy of the constellation used in tone . The correspondent received PSD is , where is the frequency response at tone . The signal-to-noise ratio is , where is the total filtered noise power at tone . The DFT demodulator works as a matched filter and each of its output has noise of per dimension. Therefore, if is the bilateral noise PSD, and:
for a QAM channel ( dimensions) and
for a PAM channel ( dimension).
Application 6.4. SVD channel partitioning. The CP can be interpreted as providing a guard interval to combat the channel dispersion, which otherwise would create intersymbol (or, in this case, interblock) interference. In fact, zero-valued samples can be also used to compose a guard interval. But using a CP allows to mimic the effect of a circular convolution while using the actual channel, which naturally implements a linear convolution. This section concerns yet another view, and shows that a DFT partitions a channel represented by a circulant matrix. First, singular value decomposition (SVD) is used and Application 6.5 discusses DFT partitioning.
Channel partitioning is the technique for dividing a channel such that it can be interpreted as a set of individual and independent parallel channels. Given a channel, a possible solution for channel partitioning is to find matrices that allow to convert the vector to be transmitted in such a way that the transformed symbols do not interfere with each other and the original symbols can be recovered at the channel output. A DFT obtains channels using distinct frequencies but SVD works differently.
Note that the SVD of a matrix of dimension provides a diagonal matrix and two unitary matrices and such that
| (6.18) |
where is , is and has the same dimension of . Note that and because the two matrices are unitary.
The number of symbols (PAM or QAM symbols) to be transmitted over the channel is . Hence, a vector of dimension with symbols must be transmitted through a LTI channel with impulse response and SVD will be used to partition the channel convolution matrix (e. g., obtained with convmtx). The result of the SVD decomposition of is used to design “modulation” and “demodulation” matrices, which multiply the transmit symbols and received samples , respectively. The role played by and is similar to the ones of the IDFT and DFT transforms in DMT, and the notation of lower and upper case letters for the “time” and “frequency-domain” vectors is also adopted here. In summary, the overall process is
The discussion assumes column (not row) vectors. For example, . The number of columns of can be chosen, while the number of rows is given by the length of .
To check that this scheme partitions the channel, from a given channel, use Eq. (6.18) to obtain the SVD decomposition . Then, using the previous block diagram note that
Hence, each transmit symbol from is multiplied by the corresponding element of the diagonal matrix , proving that the channel was properly partitioned in independent channels. Listing 6.7 implements an example of SVD-based transmission.
1%% Illustrates channel partitioning via SVD 2%h=[1 0.9]; %Impulse response of a simple channel H(z) = 1 + .9 z^-1 3h=[1+3j 0.9+4j 0.5+0.j 0.3]; %Example of a complex channel 4h=transpose(h); %force all vectors to be column vectors 5N=5; %chosen number of independent channels. Number of columns of H 6%X=transpose([1:N]); %An example of real transmit symbols 7X=transpose((1:N)+i*(N:-1:1)); %example of complex transmit symbols 8H=convmtx(h,N); %matrix to implement convolution 9[F,S,Mhermitian] = svd(H); %SVD decomposition 10M=Mhermitian'; %obs: ' obtains the Hermitian (conjugate transpose) 11x=M'*X %"modulate": x is the transmit signal 12y=conv(h,x); %pass x through channel 13Y=F' * y; %"demodulate" the channel output 14lambdas = diag(S); %lambdas are the singular values of H 15Y=Y(1:length(lambdas)); %ignore singular values that are zero 16Xp = Y ./ lambdas; %equivalent to "equalization" (FEQ) in DMT 17disp('Compare the received Xp with the transmitted symbols X'); X, Xp
The singular values are always real and correspond to channel gains of their respective transmission channel. Listing 6.8 illustrates how they can be used to estimate the SNR at the receiver for each individual channel assuming the transmit power is the same for all symbols of .
1h=[1 0.9]; %Impulse response of channel H(z) = 1 + .9 z^-1 2N=3; %number of subchannels 3H=convmtx(h,N); %matrix to implement convolution 4[F,S,Mhermitian] = svd(H); %SVD decomposition 5lambdas = diag(S); %lambdas are the singular values 6N0d2 = 0.181; %channel noise: bilateral PSD value N0 / 2 7gn = lambdas.^2 / N0d2 %get the SNR of each subchannel
This schemes requires a SVD decomposition whenever the channel changes. Also, besides the singular values, the demodulation matrix must be informed to the receiver. This is avoided in DMT schemes based on the DFT as discussed in Application 6.5.
Application 6.5. DFT channel partitioning. Instead of SVD, here the eigenvalues decomposition is adopted. The first point to note is that while SVD supports a rectangular channel matrix , the eigenvalue decomposition requires a square matrix. Hence, the original channel matrix is arranged via circular extension to become not only but also a circulant matrix. This fact will be used later on.
In general, the eigenvalue decomposition of a square matrix provides a diagonal matrix with the eigenvalues and a full matrix with the corresponding eigenvectors, such that
| (6.19) |
The channel partition with a DFT is based on the fact that the basis functions of the DFT are eigenvectors of any circulant matrix. Hence, when the channel is a circulant matrix and Eq. (6.19) is applied, the eigenvectors of are basis functions of the DFT and the eigenvalues in are the DFT of the impulse response. Listing 6.9 provides an example.
1N=3; %number of FFT points 2h=[0.9 -0.3 0]; %impulse response of length N 3H=circulant(h); %create a circulant matrix 4A=ak_fftmtx(N,1); %orthonormal inverse DFT matrix (basis are columns) 5[V,D]=eig(H); %eigenvalue decomposition 6A2=[V(:,1) -V(:,3) -V(:,2)]; %rearrange the eigenvectors to match DFT 7max(max(abs(A-A2))) %check whether matrices A and A2 are the same 8fft(h)-transpose(diag(D)) %check if eigenvalues are DFT values
It should be noted in Listing 6.9 that the function eig does not order the eigenvector as in the DFT and, also, a factor of was used for two eigenvectors.
Hence, if the channel matrix can be made circulant, the following scheme allows to partition it
and should be compared with the SVD-based one. Listing 6.10 illustrates the DFT partitioning.
1N=4; %number of FFT points 2X = transpose([-1 -1-j -1 -1+j]); %transmit vector (QAM symbols) 3[Ah, A]=ak_fftmtx(N,1); %orthonormal DFT matrices, A is the inverse 4h = transpose([0.6 0.5 0.3 0]); %impulse response (of N samples) 5H = circulant(h); %N x N circulant channel matrix 6D=Ah*H*A; %check that DFT can partition H 7maxOutOfDiagonal=max(max(abs(D-diag(diag(D))))) %only small values 8eigenvalues=fft(h); %or, alternatively, eigenvalues=diag(D) 9x = A*X; y = H*x; Y = Ah*y; Xp = Y ./ eigenvalues; %processing 10disp('Compare the received Xp with the transmitted symbols X'); X, Xp
The code indicates via D=Ah*H*A that the DFT matrices obtain a diagonal matrix. Besides, the elements in the diagonal of D coincide with the DFT of the impulse response.
In practice, obtaining a circulant matrix for representing the channel is implemented via a “trick”: adopting a cyclic prefix. Mathematically, the result of using without cyclic prefix and a circulant matrix is the same as using with cyclic prefix and a linear convolution matrix (non-circulant).