Experimental Verification of the Compensation of Fades with Spectral Shaping in PLC K. Ouahada, A. J. Snyders*, H. C. Ferreira and T. G. Swart Department of Electric and Electronic Engineering Science, University of Johannesburg, South Africa * Energy Programme Manager, Infrastructure and Services Department, City of Johannesburg, South Africa Email: {kouahada, hcferreira}@uj.ac.za, abrahams@joburg.org.za, tgswart@postgrad.uj.ac.za Abstract— The power-line channel is considered to be a very hostile channel compared to other channels in view of the different types of noises that could exist. We present a technique of compensating for stationary fades in a frequency-selective fading (FSF) channel. By coinciding the spectral null at the corresponding fading frequency, the baseband-pulse signaling can be considered a more viable solution. A hardware implementation of the technique is presented, clearly illustrating the focusing of energy to the better parts of the spectrum. This leads to improved reception of baseband pulses in the presence of frequency- selective fading. I. I NTRODUCTION Designing codes with certain spectral shapes is a technique to avoid channel fades in wireless and wire-line communica- tion channels. Spectral Nulls codes, when transmitted serially, will have a spectrum with zeros occurring at f =1/kT , where k is an integer or a ratio of relatively prime integers. Two classes of spectral nulls codes are presented, which are called binary and non-binary spectral nulls codes. We furthermore investigate the performance of these codes in the presence of frequency-selective fading channels. The paper is organized as follows. In Section II we present the designing technique of Spectral Nulls Codebooks, whether they are binary or non-binary. In Section III we briefly describe the channel and received signal models. The hardware set-up and implementation of the technique are in section IV. Section V presents the simulation results of the implementation of the technique in a power-line channel using non-binary spectral nulls codes and finally in section VI a conclusion of the performed analysis will be drawn. II. SPECTRAL NULLS CODES CONSTRUCTION The technique of designing codes to have a spectrum with nulls occurring at certain frequencies started with Gorog [1], when he considered the vector x =(x 1 ,x 2 , ..., x M ), x i {-1, +1} with 1 i M , to be an element of a set S, which is called codebook of codewords with elements in {-1, +1}, here we represent -1 as 0. And then we apply the Fourier transform to those codewords to get: X (w)= M i=1 x i e -jiw , -π w π. (1) So the idea of having nulls at certain frequencies is the same as having the power spectral density function equal to zero at those frequencies. This means that H(w)=0, where H (w)= 1 Mn M-1 i=0 |X (i) (w)| 2 . (2) It can be seen from (2), that the power spectral density depends on the frequency value. So we can design a codebook to generate nulls at certain chosen frequencies. Usually for simplification we present the codeword length, M , as an integer multiple of k, where f = r/k represents the spectral nulls at rational sub multiple r/k. The parameter k could be chosen either prime or not prime and divides M [2], i.e. M = ks, In the case where k is a prime number, we have to satisfy A 1 = A 2 = ··· = A k , (3) where A i = s-1 λ=0 x i+λk , i =1, 2,...,k. (4) If all the codewords in a codebook satisfy these equations, the codebook will exhibit nulls at the required frequencies. As can be seen from the introduction of the technique, the x i are binary data and the resulting codes are binary spectral nulls codes. This technique is also applied to non binary data, the obtained code is called non-binary spectral nulls codes. Taking the case of M =6 where k =3 and s =2, the equation (3) is written as follow: s=2  x 1 + x 4 = s=2  x 2 + x 5 = s=2  x 3 + x 6    A 1 = A 2 = A 3  k=3 (5) As it can be seen from (5), the value of k represents the number of groupings A i and also the corresponding nulls 1/k, and s is the number of symbols in each grouping. The corresponding codebook has nulls at 1/3, 2/3, 1. To generate the codebook we need to start with all 000...000 or all 111...111, taking into consideration that 0 is mapped onto -1