Patent Publication Number: US-4930140-A

Title: Code division multiplex system using selectable length spreading code sequences

Description:
FIELD OF THE INVENTION 
     This invention relates to code division multiplex systems particularly for use in spread spectrum communication systems. 
     BACKGROUND OF THE INVENTION 
     Code division multiplexing in spread spectrum communication systems is well known. In a spread spectrum communication system, a spreading code sequence is used to disperse the energy content of an original input data signal in the frequency spectrum. In order to transmit each data bit in a spread spectrum communication system, each individual data bit is first multiplied by the spreading code sequence in an exclusive OR gate. In a typical system, for a data bit of zero, the spreading code sequence itself is transmitted; while for a data bit of one, the inverse of the spreading code sequence is transmitted. 
     At the receiver, the spreading code sequence is detected by correlating the received spread spectrum signal with knowledge of the original spreading code sequence which was used at the transmitter. One method and apparatus for encoding transmitted data and correlating received data in a spread spectrum system can be found in a co-pending patent application entitled &#34;DIFFERENTIAL CORRELATOR FOR SPREAD SPECTRUM COMMUNICATION SYSTEM&#34;, serial number 271,614, filed Sept. 15, 1988 and assigned to the same assignee as the assignee of the present invention. 
     The object in any multiplex communication system (such as a frequency division multiplex system or a time division multiplex system, as well as a code division multiplex system), is to provide for independent communication paths between individual devices without interference to neighboring devices, i.e., to establish distinct channels of communication without mutual interference. 
     Code division multiplex, or CDM, is a method for establishing such different distinct channels in a spread spectrum communication system. In a CDM communication system, different spreading code sequences are used to distinguish the different data communication channels. Each spread spectrum receiver correlates the received signal with a particular spreading code sequence, thereby establishing independent channels of communication, one channel for each distinct spread spectrum spreading code sequence used. 
     The individual bits of the final spread spectrum signal, consisting of the spreading code sequence combined with the message data, are called chips. As used herein, the term chip may also apply to the individual bits of the spreading code sequence particularly during the process of combining the spreading code sequence with the message data at the transmitter encoder, or in the process of separating the message data from the spreading code sequence at the receiver correlator. 
     SUMMARY OF THE INVENTION 
     The present invention is embodied in a code division multiplex system in which a plurality of communication channels are created at the transmitter encoder by selecting one of a plurality of different length spreading code sequences. At the receiver correlator, each of the separate spread spectrum communication channels are distinguished and detected substantially on the basis of the length of the received spreading code sequence. 
     The present invention is further embodied in a differential encoder wherein a spreading code sequence of a given fixed length is selected from a plurality of spreading code sequences which have respective distinct lengths. The selected spreading code sequence is then differentially encoded in accordance with the input data. That is, each chip of the selected spreading code sequence is inverted, or not inverted, in accordance with the input data, relative to the spreading code sequence a fixed time delay previously, which fixed time delay is also selectable at the encoder, and is set substantially equal to the length of the selected spreading code sequence. 
     The present invention is further embodied in a spread spectrum receiver in which each received chip is compared with a chip received a selectable fixed time delay previously, which time delay is set to be substantially equal to the length of the desired selected spreading code sequence. If the present received chip and the previously received chip (at the selected fixed time delay previously) are equal, then the received data is a logic 0. If the present received chip and the previously received chip are not equal, then received data is a logic 1. 
     Since the length of the spreading code sequence selected in the encoder is substantially equal to the time delay selected in the receiver correlator, the data is recovered. For those receivers wherein the selected time delay does not match the length selected spreading code sequence in the encoder, the receiver correlator will produce an uncorrelated noise like output. However, the extent of code division multiplex descrimination depends on the cross correlation properties of the chosen plurality of spreading code sequences. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a topological map of plurality of local area networks embodying the present invention arranged in a plurality of cells. 
     FIG. 2 is a block diagram of a spread spectrum receiver and a spread spectrum transmitter in accordance with the present invention. 
     FIG. 3 is a schematic diagram, partially in block form, of a spread spectrum encoder in accordance with the present invention. 
     FIG. 4 is a schematic diagram, partially in block form, of a spread spectrum correlator in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 illustrates the general situation presented in a multiplexed data communication environment. In a given area 10, it is desired to provide for more than one non-intefering communication channel. 
     Specifically, a given area 10 may be divided into four cells each containing separate local area networks, i.e., LAN 1, LAN 2, LAN 3, and LAN 4. Within each of the four respective LAN cells, a separate data communication channel is used to communicate between local devices within each LAN cell. That is, printers, file servers and the like are shared by individual computers and computer terminals within a LAN cell. However, it is desired that there be no interference with neighboring LANs using separate data communication channels in adjacent cells. 
     In a CDM spread spectrum communication system, each of LAN 1, LAN 2, LAN 3, and LAN 4 typically uses a different spreading code sequence length so that the four LANs can coexist in an area 10 simultaneously using the same portion of the frequency spectrum without adjacent channel interference. In order to create the separate channels, LAN 1 uses a first spreading code sequence length while LAN 2, LAN 3, and LAN 4 each use respective different 2nd, 3rd, and 4th spreading code sequence lengths. The topological pattern of the four cells is repeated in adjacent areas so that the minimum distance between cells using the same spreading code sequence length is two. 
     A spread spectrum communication system using selectable length spreading code sequences in accordance with the present invention is shown in FIG. 2. 
     Data input at terminal 20 is applied to spread spectrum encoder 22 which is in turn input to PSK modulator and RF transmitter 24. The output of the RF transmitter is applied to transmitter antenna 26. After transmission through a suitable medium and reception by receiving antenna 28, the signal is applied to RF receiver and PSK demodulator 30. The output of the PSK demodulator is applied to a spread spectrum correlator 32 to recover the original data at output terminal 34. 
     The length of the spreading code sequence utilized in the transmitter spread spectrum encoder 22 is set by a transmitter sequence length select switch 23 (shown symbolically as a rotary switch) which places an enabling signal on one of four sequence length select lines 36, 38, 40, or 42 connected to spread sprectrum encoder 22. Similarly, at the receiver the length of the spreading code sequence utilized by the receiver spread spectrum correlator 32 is set by a receiver sequence length select switch 31 (also shown symbolically as a rotary switch) which places an enabling signal on one of four sequence length select lines 44, 46, 48, or 50 connected to spread spectrum correlator 32. 
     In operation, one of four different spreading code sequence lengths in the transmitter is selected by setting the transmitter sequence length select switch 23 to one of its four different settings. In the receiver, one of four different spreading code sequence lengths is selected by setting receiver sequence lengths select switch 31 to one of its four different settings. 
     If the transmitter portion and receiver portion of FIG. 2 are in the same LAN cell, and are intended to communicate over a common data channel, then the length of the selected spreading code sequence in the transmitter is set equal to the length of the selected spreading code sequence in the receiver. On the other hand, if the receiver portion of FIG. 2 is intended to operate in a different LAN cell without interference from the transmitter in the first LAN cell, then the length of the spreading code sequence selected in the receiver is not equal to the length of the spreading code sequence selected in the transmitter. 
     In such manner, all of the spread spectrum encoders and spread spectrum correlators utilized within LAN 1 are adjusted to use a spreading code sequence of a first length, while all of the respective spread spectrum encoders and spread spectrum correlators in adjacent LAN cells 2, 3, and 4, are selected to use respective spreading code sequences of a second, third, and fourth length. 
     FIG. 3 shows a transmitter encoder in accordance with the present invention which may be used to generate a spread spectrum signal having a selectable length spreading code sequence. The transmitter encoder includes a differential encoder portion and a selectable length spreading code sequence generator portion. 
     The differential encoder portion comprises a multiple tap shift register 70, a 4 to 1 multiplexer 72, exclusive OR gate 66, and exclusive OR gate 68. Multiplexer 72 is connected for selecting one of the four multiple taps, or output stages, of shift register 70 on one of four conductors 82, 84, 86, or 88, respectively in accordance with a transmitter sequence length select signal input on input data buss 56. 
     Input data buss 56 is a two bit data buss which controls multiplexer 72 so as to select one of the four multiple taps of shift register 70 as one input to exclusive OR gate 66. Thus, multiplexer 72 is responsive to the transmitter sequence length select signal on input data buss 56 to control the effective length of shift register 70, the output of which is input to exclusive OR gate 66. The output of exclusive OR gate 66 is connected to one input of exclusive OR gate 68 and is also connected in a feedback configuration to the data input terminal of shift register 70. The transmitter chip clock on terminal 54 is connected to the clock input of shift register 70. 
     The selectable length spreading sequence generator portion of FIG. 3 comprises a multiple tap shift register 74, a 4 to 1 multiplexer 80, a 2 to 1 multiplexer 76, and a 2 to 1 multiplexer 78. A shift register run/load signal on terminal 58 is connected to the control terminals of the multiplexers 76 and 78. Multiplexer 80 is connected for selecting one of the four multiple taps, or output stages, of shift register 74 on one of four conductors 90, 92, 94, or 96, respectively in accordance with the transmitter sequence length select signal on input data buss 56, described above. Thus, multiplexer 80 is responsive to the same transmitter sequence length select signal on input data buss 56 as is multiplexer 72 so as to control the effective length of shift register 74 to be equal to the effective length of shift register 70. The output of multiplexer 80 is connected to one input of multiplexer 78, the output of which is connected to the data input of shift register 74, thereby providing a data path to recirculate the data in shift register 74 through multiplexers 80 and 78. 
     In operation, there is an initializing mode during which a spreading code sequence is loaded into shift register 74, followed by a run mode during which the previously loaded spreading code sequence is recirculated in shift register 74. The selected transmitter spreading code sequence on terminal 60 is serially loaded into shift register 74 through multiplexer 78. During the initializing mode, the shift register run/load signal on terminal 58 conditions multiplexer 76 to connect the load clock signal on terminal 62 to the clock input of shift register 74. The transmitter spreading sequence thus loaded into shift register 74 is the selected spreading code sequence which will be used in the transmitter encoder, and may be provided from a suitable digital memory (not shown) which contains the plurality of the spreading codes sequences to be used in the present code division multiplexing system. 
     After sufficient load clock pulses have elapsed to load the selected spreading sequence into shift register 74, the run mode is entered. The shift register run/load signal on terminal 58 then conditions multiplexer 76 to connect the transmitter chip clock signal on terminal 64 to the clock input of shift register 74. At the same time, the shift register run/load signal on terminal 58 conditions multiplexer 78 to connect the output of multiplexer 80 on conductor 81 to the data input terminal of shift register 74. Thus, the transmitter spreading sequence previously loaded into shift register 74 will now recirculate from the selected output tap of shift register 74 to the data input terminal of shift register 74. The resulting signal on conductor 81 is the repeating selectable length spreading code sequence which will be used to generate the output spread spectrum signal at terminal 69. 
     The intended purpose of the differential encoder portion of FIG. 3 is to invert, or not invert, the polarity of each chip of the selected spreading code sequence, relative to the polarity of the corresponding chip of the selected spreading code sequence a selected fixed time delay previoulsy, in accordance with the value of the input data. Specifically, if the transmitter input data signal on terminal 52 is a logic 1, the polarity of the current chip of the selected spreading code sequence at output terminal 69 relative to the polarity of the selected spreading code sequence a selected fixed time delay previously, will be inverted; if the transmitter input data signal is a 0, the encoder of FIG. 3 will not invert the polarity of the present chip of the selected spreading code sequence, relative to the polarity of the selected spreading code sequence a fixed time delay previously, at output terminal 69. 
     Exclusive OR gate 68 functions as a programmable inverter to invert or not invert each chip of the selected spreading code sequence on condutor 81 depending upon the value of an inversion control logic signal on conductor 67. Thus, if the signal on conductor 67 is a logic 1, the present chip of the selected spreading code sequence on conductor 81 is inverted at the output of exclusive OR gate 68 on terminal 69. Conversely, if the signal on conductor 67 is a logic 0, the present chip of the selected spreading code sequence on conductor 81 is not inverted in exclusive OR gate 68 at output terminal 69. 
     The previous values of the inversion control signal on conductor 67 are recorded in shift register 70 so that a previous inversion control signal, specifically at a selectable time delay previously, is input to exclusive OR gate 66 at the output of multiplexer 72. If the transmitter data input signal at terminal 52 is a logic 1, then exclusive OR gate 66 inverts the previous inversion control signal to form the present inversion control signal at conductor 67, while if the transmitter data input signal at terminal 52 is a logic 0, exclusive OR gate 66 does not invert the previous inversion control signal stored in shift register 70 to form the present inversion control signal at conductor 67. 
     More specifically, if the previous chip (meaning the corresponding chip of the previous cycle of the selected spreading code sequence at output terminal 69) was inverted and the transmitted data input is a logic 1, then present chip is not inverted. If the previous chip was not inverted and the transmitted data input is a logic 1, then the present chip at output terminal 69 is inverted. If the previous chip was inverted, and the transmitted data input is a logic 0, then the present chip is also inverted. If the previous chip was not inverted, and the transmitted data input is a logic 0, then the present chip is also not inverted. In such manner, the selected spreading code sequence is differentially encoded at output terminal 69 in accordance with the transmitter input data at terminal 52. 
     Each of the selectable spreading code sequences has unique length which correspond to the selectable lengths of shift registers 70 and 74. As a specific example, in the transmitter encoder of FIG. 3, shift registers 70 and 74 may be 18 bit shift registers. The selectable taps 82, 84, 86, and 88 of shift register 70 and the selectable taps 90, 92, 94, and 96 of shift register 74 may correspond to selectable fixed time delays or selectable length spreading code sequences of 14, 15, 17, or 18 chips respectively. In such manner, a spreading code sequence of 14, 15, 17, or 18 chips is selected. The input data in all cases, may be fixed at 16 chips per data bit. 
     A receiver correlator for recovering the data from a spread spectrum signal encoded in accordance with a selectable length spreading code sequence, is shown in FIG. 4. The correlator comprises a multiple tap shift register 104, a 4 to 1 multiplexer 108, and an exclusive OR gate 106. Multiplexer 108 is connected for selecting one of the four output stages of shift register 70 on conductors 110, 112, 114, or 116 for input to one input terminal of exclusive OR gate 106. Multiplexer 108 is responsive to a receiver sequence length select signal input on data buss 102. The two bit input at data buss 102 conditions multiplexer 108 to select one of the plural output stages of shift register 104, thereby effectively controlling the total delay provided by shift register 104. 
     The receiver chip clock at terminal 101 is connected to the clock input of shift register 104. Methods for recovering the receiver chip clock signal from the received spread spectrum signal are well known to those skilled in the art and form no part of the present invention. 
     In operation, the shift register 104 stores the individual received chips of the spread spectrum signal received on terminal 100. The delay provided by shift register 104 and multiplexer 108, responsive to the receiver sequence length signal on data buss 102, is set equal to the length of the desired selected spreading code sequence. For example, if it is desired to receive data from an encoder using a 14 chip spreading code sequence, multiplexer 108 is set to select conductor 110 at the output tap of shift register 104 corresponding to 14 stages. Similarly, output taps for 15, 17, and 18 chips are provided at conductors 112, 114, and 116, respectively. 
     The output of multiplexer 108 on conductor 109 is thus the corresponding chip of the previous spreading code sequence. Now, exclusive OR gate 106 compares each received chip of the presently received spreading code sequence with a corresponding chip of the previously received spreading code sequence. Either the presently received chip of the spreading code sequence is the same as the previously received chip of the previously received sequence, in which case the received data is a logic 0, or it is the opposite of such previously received chip, in which case the received data is a logic 1. 
     In either event, the output of exclusive OR gate 106 at receiver data output terminal 118, will be a series of comparisons, one comparison for each chip with a correspoding chip of the previously received spreading code sequence, the total number of comparisons being equal to the total number of chips per data bit. 
     Following the output of the data correlator of FIG. 4, is a majority vote logic (not shown) in order to determine whether the received data bit is a 1 or a 0. Under ideal conditions, all of the output chip comparisons of over one data bit interval from exclusive OR gate 106 will be of the same polarity. In the presence of noise, some of them will be in error. However, by a majority vote of the output chips at terminal 118, improved communications reliability is achieved. In the present example, it is noted that the number of chips per data bit is always 16, even for different spreading code sequence lengths, which simplifies system design and assures relatively uniform system performance parameters regardless of the chosen spreading code sequence length. 
     If the spreading code sequence used to encode the received spread spectrum signal on terminal 100 is of a different length than the length selected by shift register 104 and multiplexer 108, then the receiver data output at terminal 118 will resemble an uncorrleated noise like signal. Therefore, the correlator of FIG. 4 is responsive primarily to the length of the received spreading code sequence. Signals encoded with a spreading code sequence of a different length, relative to the selectable delay provided by shift register 104 and multiplexer 108, will be ignored. 
     Although it is only necessary that the plurality of spreading code sequences used in the code division multiplex system of the present invention differ only in the length of the respective spreading code sequences, it is preferable to use spreading code sequences having low cross correlation properties, as well as different lengths, in order to improve system channel discrimination between the different length spreading code sequences. Also, it is understood that the shift registers 70, 74, and 104 used in the described embodiment may be replaced with any other delay element providing a selectable time delay. 
     Thus, a simple economical data correlator and data encoder using selectable length spreading code sequences for code division multiplexing has been described for use and conjunction with a spread spectrum communication system.