Patent Publication Number: US-5841813-A

Title: Digital communications system using complementary codes and amplitude modulation

Description:
FIELD OF THE INVENTION 
     The invention relates to the modulation of data for transmission in a digital communications system. 
     BACKGROUND OF THE INVENTION 
     In a system employing Orthogonal Frequency Division Multiplexing (OFDM), groups of kN bits are typically transmitted simultaneously over N subchannels, with k bits per channel using some form of Quadrature Amplitude Modulation. If N is made large enough at a constant bit rate, then a subchannel may experience minimum intersymbol interference, but may still be subject to narrowband fading. The effect of such fading may be different for each subchannel. Also, when N sinusoidal signals respectively defining the subchannels are summed with the same phase for transmission in an OFDM system, the result creates a peak-to-average power (PAP) ratio that is typically N times larger than the average power level used in the transmission of a single symbol. Because of this, an OFDM transmitter has to use a linear power amplifier having a large &#34;backoff&#34; corresponding to the PAP ratio. Disadvantageously, then, a decrease in efficiency occurs as the PAP ratio increases. This problem is especially acute when OFDM is used in portable devices where power efficiency is a key concern. 
     SUMMARY OF THE INVENTION 
     It is recognized that the aforementioned problem may be dealt with using so-called complementary codes that have been modified in accord with particular phase modulation. Specifically, M input phases, e.g., four phases, directly related to input data may be encoded into N, e.g., eight, output phases associated with respective carrier signals, in which a phase shift, θ i , is applied to a carrier (subchannel) to achieve a low PAP ratio, e.g., 3 dB. 
     A receiver receiving the transmitted signal demodulates the N carriers and, by using a fast Fourier transform, obtains N vectors respectively defining the N phases and thus the input data. In the event that a number of carrier signals, e.g., three, are lost during the transmission, the input data may still be recovered in accord with an aspect of the invention. 
     It is also recognized that the number of bits that may be encoded and thus transmitted to a receiver may be increased by combining, in accordance with an aspect of the invention, another form of modulation, e.g., amplitude modulation, with the complementary codes, in which, in accord with an another aspect of the invention, the other form of modulation may be implemented as different amplitudes patterns such that a particular combination of bits are encoded in accordance with a respective one of the amplitude patterns. 
     These and other aspects of the invention will be appreciated from the ensuing detailed description when read in conjunction with drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     In the drawing; 
     FIG. 1 illustrates in block diagram form a wireless system composed of a transmitter and receiver arranged in accord with the principles of the invention; and 
     FIG. 2 illustrates in more detail the receiver of FIG. 1. 
    
    
     DETAILED DESCRIPTION 
     In accordance with an illustrative embodiment of the invention, a set or sequence of complementary codes of a desired length, e.g., a length 8 code, may be generated starting with a so-called kernel of the desired length. One possible kernel for generating codes of length 8 may be, for example, the series {111-111-11-56 . (The rules for generating a kernel are discussed in the article entitled &#34;Complementary Series&#34;, by M. J. E. Golay, published in the IRE Transactions on Information Theory, vol. IT-7, pp. 82-87, April, 1961, which is hereby incorporated by reference.) Once a particular kernel has been selected, then independent phase rotations are applied to the elements (bits) forming the selected kernel. This may be done using a particular transformation comprising, e.g., eight columns, each column having a different group of individual ones of a predetermined number of phases, e.g., four phases, (φ 1 , φ 2 , φ 3  and φ 4 , as follows: ##EQU1## 
     The phase angles (also referred to herein as constellation symbols or just symbols), φ 1 , forming each of the columns are then applied to the elements of the kernel to form a complementary code, as shown by the following expression: 
     
         c={e.sup.j{φ.sbsp.1.sup.+φ.sbsp.2.sup.+φ.sbsp.3.sup.+φ.sbsp.4.sup.), e.sup.j(φ.sbsp.1.sup.+φ.sbsp.3.sup.+φ.sbsp.4.sup.), e.sup.j(φ.sbsp.1.sup.+φ.sbsp.2.sup.+φ.sbsp.4.sup.), 
    
     
         -e.sup.j(φ.sbsp.1.sup.+φ.sbsp.4.sup.), e.sup.j(φ.sbsp.1.sup.+φ.sbsp.2.sup.+φ.sbsp.3.sup.), e.sup.j(φ.sbsp.1.sup.+φ.sbsp.3.sup.), -e.sup.j(φ.sbsp.1.sup.+φ.sbsp.2.sup.), e.sup.jφ.sbsp.1 }(1) 
    
     The vectors forming the complementary code may be represented by respective output phases θ 1  through θ 8  and may be formed as illustrated by the following transformation derived in accordance with equation 1: 
     
         θ.sub.1 =φ.sub.1 +φ.sub.2 +φ.sub.3 +φ.sub.4 
    
     
         θ.sub.2 =φ.sub.1 +φ.sub.3 +φ.sub.4 
    
     
         θ=φ.sub.1 +φ.sub.2 +φ.sub.4 
    
     
         θ.sub.4 =φ.sub.1 +φ.sub.4 +π 
    
     
         θ.sub.5 =φ.sub.1 +φ.sub.2 +φ.sub.3 
    
     
         θ.sub.6 =φ.sub.1 +φ.sub.3 
    
     
         θ.sub.7 =φ.sub.1 +φ.sub.2 +π 
    
     The eight phases θ 1  through θ 8  may then be used to respectively modulate eight OFDM subcarriers as is done conventionally in an OFDM system, as discussed below. 
     Specifically, assume that OFDM transmitter 100, FIG. 1, embodying the principles of my invention receives via encoder circuit 30 a stream of data bits from a source of data bits 25. Encoder circuit 30, which may be, for example, a conventional digital signal processor, partitions the data stream as it is received into successive groups of twelve bits each group and stores each such group as it is formed in internal memory (not shown). Encoder circuit 30 then unloads a group of stored data bits from internal memory, encodes the data bits in accordance with the principles of the invention and supplies the result to Inverse Fast-Fourier Transform (IFFT) processor 40. Encoder circuit 30, more particularly, first encodes the group of twelve bits that it unloads from internal memory into, for example, four 8-PSK (phase shift keying) phases as is done conventionally for 8-PSK in general. For example, subgroups of three bits (also referred to herein as a data word) may be converted to 8-PSK using so-called Gray scale encoding such that the subgroup 0,0,0 is encoded as 0; 0,0,1 is encoded as π/4; 0,1,1 as π/2, and so on as illustrated by the following translation table 1. 
     
         ______________________________________                                    
bits                  phase                                               
______________________________________                                    
000                   0                                                   
001                   π/4                                              
011                   π/2                                              
010                   3π/4                                             
110                   π                                                
111                   5π/4                                             
101                   6π/4                                             
100                   7π/4                                             
______________________________________                                    
 
    
     Encoder circuit 30 associates the four subgroups of data bits of a group with a respective one of the constellation symbols pi. Encoder 30, more specifically, associates the first subgroup of three bits of a group of bits with the symbol φ 1 , and associates the next (second) subgroup of three bits with the symbol φ 2 , and so on. For example, assume that a group is composed of the following series of bits; 11101010001. The subgroup encoding and φ i  symbol associations based on the above translation table stored in memory would be as follows: 
     
         111:5π/4:φ.sub.1 
    
     
         010:3π/4:φ.sub.2 
    
     
         100:7π/4:φ.sub.3 
    
     
         001:π/4:φ.sub.4 
    
     Encoder circuit 30 then generates θ1 through θ 8  in accord with the above transformations for θ 6 . For example, as indicated above θ 1  =φ 1  +φ 2  +φ 3  +φ 4 , then, for the present illustrative example, θ 1  =5π/4+3π/4+7π/4+π/4. Similarly, θ 2  =5π/4+7π/4+π/4; θ 3  =5π/4+3π/4+7π/4; and so on. Note that the values of symbols φ 1  through φ 4  would be different for a subgroup having a different combination of twelve bits, e.g., 000101110011. However, note that symbol (pi, regardless of its value, is associated with the first subgroup of bits of a group, and symbol φ 4  is associated with the last subgroup of bits of that group. When encoder circuit 30 has completed the generation of the eight phases θ 1  through θ 8 , it then supplies the values for those phases to IFFT processor 40, which may be, for example, a conventional digital signal processor (DSP). Moreover, the DSP that implements the encoder 40 function may be programmed to also implement the IFFT 40 function. IFFT processor 40, more particularly, converts the data from the frequency domain to the time domain using the inverse of the Fast Fourier transform to generate respective phase vectors. Processor 40 then modulates a plurality, e.g., eight, digital carriers respectively using the values of the eight phase vectors formed by θ 1  through θ 8 . That is, IFFT processor 40 modulates a carrier i  (channel i ) using the value of a respective phase vector θ i . IFFT processor 40 then outputs the result to conventional digital to analog converter circuit 45, which converts the digital signals it receives from IFFT processor 40 to analog signals. The analog signals are then supplied to RF transmitter 50 which modulates the analog signals onto an RF carrier, e.g., a 5.2 GHz carrier, and supplies the result to antenna 55 for transmission to wireless type receivers, e.g., receiver 200. Encoder circuit 30 (OFDM transmitter 100) then goes on to similarly process the next the group of data bits stored in the aforementioned internal memory. 
     The number of bits that may be encoded using complementary codes may be expanded appreciably using, in accord with an aspect of the invention, amplitude modulation in combination with complementary codes. Specifically, I have recognized that the alternating elements of a complementary pair may be multiplied by some arbitrary constant without affecting the complementary characteristics of the encoded data. Moreover, for a complementary code of the form {a b a -b } the elements of a complementary code may be multiplied by respective elements of particular amplitude patterns, for example, the following patterns{cddccddccddc . . . },{cccddddccccdd . . . }, etc. Thus, a complementary code of length eight, for example, may be multiplied by one of the following amplitude patterns to increase the number of bits that may be encoded by a particular combination of three bits: 
     
         ______________________________________                                    
            p.sub.1 = cdcdcdcd                                            
            p.sub.2 = cddccddc                                            
            p.sub.3 = ccddddcc                                            
            p.sub.4 = ccccdddd                                            
            p.sub.5 = dcdcdcdc                                            
            p.sub.6 = dccddccd                                            
______________________________________                                    
 
    
     where p 1  through p 8  may be, for example, data bit combinations 000, 001, 010, 011, 100, 101, 110, and 111, respectively. Thus, if the additional data bits that are to be transmitted happen to be, for example, 000, then the amplitude pattern that is transmitted with phases θ 1  through θ 8  encoding the other twelve bits would be as follows: 
     
         ce.sup.jφ.sbsp.1, de.sup.jφ.sbsp.2, ce.sup.jφ.sbsp.3, de.sup.jφ.sbsp.4, ce.sup.jφ.sbsp.5, de.sup.jφ.sbsp.6, ce.sup.jφ.sbsp.7, de.sup.jφ.sbsp.8 
    
     For other combinations of data bits the transmitted amplitude patterns/complementary code combinations would be respectively as follows: ##EQU2## 
     The total number of codes that can be generated using amplitude modulation only equals kN/2, where N is the length of the code and k is number of possible amplitude values. Advantageously, then, log 2  k+log 2  N/2 additional bits may be encoded per OFDM symbol while holding the peak-to-average power ratio to a maximum of 3 dB. The key to this advantage is based on performing amplitude modulation in the frequency domain while the PAP applies to the time domain signal. 
     It is noted that if the encoding of the amplitudes and phases are made independent of one another, then the decoding of encoded symbols may also be performed independently at receiver 200. However, to reduce the minimum distance between multi-amplitude complementary codes, and thus improve system performance, the coding/decoding of the amplitude patterns and complementary codes have to depend on one another to a certain degree. This dependency may be achieved by reducing the coding for one of the phases with respect to particular ones of the above eight amplitude modulation patterns. For example, for patterns p 1 , p 2 , p 5  and p 6 , one of the phases, e.g., φ 2 , would be associated with a code conversion having a smaller phase constellation, e.g., a 4-PSK constellation, while the other three phases would be associated with a larger phase constellation, e.g., 8-PSK constellation. For patterns p 3 , p 4 , p 7  and p 8 , another one of the phases, e.g., φ 4 , as well as the other phases would be similarly associated. Accordingly, then, eleven data bits may be encoded using symbols φ 1  through φ 4  and an additional three bits may be encoded using one of the above amplitude patterns p 1  through p 8 . (It is noted that if a different number of additional bits need to be encoded, then the number of patterns needed to handle that case would be adjusted accordingly. For example, for two additional bits, then any four of the above patterns may be used, e.g., patterns p 1  through p 4 .). 
     Based on the specific phase constellations, preferred amplitude values for c and d may be found, such that the minimum Euclidean distance between different code words is maximized. For example, the preferred values for a code of length 8 with 3 8-PSK phases (1 4-PSK phase and 2 amplitude levels) are 0.541 and 1.306, respectively. Note that these values are normalized such that the power of the code word (4(c 2  +d 2 )=8) equals the power of the code word without amplitude modulation, i.e., c=d=1. 
     Assume, for example, that the series of data bits 10111010100010 form the associated group. In accord with an illustrative embodiment of the invention, the first 3 bits of the series is encoded using amplitude modulation, e.g., pattern p 6 . The remaining bits of the series, 11010100010, form subgroups of 110, 10, 100, 010. (Two bits are associated with the second subgroup since, as mentioned above, for pattern p 6  symbol φ 2  is associated with a smaller phase constellation, 4-PSK encoding which is limited to phase encoding just two bits as is well known. If the amplitude modulation pattern had been either p 3 , p 4 , p 7  and p 8 , then such bits would form subgroups of 110, 101, 000, 10 in which symbol φ 4  would then be associated with 4-PSK encoding, as discussed above. (It is noted that phases 0, π/2, π and 3π/2 are typically used to encode bit combinations of 00, 01, 11 and 10, respectively, in 4-PSK encoding.) 
     Accordingly then, encoder 30 unloads a group of fourteen bits and encodes the bits to generate the aforementioned symbols and select the appropriate amplitude pattern. For the present example, and using transformation table 1 (above) and the above 4-PSK encoding the value of the symbols would be as follows: 
     
         110:π:φ.sub.1 
    
     
         10:3π/2:φ.sub.2 
    
     
         100: 7π/4:φ.sub.3 
    
     
         010:3π/4:φ.sub.4 
    
     Encoder 30 then generates the complementary codes, θ i , in the manner discussed above and then phase modulates eight OFDM subcarriers, i, using the resulting complementary codes, respectively. The eight subcarriers are then respectively multiplied by the amplitudes (elements) forming the selected amplitude pattern, e.g., pattern p 6 . The amplitude modulated result is then transmitted to receiver 200. 
     Turning to FIG. 2, it is seen that receiver 200 includes a conventional RF section 230 for receiving the resulting composite signal via antenna 56 and processing (downconverting) the signal in a conventional manner as it is received. The processed result is then supplied to conventional analog to digital converter 245 which converts the demodulated result to corresponding digital signals. The digital signals are then supplied to Fast Fourier Transform (FFT) processor 240 which demodulates the N carriers. Processor 240 does this by performing a FFT on the digital signals supplied by converter 245. The output of FFT processor 240 comprises N (where N=eight for the present illustrative example) vectors (in-phase and quadrature samples), representing the amplitudes and phases of the N different subchannels, as illustrated by the following expression: 
     
         r.sub.i =a.sub.1 e.sup.(5π/4+3π/4+7π/4+π/4), a.sub.2 e.sup.j(5π/4+7π/4+π/4), a.sub.3 e.sup.j(5π/4+3π/4+π/4), -a.sub.4 e.sup.j(5π/4+π/4), a.sub.5 e.sup.j(5π/4+3π/4+7π/4), a.sub.6 e.sup.j(5π/4+7π/4), -a.sub.7 e.sup.j(5π/4+3π/4), a.sub.8 e.sup.j5π/4 
    
     The N vectors are supplied to decoder 230 which then decodes the output of the FFT to first determine and identify the pattern of the amplitudes of the eight vectors. This is done in accordance with a conventional training phase that is designed to teach receiver 200 to recognize each of the patterns pattern p 1  through p 8  even though one or more of the elements (amplitudes, c or d) is degraded by the transmission environment that exists between transmitter 100 and receiver 200. Thus, during the training phase, receiver 200 knowing which pattern to expect, stores the vector pattern that it receives in memory as a template in association with the expected pattern. It is noted that the same pattern may be transmitted repeatedly a number of times so that receiver 200 may form an accurate template of the expected pattern. Accordingly, then, decoder 230 compares the vector pattern that it just received with each of the stored templates. Decoder 230 then selects as the transmitted pattern the template that best matches (is closest to) the received pattern. To say it another way, decoder 230 selects the template pattern which provides the largest absolute correlation value when compared with the received pattern. Also, the sine of the correlation provides an indication as to whether c is smaller or larger than d. Decoder 230 thus determines in this way the value of the three bits represented by the decoded amplitude pattern, which, for the present example is assumed be 101 represented by pattern p 6 . Decoder 230 also sets the phase constellations according to the selected pattern. Thus, for pattern p 6 , decoder 230 sets φ 2  to have a 4-PSK constellation and sets φ 1 , φ 3  and φ 2  to have a 8-PSK constellation, as previously described in detail. 
     Following the foregoing, decoder 230 then determines the values of the respective phase symbols φ i . Such decoding, in accord with an aspect of the invention, is applied to alternating elements of the complementary code in which each of the complex odd samples of the FFT output is multiplied against a paired complex conjugate of the even samples. A summation of the result of each multiplication forms a vector which has the value of the sought-after phase angle (symbol φ l ). This procedure may be followed for even and odd pairs of the samples as well as quads, etc. Decoder 230, more particularly and in accordance with this decoding technique, combines r i  with a complex conjugate of the kernel code used to form the complementary code in the encoding of the group of data bits at the transmitter. One such kernel code may be, for example, {1 11-111-11 }, as mentioned above. If that is the case, then r 4  and r 7  are inverted--meaning that the sign of the resulting multiplication for r 4  and r 7  is positive. (For notational purposes, the following equates the received digital signals (samples), after multiplication with the conjugated kernel, with x i , respectively.) Decoder 230 then generates three vectors y 2 , y 3  and y 4  as a function of respective ones of the digital samples x i . 
     More specifically, and as discussed above, transmitter 100 encodes phases φ 1  to φ 4  in accord with the aforementioned transformations. In addition, receiver 200 removes the effect of the kernel code on the received signal by multiplying the elements of vector r i  by the kernel code and expressing the phase encoding in matrix form as follows: 
     
         θ=Aφ 
    
     where θ and φ are vectors containing the values of the eight phases θ i  and four φ i  phases and A is an encoding matrix as follows: ##EQU3## 
     Using the matrix, receiver 200 may then determine the values of the encoded phases φ i  from the measured phases θ l  by determining a least-squares solution for the linear equations represented by the matrix as follows: ##EQU4## where P is the pseudo-inverse of A and superscript T denotes a matrix transpose. Unfortunately, such equations are not completely linear, since the phase values are 2π. Because of this, the above method cannot be applied directly to determining the values for φ i . However, an inspection of the A-matrix reveals that the phases φ 2 , φ 3  and φ 4  may be determined as a summation of 4 subtracted θ i  pairs, as mentioned above. For example, each of the subtractions θ 1  -θ 2 , θ 3  -θ 4 , θ 5  -θ 6  and θ 7  -θ 8  provide a value for φ 2 . A preferable way to get the phase difference between two vectors is to multiply one vector with the complex conjugate of the other vector. Doing so leads to the inventive decoding procedure in which the vectors y 2 , y 3 , y 4  are determined as follows: 
     
         y.sub.2 =x.sub.1 x*.sub.2 +x.sub.3 x*.sub.4 +x.sub.5 x*.sub.6 +x.sub.7 x*.sub.8 
    
     
         y.sub.3 =x.sub.1 x*.sub.3 +x.sub.2 x*.sub.4 +x.sub.5 x*.sub.7 +x.sub.6 x*.sub.8 
    
     
         y.sub.4 =x.sub.1 x*.sub.5 +x.sub.2 x*.sub.6 +x.sub.3 x*.sub.7 +x.sub.4 x*.sub.8 
    
     where * means complex conjugate and where the arctan of the angle between the real and imaginary parts of each term respectively forming vectors y 2  through y 4  provides the value of the corresponding phase symbol φ 2  through φ 4 , respectively. (It is noted that the decoding technique used to derive the pairing of the elements forming each term of each of the above vectors may also be determined by inspection in which the difference between each pair of elements provides the value of the sought after phase angle.) For example, the value of vector Y 2  is determined as follows for the instant illustrative example of the invention: ##EQU5## 
     A determination of the value of each term of vector y 2  thus leads to a determination of the phase value of φ 2 , which, for the present illustrative example has a value of 3π/2 within a 4-PSK constellation. In practice, the determination would be an estimate of φ 2 . Decoder 230 deals with the estimate by &#34;rounding off&#34; the estimated value to the nearest constellation phase selected for the encoding at transmitter 30, i.e., 4-PSK constellation, to generate a more accurate value for φ 2 . 
     Decoder 230 then similarly generates phase estimates of φ 3  and φ 4  as a function of vectors y 3  and y 4 , respectively, and &#34;rounds off&#34; those 8-PSK constellation estimates in a similar manner. Doing so, yields, in accord with the present illustrative example, phase values of 7π/4 and 3π/4 for φ 3  and φ 4 , respectively. 
     Once decoder 230 has determined the phase values of φ 2 , φ 3  and φ 4  it may then determine the value of φ 1 . However, note that the phase φ 1  is present in all φ i  equations as illustrated by the above transformation table. Consequently, φ 1  cannot be expressed as a subtraction of two θ i  values, as was done for the other phases. However, since all phases except for φ 1  can be determined in the manner discussed above, then the values for those phases can simply be substituted in the θ i  equations to create eight equations with only one unknown as one way of obtaining eight estimates for φ 1 . Receiver 200 may then take the average value of the eight estimates for φ 1  to improve the Signal-to-Noise Ratio (SNR) for φ 1 . It is noted that, in practice, the average may be based on only four of the estimated values, since the noise in the other four solutions is correlated with the noise in the solutions that are used. 
     Thus, a vector y 1  corresponding to the sought-after phase may be obtained by substituting the estimated values of the selected four solutions (phases) as follows: ##EQU6## 
     As was the case for φ 2 , the arctan of the real and imaginary part of each term of vector y 1  leads to a determination of the corresponding phase value of φ 1 , which, for the present illustrative example would turn out to be π. Similarly, in practice, the determination would be an estimate of φ 1  as was the case for φ 3  and φ 4 . Accordingly, then, decoder 230 determines in a conventional manner the actual value of φ 1  as a function of its estimated value, i.e., decoder 230 &#34;rounds off&#34; the estimated value to the nearest constellation phase selected for the coding at transmitter 30, e.g., an 8-PSK constellation. 
     As a result of foregoing process, receiver decoder 230 determines the data values respectively represented by symbols φ 1  through φ 4 . Namely, the series of bits 10111010100010 assumed above for the present example illustrating of the principles of the invention. 
     As mentioned above, the pairing of the elements forming each term of each of the above vectors y i  may be determined by inspection in which the difference between each such pair of elements provides the sought after phase angle. It is seen from the above, that each vector y i  comprises a plurality of such terms. Advantageously, then, receiver 200 may still determine a sought-after phase even though one or more terms forming the associated vector y i  were lost for whatever reason, e.g., due to a momentary change in the transmission environment. For example, assume that the first three channels are lost such that receiver 200 obtains only eight samples of the information transmitted by transmitter 100 as noted by the following: 
     
         r.sub.i =0,0,0,.sub.-e.sup.j(φ.sbsp.1.sup.+φ.sbsp.4.sup.), .sub.e.sup.j(φ.sbsp.1.sup.+φ.sbsp.2 .sup.+φ.sbsp.3.sup.), .sub.3.sup.j(φ.sbsp.1.sup.+φ.sbsp.3.sup.), .sub.-e.sup.j(φ.sbsp.1.sup.+φ.sub.2.sup.), .sub.e.sup.jφ.sbsp.1 
    
     As also mentioned above, decoder 230 multiplies r i  by the kernel code used in the coding of the transmitted data at transmitter 100. Even though the first three channels were lost--meaning that the values of samples x 1  through x 3  would be zero--receiver 200, nevertheless, may still recover the values of phase symbols φ 1  through φ 4  from the samples that it is able to generate as illustrated by the following: 
     
         y.sub.2 =x.sub.5 x*.sub.6 +x.sub.7 x*.sub.8 =φ.sub.2 
    
     
         y.sub.3 =x.sub.5 x*.sub.7 +x.sub.6 x*.sub.8 =φ.sub.3 
    
     
         y.sub.4 =x4x*.sub.8 =φ.sub.4 
    
     
         y.sub.1 =x.sub.4e.sup.-hφ.sbsp.4 +x.sub.6e.sup.-jφ.sbsp.3 +x.sub.7e.sup.-jφ.sbsp.2 +x.sub.8 
    
     Advantageously, then, decoder 230, in accord with the principles of the invention, may still recover data that transmitter 100 transmits via a plurality of channels even though the content of one more of the channels is lost prior to being received by receiver 200. 
     The foregoing is merely illustrative of the principles of the invention. Those skilled in the art will be able to devise numerous arrangements, which, although not explicitly shown or described herein, nevertheless embody those principles that are within the spirit and scope of the invention. For example, although an illustrative embodiment of the invention was discussed in the context of a code of length 8, multiples of that number may be used in systems employing more than eight subchannels, e.g., sixteen subchannels. In such a system, several codes of length 8 may be interleaved to modulate the information transmitted over the channels. Such interleaving may be achieved by using one code for odd numbered channels and another code for even numbered channels. As another example, for a code length of 2 n , there will be n+1 encoded phases φ i , which may be applied to the entire code or to alternating elements, quads, etc. Thus, the coding and decoding would be similar to the length 8 code, except for having a different number of phases φ l . As a further example, the use of complementary codes in accordance with the principles of the invention is also applicable to forward error correction as well as PAP reduction coding in OFDM systems. It is also possible to do fallback rates (decreased data rates with larger coverage by increasing the code length(using length 16 or 32 codes instead of a length 8 code) or by decreasing the number of phases (e.g., using BPSK instead of 8-PSK).