Video Cable

Apparatus and method for digital data transmission over video cable using orthogonal cyclic codes

Google

Video Cable Abstract
A method and apparatus for carrying out synchronous co-division multiple access (SCDMA,) communication of multiple channels of digital data over a shared transmission media such as a cable television system coaxial cable, a fiber optic or copper conductor telephone link, terrestial microwave, satellite link, local or wide area network, wireless including cellur network or some combination of these media using suitable interface circuitry. The system includes modems at remote units and a central unit to receive time division multiplexed digital data arranged into timeslots or channels and uses orthogonal codes to encode each channel of multiple data and spread the energy of each channel data over a frame of data transmitted in the code domain. Spreading the data this way makes the system less susceptible to impulse noise. Frames are synchronized as between remote and central units using a ranging scheme which is also useful in any other system transmitting data by frames in a distributed system where synchronizing the frames as between all units regardless of differences in propagation delays is necessary. Each frame in the SCDMA modulation scheme includes a gap or guardband containing no other data. The ranging process involves training each remote unit to impose enough delay prior to re-transmission of a barker code received from the CU such that a barker code sent by the RU arrives at the CU during the gap. The process of setting the delay in each RU is a trial and error process, and each RU starts the ranging process asynchronously. Contention resolution protocols such that only one RU is aligning to the gap at any particular time are taught.

Video Cable Claims
What is claimed is:

1. A method for transmitting multiple channels of digital data simultaneously over a cable television media carrying cable television programming, comprising:

receiving multiple channels of digital data;

selecting portions of said digital data from each channel and organizing said portions as an information vector having n elements;

performing code division multiplexing by performing a matrix multiplication of said information vector times a code matrix comprised of n orthogonal spreading codes, each code comprising one row or one column of said code matrix and having n elements, said matrix multiplication generating a result vector having n elements, each element comprised of the sum of the partial products of multiplication of each of the n elements of said information vector times the n elements of one of said orthogonal spreading codes;

modulating the n elements of said result vector onto one or more radio frequency carriers and transmitting the resulting radio frequency carriers on a cable television media carrying cable television programming while limiting the overall bandwidth of the resulting radio frequency signals so as to not interfere with said cable television programming.

2. The process of claim 1 wherein the step of modulating the n elements of said result vector onto one or more radio frequency carriers comprises the step of dividing each of said n elements of said result vector into an inphase and a quadrature part, and modulating the amplitude of a first radio frequency carrier during successive times using the inphase parts of each of said n elements of said result vector, and modulating the amplitude of a second radio frequency carrier during the same successive times using the quadrature parts of each of said n elements of said result vector, said second radio frequency carrier having the same frequency as said first radio frequency carrier but differing in phase by 90 degrees, and summing the two resulting radio frequency carriers and placing the summed signal on said cable television media.

3. The process of claim 1 wherein the step of performing code division multiplexing includes the steps of changing the particular orthogonal code each element of each new information vector is multiplied by while calculating said partial products which are summed to generate the individual elements of each new result vector.

4. The process of claim 3 wherein said orthogonal codes are cyclic codes, and wherein the step of changing the orthogonal codes the elements of each new information vector are multiplied by includes the steps of pseudorandomly selecting the particular orthogonal code each new information vector is multiplied by to generate the partial products which are summed to generate each element of each new result vector.

5. A method for transmitting to a central unit multiple channels of digital data generated by a plurality of sources coupled to a plurality of physically distributed remote units which are coupled to said central unit via a cable television media designed to carry radio frequency signals, said multiple channels of digital data being transmitted simultaneously over said cable television media as a plurality of frames of digital data, said cable television media also carrying frequency division multiplexed cable television programming, comprising:

receiving one or more channels of digital data at each remote unit;

at each remote unit, constructing an information vector by selecting portions of said digital data from each channel of digital data received at said remote unit and organizing said portions as selected elements of said information vector having n elements where each element of said information vector corresponds to one of said channels but wherein any element of said information vector corresponding to a channel from which no data is received by any particular remote unit is set to zero;

at each remote unit, performing code division multiplexing by performing a matrix multiplication of the information vector generated at said remote unit times a code matrix comprised of n orthogonal spreading codes, each code comprising one row or one column of said code matrix and having n elements, said matrix multiplication generating a result vector having n elements, each element of said result vector comprised of the sum of the partial products of multiplication of each of the n elements of said information vector times the n elements of one of said orthogonal spreading codes, and wherein zero elements of said information vector cause zero elements in said result vector;

at each remote unit, modulating the n elements of said result vector onto one or more radio frequency carriers;

summing the one or more radio frequency carriers generated by each remote unit with one or more radio frequency carriers generated by other remote units and transmitting the resulting radio frequency carriers on a cable television media carrying cable television programming while limiting the overall bandwidth of the resulting radio frequency signals so as to not interfere with said cable television programming.

6. The process of claim 5 wherein said channels of digital data received by each remote unit are received in the form of a time division multiplexed data stream comprised of a plurality of timeslots wherein each timeslot contains one or more data bits from one channel such that all channels have a timeslot into which data from that channel may be tranmitted in said time division multiplexed data stream to a remote unit.

7. The process of claim 6 wherein said step of constructing said information vector comprises the steps of storing a portion of the bits from each timeslot as a corresponding element of said information vector, and wherein each said frame of data transmitted from each remote unit to said central unit comprises transmission of data generated from a sufficient number of code division multiplexed information vectors so as to code division spread all data from all timeslots to be transmitted during a single frame.

8. The process of claim 7 wherein each timeslot contains 9 bits, 8 of which are data from any source external to said remote unit and the 9th bit of which is available to send miscellaneous command and control information from the remote unit to said central unit, and wherein data from three information vectors are code division multiplexed from each remote unit to said central unit during each frame, and wherein each information vector is constructed at a remote unit by placing 3 bits from each timeslot containing data received at a remote unit into an element of said information vector, and repeating this process for each of said three information vectors constructed during each frame so as to transmit all 9 bits from each timeslot containing data during a frame.

9. The process of claim 7 wherein each timeslot contains a number of bits divisible by an integer of 1 or more, said integer being the number of symbols to be transmitted during each frame, and wherein the process of constructing said information vector comprises taking from each timeslot as an element of said information vector a predetermined number of bits equal to the total number of bits in each timeslot divided by said integer.

10. A method for transmitting to a central unit a plurality of frames of data generated by a plurality of physically distributed remote units which receive a plurality of channels of digital data generated by a plurality of sources coupled to said plurality of physically distributed remote units, said plurality of remote units being coupled to said central unit via a cable television media designed to carry radio frequency signals, said multiple channels of digital data being transmitted simultaneously over said cable television media as said plurality of frames, said cable television media also carrying frequency division multiplexed cable television programming, comprising:

establishing frame synchronization at each remote unit by determining a transmit frame timing reference delay for each said remote unit such that, when each remote unit transmits data using that remote unit's transmit frame timing reference delay, said data will arrive at said central unit with its frame boundaries aligned in time with the frame boundaries of frames tranmitted from other remote units;

receiving one or more channels of digital data at each remote unit where said channels of digital data received by each remote unit are received in the form of a time division multiplexed data stream comprised of a plurality of timeslots wherein each timeslot contains one or more data bits from one channel such that all channels have a timeslot into which data from that channel may be tranmitted in said time division multiplexed data stream to a remote unit, and wherein each timeslot contains a number of bits divisible by an integer of 1 or more, said integer being the number of symbols to be transmitted during each frame;

at each remote unit, constructing an information vector having n elements by selecting portions of the bits of said digital data from each timeslot of digital data received at said remote unit and organizing said portions of bits as selected elements of said n elements of said information vector, where each element of said information vector corresponds to one of said timeslots but wherein any element of said information vector corresponding to a timeslot from which no data is received by any particular remote unit is set to zero, and wherein each said frame of data transmitted from each remote unit to said central unit comprises transmission of data generated from a sufficient number of code division multiplexed information vectors so as to code division spread all data from all timeslots to be transmitted during a single frame, and wherein the process of constructing said information vector comprises taking from each timeslot as an element of said information vector a predetermined number of bits equal to the total number of bits in each timeslot divided by said integer and encoding each predetermined number of bits taken from each timeslot with one or more redundant bits and storing said predetermined number of bits taken from each timeslot plus the redundant bits as an element of said information vector, said redundant bits being calculated based upon the present state of said predetermined number of bits taken from each timeslot and upon the previous state of these same predetermined bits for this same timeslot during the last frame, said calculation being performed using an algorithm designed to generate redundant bits which will aid a Viterbi Decoder in a receiver in said central unit to better determine from received data corrupted by media impairments what said predetermined bits were prior to encoding with said redundant bits;

at each remote unit, performing code division multiplexing by performing a matrix multiplication of the information vector generated at said remote unit times a code matrix comprised of n orthogonal spreading codes, each code comprising one row or one column of said code matrix and having n elements, said matrix multiplication generating a result vector having n elements, each element of said result vector comprised of the sum of the partial products of multiplication of each of the n elements of said information vector times the n elements of one of said orthogonal spreading codes, and wherein zero elements of said information vector cause zero elements in said result vector;

at each remote unit, modulating the n elements of said result vector onto one or more radio frequency carriers and transmitting each frame of modulated radio frequency signals to said central unit using the transmit frame timing reference delay determined for this particular remote unit so as to achieve upstream frame synchronization with other remote units;

summing the one or more radio frequency carriers generated by each remote unit with one or more radio frequency carriers generated by other remote units and transmitting the resulting radio frequency carriers on a cable television media carrying cable television programming while limiting the overall bandwidth of the resulting radio frequency signals so as to not interfere with said cable television programming.

11. The process of claim 10 wherein the step of code division multiplexing of said information vector each element of which is comprised of said predetermined number of bits from each timeslot plus one or more redundant bits results in said result vector having elements comprised of a second predetermined number of bits, and wherein said step of modulating said n elements of said result vector comprises the steps of dividing said second predetermined number of bits of each result vector element into a first predetermined number of I bits and a second predetermined number of Q bits, and using said I bits to modulate the amplitude of a first radio frequency carrier having a frequency selected so as to not interfere with said frequency division multiplexed cable television programming, and using said Q bits to modulate the amplitude of a second radio frequency carrier having the same frequency as said first radio frequency carrier but leading or lagging in phase from the phase of said first radio frequency carrier by 90 degrees, and summing the two resulting amplitude modulated radio frequency carriers for transmission on said cable television media.

12. The process of claim 10 wherein the step of performing code division multiplexing includes the steps of occasionally changing the particular orthogonal code each element of each new information vector is multiplied by while calculating said partial products which are summed to generate the individual elements of each new result vector.

13. The process of claim 10 wherein the step of occasionally changing the orthogonal codes the elements of each new information vector are multiplied by includes the steps of pseudorandomly selecting the particular orthogonal codes the elements of each new information vector are multiplied by to generate the partial products which are summed to generate each element of each new result vector.

14. The process of claim 10 wherein the step of performing code division multiplexing includes the steps of changing the particular orthogonal code each element of each new information vector is multiplied by while calculating said partial products which are summed to generate the individual elements of each new result vector.

15. The process of claim 14 wherein the step of changing the orthogonal codes the elements of each new information vector are multiplied by to generate said partial products which are summed to generate each element of said result vector includes the steps of pseudorandomly selecting the particular orthogonal codes the elements of each new information vector are multiplied by to generate the partial products which are summed to generate each element of each new result vector, and wherein said central unit uses the same pseudorandom sequence to determine which codes have been used to code division multiplex the elements of each information vectors for purposes of demultiplexing.

16. A method for transmitting to a central unit multiple channels of digital data generated by a plurality of sources coupled to a plurality of remote units which are coupled to said central unit via a cable television media designed to carry radio frequency signals but which are physically distributed from said central unit, said multiple channels of digital data being transmitted simultaneously over said cable television media as a plurality of frames of digital data, each said frame being separated from adjacent frames by guardbands, said cable television media also carrying frequency division multiplexed cable television programming, comprising:

establishing frame synchronization at each remote unit by determining a transmit frame timing delay for each said remote unit, said transmit frame timing delay for each said remote unit being established by a trial and error process of setting an initial value for said transmit frame timing delay and transmitting a timing signal during a frame, said timing signal recognizable by said central unit as a timing signal and monitoring a guardband following said frame during which said timing signal was transmitted with said central unit to determine if said timing signal appeared in said guardband, and transmitting a signal from said central unit indicating whether or not said timing signal appeared in said guardband, and, if said remote unit determines from the transmission from said central unit that a timing signal did not appear in said guardband, adjusting said transmit frame timing delay to a new value and retransmitting a new timing signal, and monitoring a guardband following the frame during which said new timing signal was transmitted with said central unit and transmitting from said central unit a signal indicating whether a timing signal appeared in said guardband, and, when said remote unit determines from said transmission from said central unit that a timing signal has appeared in said guardband, transmitting from said remote unit an identification code using the latest value for said transmit frame timing delay, said identification code indicating the identity of said remote unit, and monitoring said guardbands for said identification code with said central unit and transmitting a message from said central unit indicating which identification code was received, and monitoring said transmission with said remote units and comparing in each remote unit the identification code received by said central unit with the remote unit's identification code, and, if there is a match, stopping the process of adjusting said transmit frame timing delay value, and subsequently using the transmit frame timing delay value that resulted in said timing signal arriving during a guardband for all subsequent transmissions from said remote unit whose identification code was received from said central unit, and repeating the above described frame synchronization process for each remote unit that needs to achieve frame synchronization until frame synchronization is achieved, such that, when more than one remote unit transmits data using their respective transmit frame timing delays, said data from all transmitting remote units will arrive at said central unit simultaneously;

receiving one or more channels of digital data at each remote unit;

at each remote unit, constructing an information vector by selecting portions of said digital data from each channel of digital data received at said remote unit and organizing said portions as selected elements of said information vector having n elements where each element of said information vector corresponds to one of said channels but wherein any element of said information vector corresponding to a channel from which no data is received by any particular remote unit is set to zero;

at each remote unit, performing code division multiplexing by performing a matrix multiplication of the information vector generated at said remote unit times a code matrix comprised of n orthogonal spreading codes, each code comprising one row or one column of said code matrix and having n elements, said matrix multiplication generating a result vector having n elements, each element comprised of the sum of the partial products of multiplication of each of the n elements of said information vector times the n elements of one of said orthogonal spreading codes, and wherein zero elements of said information vector cause zero elements in said result vector;

at each remote unit, after frame synchronization has been achieved by that remote unit, modulating the n elements of said result vector onto one or more radio frequency carriers;

summing the one or more radio frequency carriers generated by each remote unit with one or more radio frequency carriers generated by other remote units and transmitting the resulting radio frequency carriers on a cable television media carrying cable television programming while limiting the overall bandwidth of the resulting radio frequency signals so as to not interfere with said cable television programming.

17. The process of claim 16 wherein said channels of digital data received by each remote unit are organized by said remote unit in the form of a time division multiplexed data stream comprised of a plurality of timeslots wherein each timeslot contains one or more data bits from one channel assigned to said remote unit by said central unit.

18. The process of claim 17 wherein said step of constructing said information vector comprises the steps of storing a portion of the bits from each timeslot as a corresponding element of said information vector, and wherein each said frame of data transmitted from each remote unit to said central unit comprises transmission of data generated from a sufficient number of code division multiplexed information vectors so as to code division multiplex all data from all timeslots to be transmitted during a single frame.

19. The process of claim 18 wherein each timeslot contains 9 bits, 8 of which are data from any source external to said remote unit and the 9th bit of which is available to send miscellaneous command and control information from the remote unit to said central unit, and wherein data from three information vectors are code division multiplexed from each remote unit to said central unit during each frame, and wherein each information vector is constructed at a remote unit by placing 3 bits from each timeslot containing data received at a remote unit into an element of said information vector, and repeating this process for each of said three information vectors constructed during each frame so as to transmit all 9 bits from each timeslot containing data during a frame.

20. The process of claim 18 wherein each timeslot contains a number of bits divisible by an integer of 1 or more, said integer being the number of symbols to be transmitted during each frame, and wherein the process of constructing said information vector comprises taking from each timeslot as an element of said information vector a predetermined number of bits equal to the total number of bits in each timeslot divided by said integer.

21. The process of claim 20 wherein the step of constructing said information vector is carried out by encoding each predetermined number of bits taken from each timeslot with one or more redundant bits prior to performing said code division multiplexing and storing said predetermined number of bits taken from each timeslot plus the redundant bits as an element of said information vector, said redundant bits being calculated based upon the present state of said predetermined number of bits taken from each timeslot and upon the previous state of these same predetermined number of bits for this same timeslot during the last frame, said calculation being performed using an algorithm designed to generate redundant bits which will aid a Viterbi Decoder in a receiver in said central unit to better determine from received data corrupted by media impairments what said predetermined bits were prior to encoding with said redundant bits.

22. The process of claim 21 wherein the step of code division multiplexing of said information vector each element of which is comprised of said predetermined number of bits from each timeslot plus one or more redundant bits results in said result vector having elements comprised of a second predetermined number of bits, and wherein said step of modulating said n elements of said result vector comprises the steps of dividing said second predetermined number of bits of each result vector element into a first predetermined number of I bits and a second predetermined number of Q bits, and using said I bits to modulate the amplitude of a first radio frequency carrier having a frequency selected so as to not interfere with said frequency division multiplexed cable television programming, and using said Q bits to modulate the amplitude of a second radio frequency carrier having the same frequency as said first radio frequency carrier but leading or lagging in phase from the phase of said first radio frequency carrier by 90 degrees, and summing the two resulting amplitude modulated radio frequency carriers for transmission on said cable television media.

23. The process of claim 16 wherein the step of performing code division multiplexing includes the steps of changing the particular orthogonal code each element of each new information vector is multiplied by while calculating said partial products which are summed to generate the individual elements of each new result vector.

24. The process of claim 23 wherein the step of frequently changing the orthogonal codes the elements of each new information vector are multiplied by includes the steps of pseudorandomly selecting the particular orthogonal code each new information vector is multiplied by to generate the partial products which are summed to generate each element of each new result vector.

25. The process of claim 22 wherein the step of performing code division multiplexing includes the steps of changing the particular orthogonal code each element of each new information vector is multiplied by while calculating said partial products which are summed to generate the individual elements of each new result vector.

26. The process of claim 25 wherein the step of changing the orthogonal codes the elements of each new information vector are multiplied by includes the steps of pseudorandomly selecting the particular orthogonal code each new information vector is multiplied by to generate the partial products which are summed to generate each element of each new result vector.

27. An apparatus for transmitting multiple channels of digital data from a remote unit to a central unit over a shared transmission media using synchronous code division multiple access modulation, comprising:

means for accepting incoming data of a time division multiple access stream comprised of N time slots or channels each of which contains one or more bits of digital data and spreading the data of said N channels over a frame comprised of M contiguous symbols and a guardband during which no data from said time divsion multiple access stream is transmitted, said spreading being carried out by reorganizing said data from said N channels into said M information vectors each comprised of a plurality of subgroups of bits from said time divsion multiple access stream, each information vector containing at least one subgroup of data from each said channel;

means for encoding said M information vectors using a plurality of orthogonal codes to generate M result vectors and using said result vectors to modulate radio frequency carrier signals using M-ary QAM modulation and for transmitting said modulated radio frequency carrier signals over said shared transmission media said composition of said information vectors and said encoding said information vectors using orthogonal codes being such that the temporal relationships of the data bits in said time divsion multiple access stream is altered in said symbols, and such that when modulated radio frequency carrier is transmitted over said shared transmission media, the energy distribution of the signals resulting from said data from said N channels is spread out over substantially all of said frame;

means for adjusting the timing of said transmission of each frame from said remote unit to said central unit such that each transmitted frame arrives at said central unit aligned in time with frame timing established by said central unit.


Video Cable Description
FIELD OF THE INVENTION

The invention pertains to the field of bidirectional communication of digital data over coaxial cable or other transmission media. More particularly, the invention pertains to the field of provision of multiple channels of digital data including interactive TV services, digital telephony, video teleconferencing, video on demand, internet access at 10 megabit/second or media data rates etc., all provided to home or business establishments over cable TV coax or combinations of coaxial cable, fiber optic links, microwave or satellite links or other wireless systems using synchronous CDMA modulation.

BACKGROUND OF THE INVENTION

In order to provide bidirectional digital data communication over a cable TV coaxial network to multiple subscribers with multiple services available over a single coax cable (hereafter called interactive systems), several problems have to be solved. First, there is the problem of noise and interference. A second major problem, but related to the first problem, is synchronization of data transmission so that effective, error-free communication can be achieved. Cable networks typically involve a so-called head end or central unit from which video is transmitted to subscribers coupled to one or more main trunk lines from which extend numerous branch lines which may enter subscriber homes or which may couple to other branch lines. At each junction of a branch line to the trunk line or another branch line there is a directional coupler which is intended to direct transmissions from the head end to the subscribers in one direction and to direct transmissions from the subscribers back to the head end without leaking energy intended for transmission to the head end into branch lines coupled to other subscribers. In order to send digital data over video coax, a modem is necessary at both the head end and at all the subscriber locations to modulate digital data onto the coax as RF signals, and to receive RF signals carrying digital data and derive the digital data therefrom. Because RF signals are propagating along the cables, and because the couplers are not perfect, reflections occur at the directional couplers that cause noise and interference. This is because the reflections are frequently of the opposite polarity depending upon the impedance mismatch and the distances involved. These reflections are therefore sometimes additive and sometimes subtractive, thereby resulting in random variations in the amplitudes of the RF signals. These random variations make discrimination during the demodulation process to derive the digital data more difficult.

Further, because the subscribers are at physically different distances from the head end, the signals from each subscriber's modem arrive at the head end at different times because of different propagation delays. Because digital data is transmitted in frames and because all subscribers must be synchronized to the same frame timing, these different propagation delays for each subscriber cause problems in synchronizing data.

In the typical interactive system, there are bidirectional amplifiers. Each amplifier has two channels, one of which amplifies signals in a high frequency range from 45-750 mHz for transmission of data from the head end to subscribers, and the other of which amplifies signals in a low frequency range from 5-42 mHz for transmission of data from the subscribers to the head end. When the operating frequency is close to the edges of either the high or low band, group delay distortion can result in another impairment to noise free bidirectional communication.

Other forms of linear impairment result from the fact that the bandpass filters in the system do not have perfectly flat amplitude characteristics for their transfer functions across the entire passband, especially at the corner frequencies.

Other forms of impairments are so-called additive impairments resulting from taps on the system which are not properly terminated. These taps act as antennas and pick up broadcast signals from FM stations, CB radios, HF communication etc. Other sources of noise are impulse signals resulting from arcing in electrical appliances near taps. Arcing generates white noise type RF energy that is splattered across all bands and is radiated much like lightening. In addition, the amplifiers in the interactive system can sometimes break into oscillation thereby creating noise. Further the horizontal and vertical oscillators in television sets in the subscriber's household also can radiate RF interference signals. These sources of interference are a major contributor to noise in the system.

The collection of impairments described above are referred to as linear impairments because the system has a linear transfer function so that in the Fourier domain, all the impairment effects are additive.

In addition to the linear impairments, there also exist nonlinear impairments such as second and third order harmonics generated by the nonlinear junctions of transistors in the amplifiers in the system. When multiple sinusoidal signals arrive at the amplifiers, beat frequencies are generated in addition to the harmonics of the arriving signals because the nonlinear junctions act like mixers.

Other forms of nonlinear impairment are hum from saturation of magnetic cores of transformers in the amplifiers resulting from 60 volt, 60 Hertz AC square wave pulses sent to the amplifiers over the coax to supply the amplifiers with power. The amplifiers have rectifiers that rectify this square wave signal to derive power therefrom and this process generates noise in the form of hum. This hum is caused by amplitude modulation of the power supply signal resulting from the placement of the operating point on the hysteresis curve of the rectifier transformers.

Interactive systems typically involve in excess of one hundred different channels on which separate digital data streams can flow in addition to the separate channels on which the video signals are provided for normal cable TV service. To send digital data as RF signals, very complex constellations of separate amplitude and phase combinations are used to encode the digital characters being transmitted. Because of the large number of data points, the differences in phase and amplitude between the different points are not large. Therefore, the impairments described above can cause errors by causing misinterpretation by demodulators of what characters were actually sent.

There is only one conductive path between the head end and the subscribers that must be shared by all the subscribers to send and receive digital data. One approach that has been tried in prior art interactive cable TV systems is time division multiple access sharing (TDMA) with quadrature phase shift keying (QPSK) modulation schemes. In a TDMA system, each subscriber gets a short assigned time slot in which to transmit data to the head end. The TDMA approach has shortcomings in that it causes difficulty and complexity in achieving "alignment". Alignment refers to the proper timing of each subscriber's transmissions so that they arrive during the appropriate time slot at the head end despite the fact that the signals from each subscriber have different propagation times. Alignment in TDMA multiple access schemes is critical, and achieving it is difficult.

Another difficulty with the TDMA approach is the high susceptibility of QPSK modulation to narrowband interference. Narrowband interference results when a signal like Voice of America or a harmonic which has a bandwidth similar to the bandwidth of the channels upon which digital data is being transmitted enters the transmission media. Typically this happens at a tap which is not properly terminated. Narrowband interference adversely affects the receiver circuits and the alignment circuits that achieve synchronization of all the sources.

The use of TDMA schemes also complicates the alignment problem in the presence of narrowband interference and other noise because there is such a short time for synchronization. Synchronization of the head end to all the subscribers is necessary so that the clock signal and other reference signals such as the carrier can be recovered from the transmitted signals without being separately transmitted. These recovered signals are critical to proper operation of the system in demodulating the transmitted data. Narrowband interference also adversely affects the decision making circuits that decipher which characters have been transmitted thereby increasing the error rate. Increased error rate requires more bandwidth to be consumed in retransmitting data and wastes processing power in detecting and correcting errors and retransmitting data with errors that are beyond the correction range of the ECC bits transmitted with the data.

Also, because in TDMA schemes the timeslots are very short, TDMA systems are susceptible to loss of data caused by long bursts of noise. Typical bursts of impulse noise are quite long relative to the length of the TDMA timeslots. Long bursts often wipe out entire groups of timeslots thereby requiring retransmission of all the data in these timeslots. Modulation and multiple access schemes that spread out the energy of transmitted data over longer times, such as FDMA schemes, are less susceptible to this type of burst noise. However, FDMA schemes have other drawbacks.

QPSK modulation used in TDMA schemes is also not the most efficient modulation scheme in terms of spectral efficiency, i.e., speed of transmission in bits/second/Hertz over a given bandwidth. However, QPSK modulation is used because it has a sufficiently large distance between points in the constellation to maintain relatively good noise immunity. Noise immunity refers to the ability of a system to achieve a certain bit error rate that is deemed to be tolerable for a given signal to noise ratio. If the signal to noise ratio decreases for a given noise immunity characteristic, the bit error rate will rise.

Typically, channel bandwidths are 6 mHz, and spectral efficiency of 27 megabits/second/Hertz is desired. Therefore, a data transfer rate of 162.times.10.sup.12 is achievable over one channel at this typical spectral efficiency and bandwidth. However spectral efficiency for QPSK modulation is on the order of 1 bits/second/Hertz or less so this modulation scheme is too slow for high traffic volume applications such as video on demand, video teleconferencing etc.

Another approach that has been tried in the prior art is frequency division multiple access (FDMA). In FDMA, each subscriber transmits data on a different carrier frequency as opposed to at a different time in TDMA. FDMA schemes suffer from different drawbacks than TDMA schemes. Because there are multiple carriers in FDMA schemes, there are more intermodulation products in the received signals. These intermodulation products can coherently add to each other thereby causing peaks in amplitude which are far greater than the average signal. This causes difficulty in designing analog circuits with adequate ranges of linearity to handle these signals without clipping the peaks. These peaks often penetrate into the nonlinear or saturation range of operation of analog circuits in the system exposed to these signals thereby introducing nonlinearities. Even without these nonlinearities, the intermodulation components tend to cause crosstalk between adjacent channels which increases the error rate.

FDMA schemes are also sensitive to narrowband interference signals that suddenly appear causing unanticipated "jamming" of one or more channels thereby causing long bursts of errors. FDMA channels are narrow, and claims have been made that because of this fact narrowband interference can be avoided. However, narrowband interference is dynamic, because there are multiple sources thereof at different frequencies. As a result, narrowband interference signals can suddenly "pop up" when a subscriber turns on his or her TV or when Voice of America starts broadcasting. This sudden pop-up interference can jam a channel thereby causing error bursts.

Therefore, a need has arisen for a method and apparatus that can support interactive digital systems that eliminates some of these drawbacks.

SUMMARY OF THE INVENTION

According to the teachings of the invention, there is provided a code division multiplexing multiple access (CDMA) scheme using orthogonal codes to encode multiple channels of digital data for simultaneous transmission over a cable television media which is also carrying frequency division multiplexed cable television programming. Further, in the preferred embodiment, alignment of multiple subscriber remote units at diverse locations on the cable television media to the same frame alignment is used to substantially reduce crosstalk between adjacent codes. Any of the known ways of achieving frame alignment may be used to achieve synchronous code division multiple access data transmission. In the preferred embodiment, frame alignment is achieved by alignment of timing signals transmitted by remote units to guardbands or gaps between frames.

One inventive concept disclosed herein is to achieve high noise immunity by spreading the energy of the transmitted data out over time during transmission, and then compressing the energy again at the receiver to recover the data. Spreading the energy of the transmitted data out over time reduces susceptibility to burst errors and impulse noise. In addition to this spreading concept, the spectral efficiency of the system is enhanced by transmitting multiple separate channels of data over the same media without interference by using separate orthogonal codes to encode the data of each channel so that no interference results when all channels are simultaneously transmitted so long as proper frame alignment is maintained. In this way, the spectral efficiency, i.e., a measure of the amount of data that can be sent from one place to another over a given bandwidth, is enhanced without degradation of the data by crosstalk interference. The orthogonality of the codes used for each data stream minimizes crosstalk between data streams where the system is properly aligned, i.e., synchronized, and, using cyclic, orthogonal codes further enhances noise abatement by providing the ability to perform equalization. Equalization, as that term is used herein, refers to the process of determining the amount of crosstalk between adjacent codes resulting from minor errors of frame timing alignment and then generating signals which can be used to negate the crosstalk. In the preferred embodiment, the orthogonal codes are cyclic codes.

In some species within the genus of the invention, code diversity is used to achieve further noise immunity. It has been found that some orthogonal codes are less immune to narrow band interference and other sources of noise than others. To avoid using such codes to spread the data from the same channel or timeslot all the time, code hopping is used in these preferred species of the inventive genus. Code diversity is achieved in several different ways, but, in the preferred embodiment, each transmitter uses a code shuffler circuit and each receiver uses a code deshuffler circuit. All shuffler and deshuffler circuits receive the same seed and generate the same sequence of pseudorandom numbers therefrom. These pseudorandom numbers are used to generate read pointers to a framer memory and write pointers to a buffer memory. The framer memory is where the information vectors or symbols are stored, and the read pointers generated by the shuffler circuits are used to read the timeslot data, i.e., symbol/information vector elements out in pseudorandom fashion and store them in a buffer in accordance with the write pointers generated by the code hopping shuffler circuit. The information vector elements thus stored in the buffer are used to do the matrix multiplication required by the code division multiplexing scheme. Alternatively, the symbol elements may be read out sequentially from the framer memory and stored pseudorandomly in the buffer.

The effect of this synchronous CDMA scheme is to "whiten" the noise sources such that no matter how complex the noise signals, the noise can be effectively managed using conventional error detection and correction bits. In other words, the digital data providing the interactive or bidirectional data communication is sent using a CDMA scheme, but for purposes of synchronization, the CDMA scheme is mixed with a TDMA scheme. More precisely, a guardband free of data is added to the CDMA signal. Digital data is transmitted in frames, each frame comprising 3 data symbols and a guardband. The guardband is used for non-data usage such as ranging, alignment and equalization.

The synchronous CDMA modulation scheme disclosed herein may be used with any shared transmission media and with any apparatus or method that can get all remote units synchronized to the frame timing of the central unit including the ranging/alignment scheme disclosed herein. Other possible methods of synchronizing to the same frame timing are for all remote units and the central unit to receive the same timing reference signals from some source such as internal atomic clocks or from an external source such as a Global Positioning System satellite from which all remote units and the central unit are effectively equidistant.

Likewise, the ranging/alignment scheme disclosed herein is useful for any other modulation scheme which transmits digital data in frames, requires frame synchronization and can insert a guardband between the frames.

Some species within the inventive genus use M-ary modulation code division multiplexing. Each remote unit receives a time division multiplexed stream of digital data. Each timeslot contains 9 bits of data. Each 9 bits is stored in a framer memory, and is divided into three tribits, each having 3 bits during readout of the memory. Each of the three symbols transmitted each frame is comprised of 144 of these tribits, one for each timeslot or channel. These tribits are encoded with a 4th bit prior to spreading by the code division multiplexing operation. The 4th bit is added to each tribit based upon the three bits of the tribit and based upon the previous state for this timeslot's data during the last frame. This 4th bit adds sufficient redundancy to enable a Viterbi Decoder in the central unit receiver to make a more error free determination of what data was actually sent in the presence of noise. The 4th bit also maps each tribit to a 16 point QAM (quadrature amplitude modulation) constellation by using the first two bits to represent the inphase or I axis amplitude and the last two bits to represent the quadrature or Q axis amplitude. Thus, M-ary modulation is used to achieve greater spectral efficiency.

Any method or apparatus that uses these inventive concepts is within the teachings of the invention and is deemed to be equivalent to the apparatus and methods described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a general system according to the genus of the invention for simultaneous transmission of digital data from multiple subscribers to a head end receiver over a shared coaxial cable using orthogonal codes and for recovery of the separate data streams from each subscriber at the head end receiver.

FIG. 2 is the mathematical relationship that defines the property of orthogonality of the codes used by the modulator/transmitters in FIG. 1.

FIG. 3A is the mathematical relationship that the system of FIG. 1 uses to recover the individual data streams sent by the subscribers at the head end and vice versa, and FIGS. 3B through 3G illustrate a specific working example of how the mathematical relationship of FIG. 3A could be used to transmit two channels of data simultaneously over the same shared media.

FIG. 4A shows a typical data structure for a frame.

FIG. 4B is a symbolic diagram illustrating the concepts involved in alignment to achieve frame synchronization, also called ranging herein, for the preferred species within the genus of the invention.

FIG. 5 is a diagram like that of FIG. 4B which illustrates a problem requiring re-alignment which occurs when the network physically expands.

FIG. 6 is a diagram like that of FIG. 5 which illustrates the solution to the misalignment problem outlined in the discussion of FIG. 5.

FIG. 7, which is comprised of FIG. 7A, 7B, and 7C, is a flow chart for the general alignment process which is used in training all remote units (RUs) to set their delay vectors properly so as to be in alignment within the same frame.

FIG. 8 is a flow chart of one embodiment of a process to resynchronize all RUs after the central unit (CU) has changed its delay vector called the dead reckoning process.

FIG. 9 represents the preferred process for resychronizing all RUs after the CU has changed its delay vector called the precursor process.

FIG. 10 shows a typical cable television system arrangement in which the teachings of the invention find utility in a multi-RU, multichannel environment where the head end at the location of the CU sends FDMA cable television programming to television sets at the locations of the Rus and the Rus and Cus simultaneously communicate multiple channels of digital data over the same CATV coax using a combination of TDMA/CDMA and FDMA in some embodiments.

FIG. 11 is a block diagram of one general multichannel embodiment for the internal structure of each RU modem's transmit channel circuitry for transmitting data to the CU and a general structure for a CU to recover the data and illustrating how multiple external devices send data to each RU in TDMA streams.

FIG. 12 shows the circuitry that implements the framer memory in the preferred embodiment which converts the TDMA input data streams into three columns of tribits for encoding and conversion by other circuitry into the three symbols of 144 chips apiece that are transmitted during every frame.

FIG. 13 shows the timing relationships between the chip clock signal which sets timing in the code domain and the bit and byte clocks which set timing in the time domain. FIG. 13 also shows a number of other signals generated by time base generator 350 in FIG. 12.

FIG. 14 is a memory filling diagram that illustrates how entire 9-bit bytes are received continuously from the timeslots of the TDMA stream, but 3 bit tribits for each of 128 data channels and 16 command and control channels are sent out simultaneously to circuitry which composes the symbols of each frame.

FIG. 15 is a diagram illustrating in block diagram form how the delay necessary in each RU and CU to maintain frame synchronization system-wide is achieved.

FIG. 16 represents portions of the framer memory 300 with the stippled portion representing the number of addresses difference between the position of the read pointer and the position of the write pointer to implement the transmit frame timing reference delay.

FIG. 17 is a timing diagram showing the relative rates of incrementation of the read and write pointers in the framer.

FIG. 18 is a block diagram of the time base generator.

FIG. 19 is a general block diagram of the preferred embodiment of the transceiver circuitry included in each RU and CU.

FIG. 20 is a diagram which helps illustrate the manner in which framer memory 300 is emptied for transmission.

FIG. 21 maps each of 16 possible input points, i.e., permutations of the 4 bit "chips" in each symbol array, to a point in space defined by the in-phase or I axis for the real part and the quadrature or Q axis for the imaginary part of each point to implements M-ary QAM modulation.

FIG. 22 is a table listing all the possible input points of FIG. 21, I.e., the 16 combinations of 4 bit chips in the Code column and the corresponding 2's complement digital representation of the I and Q coordinates for each combination in the Inphase and Quadrature columns, respectively.

FIG. 23A illustrates how the information vector [b] for each symbol has its energy spread over time by the process of code division multiplexing implemented using matrix multiplication of the information vector [b] of each symbol times a matrix of orthogonal codes.

FIG. 23B is another illustration of the matrix multiplication process carried out in encoder 402 in FIG. 19 to encode the real or I coordinates of each information vector using an orthogonal code matrix to generate the real or I coordinates of a result vector for use by the QAM modulator.

FIG. 24 is a block diagram illustrating more details of the components and operation of the multiplexer 408 and the QAM modulator 410 used in the preferred species within the inventive genus.

FIG. 25 is a plot of the changes in amplitude over time of the real components of the results vector for the array 409 illustrating the need for bandwidth limiting filters.

FIG. 26 is a more detailed block diagram of the structure of the demodulator in the receive channel.

FIG. 27 is a general block diagram illustrating a shuffler circuit useable in some embodiments to achieve code diversity.

FIG. 28A is a block diagram of the preferred embodiment of a transmitter within the inventive genus of the invention using bit parsing from each timeslot, TDMA/CDMA spreading, M-ary QAM modulation, code diversity, encoding of each tribit with redundant bits for forward error correction and to aid Viterbi Decoding in the receiver, scrambling of bits of each tribit for security and signal to noise improvements, ranging according to the preferred species and equalization circuitry.

FIG. 28B is a block diagram of one embodiment for achieving code diversity using rolling sequential code assignment.

FIG. 28C is a partial block diagram of the modifications to the block diagram of FIG. 28B to achieve code diversity with pseudorandom code assignment.

FIG. 28D is a block diagram of the preferred embodiment of a code shuffler to achieve code diversity using pseudorandom code assignment.

FIG. 29 is a flow chart for the process of preferred method of ranging using contention resolution carried out by the circuit/programmed microprocessor 510 of FIG. 28A in an RU modem transmitter.

FIG. 30 represents one embodiment for an authentication process in support of the preferred ranging process which uses pulse position modulation to send the authentication code. In this embodiment, each RU that has been attempting to establish synchronization sends one ranging pulse during the gaps of each of 8 frames but varying the position of the pulse in the gap during each gap.

FIG. 31 is a flow chart representing the preferred ranging and contention resolution carried out on the CU side.

FIG. 32 is a flow chart representing one embodiment of the ranging or alignment and contention resolution process to achieve frame synchronization carried out by the RUs using a binary tree algorithm.

FIG. 33 is a flow chart representing another embodiment for a ranging and contention resolution process carried out by the RUs using a binary stack.

FIG. 34 is a block diagram of the preferred species of a receiver within the inventive genus which can receive data transmitted by the transmitter of FIG. 28A and supports TDMA/CDMA spreading, code deshuffling supporting code diversity, forward error correction, equalization, and Viterbi Decoding.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Code Division Multiple Access System For CATV Media

Referring to FIG. 1, there is shown a conceptual diagram of a system for multiple access digital communication over a cable TV coaxial conductor distribution system using orthogonal codes for CDMA. The system of FIG. 1 depicts only the circuitry to transmit data from multiple subscribers to a head end receiver. Similar circuitry to transmit data from the head end back to the subscribers exists but is not shown for simplicity. The details of how to design circuits to carry out the various functions described herein are known in the art including the excellant treatise, Dixon, "Spread Spectrum Systems with Commercial Applications", Third Edition, 1994 (Wiley & Sons, New York), the entirety of which is hereby incorporated by reference.

FIG. 2 is the mathematical relationship that defines the property of orthogonality of the codes used by the modulator/transmitters in the system. The codes used in modulator/transmitters 12 and 16 are orthogonal if the summation of the product thereof over time from 0 to T is equal to 1 if the codes are the same code, i.e., if i=j where i=code #1 and j=code #2, but is zero if i is not equal to j. In other words, if the codes are different and orthogonal, the summation of the products of the signals modulated by these orthogonal codes is zero, meaning that signals modulated by the different orthogonal codes can travel over the same conductor without interference and without crosstalk. There is more that one set of orthogonal codes, but any orthogonal code will suffice to practice this aspect of the teachings of the invention.

FIG. 3A is the mathematical relationship which the system of FIG. 1 uses to send multiple channels of digital data over the same conductor without interference between channels. [b] in FIG. 3A represents an information vector that contains a symbol to be transmitted on each channel as a vector element. [c] represents a code matrix having the unique orthogonal code for each channel as its columns. [c.sup.T ] represents the transpose matrix of the code matrix [c] where each column of [c] becomes a row of [c.sup.T ]. Finally, [i] represents the identity matrix where all entries are zeroes except for a line of 1's along the diagonal. In FIG. 1 to be described below, the matrix multiplication [b].times.[c] is the processing that occurs on the transmit side of each transmission. The processing that occurs on the receiver side of the transmission is a matrix multiplication of the transpose matrix [c.sup.T ] times the signals generated on the transmit side by the multiplication of the information vector [b] times the code matrix [c] to yield a matrix representing the product [b].times.[i]. Because the identity matrix is known, the product [b].times.[i] allows recovery of the information vector [b].

To utilize these mathematical relationships of FIGS. 2 and 3A and convert them into a practical digital data communication system, symbolized by the system of FIG. 1, subscriber #1 provides a digital input stream of symbols or bits using any input device or computer (not shown). This digital data stream to be transmitted to the head end arrives on bus 10 at the data input of a code #1 modulator/transmitter 12. This digital data stream will be divided into individual symbols transmitted at the rate of three symbols/frame in the preferred embodiment. The teachings of the invention can be employed using symbols, data bytes or any other grouping of digital data. The first bit from the stream on bus 10 will be the first vector element in the information vector [b]. For the sake of simplicity, the manner in which symbols are formed from the incoming data stream will not be described here, but will be described in greater depth below herein. In the preferred embodiment, symbols are formed by filling individual address locations in a framer memory (not shown) with 9 bit bytes which arrive one per timeslot. The individual data streams on buses 10 and 14 are TDMA streams divided into multiple successive timeslots. Thus, time increases along one axis of the framer memory. Symbols are formed by reading the memory "across time", i.e., along an axis orthogonal to the axis of increasing time.

In the embodiment shown in FIG. 3A, modulator/transmitter 12 converts the digital data in the data stream arriving on bus 10 into amplitude modulations of a carrier signal using a first orthogonal code, and outputs the modulated carrier signal on feeder link coaxial conductor 18 coupled to an input of a summer 20. To do this, the modulator/transmitter 12 performs a matrix multiplication of the the element of the information vector [b] from the TDMA stream on bus 10 times the appropriate element of the first column of code matrix [c], i.e., code #1 and uses the results to control a modulator which appropriately modulates an RF carrier. All other elements of the information vector [b] representing data from other TDMA streams at other locations are set to zero at the location of modulator/transmitter 12 but are set to the appropriate values at the modulator/transmitters at the locations of their respective TDMA streams. Thus, each modulator/transmitter does only the portion of the matrix multiplication [b].times.[c] for data from its TDMA stream. The individual partial products from each modulator are summed by a summer 20 to give a result vector R=[b].times.[c] representing the final result of the full matrix multiplication.

Likewise, subscriber #2 provides a digital data input stream on bus 14 to a code #2 modulator/transmitter 16. This digital data stream on bus 14 will be divided into individual symbols or bits to be transmitted. The first bit from the stream on bus 10 will become the second vector element in the information vector [b]. Modulator/transmitter 16 converts the digital data in the data stream arriving on bus 14 into amplitude modulations of a carrier signal by partial matrix multiplication similar to that done by modulator/transmitter 12 using a second code, i.e., another column of the code matrix [c] which is orthogonal to said first code.

Modulator/transmitter 16 then outputs the modulated carrier onto a feeder link coaxial cable 22 coupled to another input of summer 20. That is, the modulator/transmitter 16 performs the multiplication of the second element of information vector [b] times the appropriate element of the second column of code matrix [c], i.e., code #2.

The effect of the multiplications by the modulator/transmitters 12 and 16 is to spread the energy of each bit or symbol to be transmitted out over time by multiplication of each bit in the information vector by the multiple code elements in the appropriate column of the code matrix [c].

Further, because the symbols are read from the framer memory "across time", the individual bits in the TDMA streams in the time domain on buses 10 and 14 are not transmitted in contiguous temporal relationship in the symbols used in the matrix multiplications to generate the signals transmitted in the code domain on coaxial/fiber data paths 18, 22 and 24. This form of spread spectrum modulation renders the system less susceptible to burst or impulse noise interference that adversely affects timeslots in the TDMA streams. The use of orthogonal codes provides simultaneous multiple access such that multiple digital channels can be simultaneously transmitted over a shared data path, and minimizes crosstalk between digital channels, especially where proper frame timing alignment among multiple subscribers is utilized. To implement this modulation scheme, each of the modulator/transmitters 12 and 16 uses the partial results of the multiplication [b].times.[c], i.e., one element of the [b] vector times the appropriate element of a column of the [c] matrix, to modulate a carrier signal generated therein to generate the RF signals which are summed by summer 20 and transmitted to the head end receiver 26 on coaxial links 18 and 22.

As a specific example to illustrate how the information vector is multiplied by the code matrix in the transmittter/modulators, please refer to the following. In this hypothetical, assume that code #1 for user 1 is [1,1] and that code #2 for user 2 is [1,-i], as depicted on FIG. 3B. Thus, the first column of the code matrix will be 1/.sqroot.2, and 1/.sqroot.2 from top to bottom and the second column of the code matrix will be 1/.sqroot.2, and -1/.sqroot.2 from top to bottom, all as shown in FIG. 3C. Note that each code element in this embodiment is divided by .sqroot.2 for reasons which will be described below.

Also, assume that user 1 asked for and received one channel designated channel #1 from a head end allocation circuit (not shown) and wants to transmit a +1 during a first frame of data on transmission media 24. Also, assume that user 2 asked for and received one channel to transmit data and that channel is designated channel #2, and assume that user 2 wants to transmit a -1 during the first frame. In such a case, the information vector [b] for the first frame of data to be transmitted is [1,-1] with the first element, 1, representing the number the first user wants to send during the first frame on channel 1, and the second element, -1, representing the number the second user wants to send during the first frame on channel #2. These concepts are all represented by FIGS. 3D and 3E.

The multiplication of the information vector [b] times the code matrix [c] results in a result vector R for transmission of [0,2/.sqroot.2]. This multiplication is done by multiplying information vector [1,-1] times the first column of the matrix and summing the two products 1/.sqroot.2 and -1/.sqroot.2) to yield 0 as the first element of the result vector. Next, the information vector [1,-1] is multiplied by the second column of the code matrix to yield two partial product results of 1/.sqroot.2 and 1/.sqroot.2. These two partial product results are summed by the summer 20 to yield the second element in the result matrix, 2/.sqroot.2, all as shown in FIG. 3F. Therefore, the modulator/transmitter 12 will modulate the carrier to an amplitude or frequency representing the level 0 of the first element of the result vector R=[0,2/.sqroot.2] during a first time and drive the carrier so modulated onto coaxial link 18 during the first time. Likewise, the modulator/transmitter 16 will modulate the carrier to an amplitude or frequency representing the level 2/.sqroot.2 of the second element of the result vector R during a second time and drives the carrier so modulated onto coaxial link 22 as the combined signal carrying the data from both channels #1 and #2 simultaneously across the shared transmission media 24.

Shared transmission media 24 can be any metallic or fiber optic media, terrestial microwave link or satellite/cellular link. Appropriate interface circuitry to place the result signal represented by the vector [0,2/.sqroot.2] onto the particular transmission media are known and are not critical to the invention.

The multiplication [b].times.[c] is carried out by the two code modulator/transmitters 12 and 16, each doing a part of the multiplication. Modulator 12 multiplies the first element of the information vector [b] from subscriber #1 times the elements in the first row of the code matrix and outputs the resulting partial products during two successive intervals on line 18 coupled to the input of the summer 20. Likewise, the code #2 modulator 16 multiplies the second element of the information vector [b] from subscriber #2 times the two elements in the second row of the code matrix [c] and outputs the resulting two partial products on line 22 to the summer 20 during the same two successive intervals used by modulator 12. The signals output by the modulator/transmitters 12 and 16 during the first of the two successive intervals are summed by summer 20 and output on coaxial cable 24 as the first component, 0, of the result vector R=[0,2/.sqroot.2]. The signals output by the modulator/transmitters 12 and 16 during the second of the two successive intervals are summed by summer 20 and output on coaxial cable 24 as the second component, 2/.sqroot.2, of the result vector [0,2/.sqroot.2].

Not shown in FIG. 1 for simplicity is a modulator that takes the result vector and uses it to modulate the amplitude, phase or frequency (or some combination of these) of a radio frequency carrier, which is then input to the shared transmission media 24 for transmission to the head end.

To recover the original information vector [b], on the receiver side of the transaction, the receivers multiply the received signals times the transpose code matrix [c.sup.T ] in a manner to reverse the encoding process. To derive the transpose matrix, the columns of the code matrix [c] become the rows of the transpose matrix [c.sup. T]. In the hypothetical example at hand, the transpose matrix will have [1/.sqroot.2,1/.sqroot.2] as its first row corresponding to the first column of the code matrix [c]. The second row of the transpose matrix will be [1/.sqroot.2,--1/.sqroot.2] corresponding to the second column of the code matrix [c], as shown in FIG. 3G. Thus, in the example at hand, the transpose matrix [c.sup.T ] is actually identical to the code matrix [c]. The result of multiplication of the result vector R=[0,2/.sqroot.2], representing the signal on coaxial cable 24, times the first column of the transpose matrix is 0+2/2=1 for the first element of the recovered information vector [b]. The result of multiplication of the result vector [0,2/.sqroot.2] times the second column of the transpose matrix is 0+(-2/2) =-1 for the second element of the recovered information vector [b]. The resulting recovered information vector [b] is [1,-1].

In the preferred embodiment, a normalization factor, equal to the square root of the number of separate codes in use, is used on both the transmit and receive sides as a denominator for each code matrix element and as a denominator for each transpose matrix element. This enables recovery by the receivers of an information vector [b] which has elements which are equal to the original data generated by the users. In the example of FIGS. 3B through 3G, each of the elements in the code matrix [c] (and, consequently, its transpose matrix [c.sup.T ]) are divided by this normalization factor .sqroot.2.

Returning to the discussion of FIG. 1, coaxial cable 24 is coupled to a head end receiver 26. At the head end receiver, the signal on cable 24 is split onto separate coaxial cable links 28 and 30, each of which is coupled to a receiver of which receivers 32 and 38 are typical. The function of the receivers is to demodulate the received signals to derive the elements of the result vector which were used as modulation factors, and to multiply these result vector elements times the columns of the transpose matrix [c.sup.T ] to recover the information vector [b] originally transmitted. To accomplish this function, link 28 is coupled to the analog input of a receiver 32 which is comprised of a multiplier 34 and an integrator 36.

Not shown, for the sake of simplicity, is a demodulator/discriminator which converts the amplitude, phase or frequency variations (or some combination of the two) of the incoming RF signals received from coaxial cable/fiber optic data path 24 into analog signals representing the result vector elements which are coupled to the analog inputs of the multipliers 34 and 40.

The multiplier 34 receives as one input the demodulated analog signal on link 28 and as another input on line 35 an analog signal representing the elements in column 1 of the transpose matrix [c.sup.T ].

Likewise, link 30 and the demodulator/discriminator (not shown) is coupled to a receiver 38 which is comprised of a multiplier 40 and an integrator 42. The multiplier 40 has as one input, the analog demodulated signal from link 30 and has as another input a signal on line 37 representing the elements of column 2 of the transpose matrix [c.sup.T ].

Multiplier 34 multiplies the signals on link 28 during a first time interval times the first column element of the first column of the transpose matrix and outputs the result on line 44 to the summation input of integrator 36. During the second time interval when the second element of the result vector [0,2/.sqroot.2] is arriving, the multiplier 34 multiplies the second element thereof, 2/.sqroot.2, times the second element in the first column of the transpose matrix [c.sup.T ] and outputs the partial product result on line 44 to the summation input of the integrator 36. The integrator 36 sums the two partial products from the first and second time intervals, and outputs the sum on line 46 as the first element, 1, of the recovered information vector [b].

Likewise, multiplier 40 multiplies the signals on line 30 during a first time interval when the first element, 0, of the result vector [0,2/.sqroot.2] is arriving times the first element of the second column of the transpose matrix [c.sup.T ] arriving on line 37. The resulting partial product is output on line 48 to the input of the integrator 42. During the second time interval, when the second element 2/.sqroot.2 of the result vector [0,2/.sqroot.2] is arriving on coaxial link 30, multiplier 40 multiplies this second element times the second element of second column of the transpose matrix. The resulting partial product during the second time interval is output on line 48 to the integrator 42. The integrator sums the two partial product results on line 48 over time, and outputs the result on line 50 as the second element, -1, of the recovered information vector [b]. The information vector [b] can then be disassembled into its components such that the TDMA data streams from which data was taken to compose the information vector can be re-created at the receiver end of the transaction.

Those skilled in the art will appreciate that the first and second conductors could also be assigned to carrying two different data streams sent on different channels both of which were originated by the same subscriber.

Throughout this example, the conductors of the distribution system have been referred to as coaxial cable. Those skilled in the art will appreciate that with suitable adjustments of the frequencies of operation and addition of appropriate transmit and receive circuitry, one or more of the various coaxial cable links described herein could be fiber optic cable, microwave links, radio frequency links, etc. since the medium of transmission is not critical to the invention.

Use of Cyclic Codes in Code Division Multiple Access For Better Performance

In the preferred embodiment, the orthogonal codes used in the modulator/transmitters are cyclic codes. In cyclic orthogonal codes, all codes used are the same sequence of numbers, but each code is shifted by one or more bit positions from the preceding code. Although any set of orthogonal codes will work to implement the invention, the cyclic orthogonal codes simplify implementation issues by reducing the amount of storage needed to store the codes.

Those skilled in the art will appreciate that each subscriber transmitter may transmit multiple channels of digital data, and that the matrix multiplication and summation operations described above may be performed with digital circuitry such as suitably programmed microprocessors.

In an alternative embodiment, the separate streams of digital data are transmitted using spread spectrum frequency hopping techniques. In this embodiment, a first stream of digital data will be transmitted from one end to the other using a carrier that hops in frequency in accordance with a first predetermined coded sequence. Likewise, the second stream of digital data is transmitted on a carrier that hops in frequency in accordance with a second predetermined sequence. In this embodiment, the transmitter/modulators receive code sequence inputs that control the frequency of an oscillator that generates a carrier frequency. The codes that control the frequency of the transmitters for the various channels are orthogonal. The receiver for channel 1 receives the same code sequence that was fed to the transmitter for channel 1. This code sequence controls the frequency of a local beat frequency oscillator for receiver 1 and is synchronized with the code sequence fed to the transmitter for channel 1. Likewise, the receiver for channel 2 receives a code sequence that is orthogonal to the receiver for channel 1 code sequence and controls the beat frequency oscillator of the receiver for channel 2 to synchronously generate hops in the local oscillator frequency that track the hops in the frequency of the carrier for the transmitter for channel 2.

Synchronous CDMA: The Alignment/Ranging Process to Achieve Frame Synchronization

Alignment is an important issue for optimal operation of the system of the genus represented by FIG. 1 with minimal cross talk between channels. In the system of FIG. 1, the time slots in the TDMA streams on lines 10 and 14 are the channels. The digital data in each time slot in the TDMA streams on lines 10 and 14 is data transmitted on that channel. The digital data in the TDMA streams is re-arranged into symbols, as described briefly above, and is transmitted in frames, with three symbols plus one guard band or gap per frame. The guardband or gap is reserved for transmission of alignment barker codes, and no other data is supposed to be transmitted during the gaps.

The concept in alignment is to adjust variable delays imposed at the site of each transmitter prior to transmission of a barker code so as to compensate for different propagation delays from each transmitter site such that the barker code from each subscriber transmitter trying to align arrives at the head end receiver during the same gap. When the variable delays at each subscriber transmitter are adjusted properly, each subscriber will be said to be in alignment so that the signals encoding the symbols that are simultaneously transmitted on the shared data path 24 will all be transmitted with the same frame timing.

Alignment is important to obtain pure orthogonality so as to obtain zero cross talk. If the transmitters are not perfectly aligned, the signals transmitted can still be recovered, but there is some cross talk between channels which will limit the capacity of the system to carry information.

This process of aligning all the delay circuits in the transmitters is sometimes alternatively called ranging herein and is broadly applicable to other types of multiple access digital data transmission systems also which suffer from different propagation times from different transmitter sites such as time division multiple access systems that form part of the prior art discussed above.

Referring to FIG. 4A, there is shown a diagram of the typical frame structure. In the preferred embodiment, each frame is composed of three symbols of 144 chips each and a gap or guardband comprised of 16 chips for a total of 448 chips each having 278 nanoseconds duration. The chip is the basic unit of time in the "code domain", where code domain refers to the signals propagating across the shared media. In the preferred embodiment, each chip is a QAM modulated element of a result vector where the result vector is comprised of a number of elements equal to the number of timeslots and is the result of code division spreading of the elements of an information vector constructed from the bits of each channel or timeslot. In the preferred embodiment, each receiver receives a TDMA serial bit stream comprised of 144 individual timeslots or channels each of which contains 8 bits. To these 8 bits there is added a 9th bit in the preferred embodiment which can be used for side channel conversations with the CU unrelated to the data received from the external device. These 9 bits are divided into three tribits of 3 bits apiece. A collection of 144 of these tribits is stored in a framer memory and, in some species within the inventive genus, these 144 tribits will be the information vector which is multiplied by the code matrix to generate a result vector having 144 elements. These 144 result vector elements will be QAM modulated to generate the 144 chips that are transmitted as a symbol. This process is repeated for each of the three tribits of each timeslot thereby resulting in the transmission of three symbols in each frame. In the preferred embodiment however, each tribit is encoded with one or more redundant bits based upon the three bits and the state of these same three bits of the same timeslot during the last frame. The redundant bit(s) is calculated to aid a Viterbi Decoder in a receiver in the central unit to ascertain with a higher degree of accuracy from the received signals which have been corrupted by media impairments what bits were originally present as each tribit. Some species within the inventive genus may omit the addition of the redundant bits and the Viterbi Decoder and many advantages within the genus of the invention will still be present although a higher bit error rate will result.

One skilled in the art will appreciate that the construction of the information vector which will be used to generate each symbol by taking only some of the bits from each timeslot spreads the data from each timeslot out over time. This renders the data less susceptible to burst noise. The code division multiplexing allows multiple channels of digital data to be simultaneously transmitted in a 6 mHz channel without interference between channels. In addition, frequency division multiplexing may be utilized to transmit even more channels of digital data above and beyond the 144 channels transmitted in the first 6 mHz channel. In other words, another 144 different TDMA digital channels may be code division multiplexed and transmitted simultaneously with the first 144 digital channels but on a second 6 mHz channel. This second 6 mHz channel has a different center frequency than the first 6 mHz channel which is separated from the center frequency of the first 6 mHz channel sufficiently to not interfere therewith. Both the first and second 6 mHz channels have center frequencies which are separated sufficiently from the center frequencies of the cable television programming sharing the same media so as to not interfere therewith. In alternative embodiments, this scheme can be replicated with any number of symbols greater than 1, or with only one symbol if immunity to burst noise is not important.

In FIG. 4A, the three symbols of frame F.sub.n are symbolized by blocks 62, 64, and 66. The gap or guardband is symbolized by blocks 60 and 71. There is one guardband associated with each frame. The guardband 71 (sometimes also referred to herein as the gap) is used for synchronization and equalization purposes for the frame comprised of symbols 62, 64, 66 and guardband 71. The symbols carry the information for the various channels of digital data provided to the subscribers. The frame period is 125 microseconds. The frame data payload is 128 channels times 72 kilobits per second per channel plus 16 control and management channels each of which has a data rate of 72 kilobits per second for management and control information.

Hereafter, each subscriber transmitter will be referred to as a remote unit or RU, and the central unit or head end will be referred to as the CU.

The process of synchronization is the process wherein each RU is "trained", i.e., has a variable delay in its transmitter set using feedback from the CU on one of the management and control channels such that the transmitted frame from each RU arrives at the CU at the same time. Alignment of all frames from all RUs results in the beginning of the gap 60 for each frame from each RU occurring at the same time at the location of the CU regardless of differences in propagation delays from the various RUs to the CU. In FIG. 4A, time increases to the right. Therefore the beginning of the guardband 60 is located at point 61.

Alignment of Any Digital Data System That Sends Data Bits Collected As Frames

Referring to FIG. 4B, there is shown a symbolic diagram illustrating the concepts involved in alignment. In FIG. 4B points having increasing positive coordinates along the y-axis starting from the origin at 100 represent increasing time. Points along the x-axis to the right of origin represent increasing distance from the central unit which is designated at position 70. Time 100 represents the beginning of symbol 62 in FIG. 4A at the CU. The gap 71 at the end of the three symbols will be used for alignment, and the end of gap 71 will be deemed the end of the frame.

The alignment process is started asynchronously by any RU that needs to align. The central unit transmits a barker code during each frame at the same time in the frame. This barker code is received by each remote unit at a different time because of different propagation delays, but as to any particular RU, the barker code is always received at the same time during every frame until the CU changes its delay (a concept to be discussed more fully below). The barker code represents a trigger to any RU attempting to align and marks the receive frame timing reference for that RU. The time of receipt of the barker code represents the start of the variable delay interval being adjusted by the RU during the alignment process.

The CU's "every frame" barker code transmission during the frame shown in FIG. 4B is represented by line 80. The barker code is received by RU #1 at position 67 at time 72. The barker code is received by RU #2 at position 69 at time 74. The alignment process is a trial and error process of adjusting a delay from the time of receipt of the barker code to the time of transmission of the same barker code by each RU back toward the central unit 70 until the delay is properly adjusted such that the re-transmitted barker code arrives at the CU during the gap. Vector 68 represents correct delay timing for RU #1 at position 67 such that its barker code transmission 73 arrives in the middle of the gap 71. Dashed vector 76 represents an incorrect delay resulting in a barker code transmission, represented by dashed line 78, from RU #1 which arrives sometime during the middle of symbol 66 thereby missing the gap 71. This condition represents an incorrect alignment and may result in crosstalk.

Likewise, the RU #2 at position 69 uses zero delay and emits a barker code transmission 82 immediately upon receipt of the barker code trigger transmission 80 from the CU 70. This barker code transmission 82 from RU #2 also arrives during the middle of gap 71 thereby indicating that RU #1 and RU #2 are correctly aligned.

The alignment barker code transmissions are typically short bursts having energy levels which are sufficient to make detection during gap 71 easy even though gap 71 also includes random noise energy.

The alignment barker code transmissions are detected during the gap by performing a correlation mathematical operation in the CU receiver between the barker code that was transmitted and the received signal. If the received signal was the same barker code that was transmitted by the CU, the correlation operation will output a signal that peaks at the time of maximum overlap between the barker code transmitted by the CU and the received signal. The timing of this peak indicates the alignment state of the RU that transmitted the barker code which resulted in the peak. Because the barker code transmissions are relatively short in duration and their amplitudes are not excessive, arrival of a barker code transmission during the middle of a symbol will generally not cause errors in the interpretation of symbol 66 by the CU receiver. Each symbol encoded in the code domain includes error detection and correction bits (ECC bits) such that any errors that occur can usually be detected and corrected when the symbols are re-constituted by the framer circuitry in the receiver. Therefore, if the barker code alignment transmission does result in an error, that error will usually be within the detection and correction range of the ECC bits of each symbol.

Referring to FIG. 5, there is shown a diagram like that of FIG. 4B which illustrates a problem which occurs when the network physically expands. This can occur under certain circumstances such as during the heat of a summer afternoon when the physical media thermally expands thereby altering the propagation times of barker code signals from the CU to the RUs and from the RUs back to the CU. In the example shown, the CU 70 transmits barker code 96 at time 100. This barker code reaches the nearest RU, RU #1, at position 90 at time 72. The same barker code reaches the furthest RU, RU #128, located at position 92 at time 102. RU #1 uses a delay symbolized by vector 98 and re-transmits the barker code 108 at time 138. This alignment transmission hits gap 106 in frame #1 indicating that RU #1 is properly aligned.

The RU #128, when located at position 92 uses no delay and immediately retransmits barker code transmission 109 at time 102. Transmission 109 also arrives during gap 106 indicating that, at least at position 92, RU #128 is properly aligned.

Now suppose that the network physically expands such that RU #128 finds itself physically at position 93. In this position, RU #128 receives barker code transmission 96 from the CU at time 103, and, because RU #128 is already using the minimum possible delay for retransmission of an alignment code, alignment transmission 110 is also transmitted at time 103. However, because of the physical expansion of the network, alignment transmission 110 reaches the CU at time 111 which is after the end of the gap 106 and sometime in the middle of the first symbol of frame #2.

When an RU properly hits the gap, it is authenticated, i.e., identified, and the CU tells it that alignment has been achieved thereby causing the RU to stop adjusting its delay by trial and error. Because RU #128 does not receive any acknowledgement from the CU that it is properly aligned, its starts incrementing its delay vector in a trial and error process. After several incrementations, the delay vector finally reaches the delay represented by vector 112. With this delay vector, an alignment transmission 114 is transmitted from RU #128 at time 113 which reaches gap 116 located at the end of frame 2. However, this means that RU #128 is synchronized with the wrong frame. It is required for proper operation of the system to have all RUs synchronized to the gap at the end of the same frame in which the barker code transmission from the CU which triggered the RUs alignment transmissions occurred. If one or more RU aligns to the gap at the end of another frame, the results can be disastrous in terms of errors generated in the CU receiver in interpreting data transmitted by the RUs.

Referring to FIG. 6, there is shown a diagram like that of FIG. 5 which illustrates the solution to this misalignment problem outlined in the discussion of FIG. 5. In the diagram of FIG. 6, CU 70 imposes a delay, represented by vector 116, prior to transmitting the alignment triggering transmission 96 at time 100. The barker code transmission 96 arrives at the nearest RU, RU #1, at position 90 at time 118. Time 118 establishes the receive frame timing for RU #1. RU #1 then imposes a delay represented by vector 122 and transmits the same barker code alignment transmission 124 at time 123. Time 123 establishes the transmit frame timing reference for RU #1. The time delay between times 118 and time 123 is predictable since the CU will transmit its barker code transmission 96 at the same time during every frame until such time as it is necessary to alter the timing of transmission 96 to keep all RUs in alignment. In other words, the time of reception of the barker code transmission 96 for all RUs is predictable and will be a periodic signal which happens once during each fame. The alignment transmission 124 from RU #1 reaches gap 106 at the end of frame #1.

The alignment transmission 96 from the CU reaches RU #128, the furthest RU, at time 120. Time 120 establishes the receive frame timing reference for RU #128 while at position 92. Thereafter, at time 125, the RU #128 transmits alignment transmission 128. This transmission arrives during the gap 106 at the end of the first frame thereby indicating that RU #128 is properly aligned at this position.

As in the case of RU #1, the delay between times 120 and 125 for RU #128 is predictable.

Now suppose that the network expands, and RU #128 finds itself at position 94. In this position, the CU alignment triggering transmission 96 arrives at time 127. In order to stay aligned, RU #128 will reduce its delay vector 126 to zero and immediately retransmit an alignment transmission 130 comprising the same barker code which it received. The transmission 130 arrives during gap 106 thereby indicating that RU #128 is still aligned at its new position by cutting its delay vector to zero.

Now assume that the network further expands such that RU #128 finds itself at position 96. In this new position, alignment transmission 96 from the CU would arrive at time 129. With a zero delay by RU #128, the resulting alignment transmission 131 would arrive at time 133 just after the end of the gap 106 thereby indicating the RU #128 had been taken out of alignment by the expansion of the network. RU #128 would then continue to adjust its delay vector until it aligned to the next gap following the end of frame #2 thereby causing errors.

To prevent this from happening, when the CU finds that an RU which was previously in alignment has gone out of alignment because of network expansion, the CU will reduce its initial delay from the delay represented by vector 116 to the delay represented by vector 132. With this new delay vector, a barker code alignment triggering transmission 135 will be transmitted at time 137. This alignment triggering transmission 135 will arrive at the position of RU #1 at time 139 and will establish a new receive frame timing reference. If RU #1 has not adjusted its delay vector 122 in advance by one of the mechanisms to be described below, it will go out of alignment. It may then enter a realignment phase and will ultimately, by trial and error, adjust its delay vector to that represented by dashed vector 136. After so adjusting its delay, RU #1 will transmit an alignment transmission 124 at time 123 so as to again hit gap 106 thereby re-entering alignment.

The alignment triggering transmission 135 from the CU arrives at the position 96 of RU #128 at time 141. Using a zero delay vector, RU #128 transmits its alignment transmission 134. This alignment transmission 134 arrives during gap 106 thereby placing RU #128 again in alignment.

FIG. 6 shows an alignment process where the alignment is to the gap at the end of the first frame in which the alignment trigger signal 96 is transmitted. In real life systems, this may not be practical, so the alignment process is carried out to the gap following some integer number of frames in the future. The mathematical expression which defines this relationship is given in equation (1) below:

where

TTA=the total turnaround time from the CU to the farthest RU;

T.sub.cu =the delay imposed by the CU illustrated by vector 116 in FIG. 6;

T.sub.ru =the delay imposed by the farthest RU illustrated by vector 126 in FIG. 6 (also called T.sub.far);

2.times.T.sub.p =two times the propagation delay T.sub.p from the CU to the farthest RU; and

n.times.T.sub.F =an integer multiple of the frame interval T.sub.F.

Of course, when the network expands, there is a certain additional delay in the propagation delays which will be called T.sub.u for the uncertainty of this additional propagation delay. Therefore, three additional requirements are imposed with respect to how much delay the CU and the RUs must be able to impose. Those additional requirements are given below in equations (2), (3) and (4):

where

T.sub.d =the span of the network, i.e., equal to the quantity [TTA.sub.2 -TTA.sub.1 ] where TTA.sub.2 equals the total turnaround propagation time for a signal to propagate from the CU to the farthest RU and back, and TTA.sub.1 equals the total turnaround propagation time for a signal to propagate from the CU to the nearest RU and back; and

modulo T.sub.F =the remainder of [T.sub.d +T.sub.u ] divided by TF.

where

T.sub.far =the smallest possible T.sub.ru of the farthest RU and is equal to the smallest RU delay which can be imposed by the farthest RU;

where

T.sub.near =the maximum possible T.sub.ru of the nearest RU.

What all this means in a practical sense is that to set up the delays in the network so that all RUs are aligned, the following steps are taken and the limitations on possible delays imposed by the CU and RUs given in equations (1) through (3) are imposed so that all RUs align to the same gap. The practical network to be aligned by the following procedure has a CU coupled by a fiber optic trunk line to an optical node. The optical node is located out in the area to be served and can be coupled to as many as 2000 homes by 2000 individual coaxial links. To align such a network, step 1 would be to bring an RU to the position of the optical node and fix its delay at T.sub.near =T.sub.F -T.sub.u. With this delay, the nearest RU would not hit any gap except by shear luck. Assuming the nearest RU does not hit the gap with this delay, the second step would be to adjust the delay of the CU until the nearest RU hits a gap. When this occurs, the condition T.sub.cu =[T.sub.d +T.sub.u ] modulo T.sub.F would be true meaning that the CU would have adequately compensated for the uncertainty of the propagation delay increment to T.sub.d caused by network expansion.

Referring to FIG. 7, which is comprised of FIGS. 7A, 7B, and 7C, there is shown a flow chart for the general alignment process which is used in training all RUs to set their delay vectors properly so as to be in alignment within the same frame. The process starts as symbolized at block 180 with the CU waiting for a predetermined interval from the start of each frame and then sending a trigger signal transmission to the RUs. Usually this trigger signal is sent during the gaps between frames, and the RUs monitor these gaps for these trigger signals. The trigger signal in each frame is a unique barker code.

Block 182 symbolizes the process wherein each RU trying to synchronize (the terms "synchronize", "ranging" and "alignment" all are used synonymously to mean the process of training an RU to set its delay vector properly to get its alignment transmission in the gap) receives the barker code trigger signal transmission from the CU and sets its receive frame timing and then sets a first delay for its delay vector. Thereafter, the RU transmits the same barker code it received from the CU towards the CU as an alignment transmission.

In block 184, the CU monitors the gap for activity by performing a correlation mathematical function between any received signal during the gap and the barker code that was transmitted as the trigger signal. If a barker code identical to the trigger signal is received during the gap, the correlation calculation will result in a correlation peak being found in the gap. If the correlation calculation results in a peak being found, processing proceeds to the process symbolized by block 190. There, the CU broadcasts a message to all RUs indicating that it found activity in the gap. Then the process of block 192 is performed where each RU trying to synchronize sends its signature. That is, in response to the broadcasts from the CU, each RU trying to synchronize sends its unique signature towards the CU in order to determine if that RU's barker code is the barker code the CU found in the gap and whether it is the only RU in the gap. This process is called authentication.

The process of block 192 symbolizes the start of the authentication process. Each RU has a unique signature which comprises the transmission and nontransmission of barker codes during the gaps of a multiple frame authentication period. Specifically, the unique signature of each RU will involve transmitting the barker code during some gaps of the authentication period but not during others. The number of gaps during which the barker code is transmitted compared to the number of gaps during which the barker code is not transmitted during the authentication period is such that if only one RU is aligned to the gap and is transmitting its authentication signature, activity will be found in the gaps of the authentication interval only 50% of the time. This scheme for authentication is chosen so that the CU can detect contentions, i.e., more than one RU in the same gap, in the manner described below.

After performing the process of block 192, the process of block 194 on FIG. 7B is performed. This process involves the CU monitoring each of the gaps during the plurality of signature sequence frames in the authentication interval and performing correlations between the signals received in each of the gaps and the barker code that the CU transmitted.

Next, the process of block 196 is performed. In this process, the CU counts the number of gaps in the authentication interval that have had activity detected therein, and then compares that number to the total number frames in the authentication interval to determine if the 50% activity level limit has been exceeded.

Returning to the consideration of the process of block 184, if the CU, while monitoring the alignment gap for activity, finds no peak resulted from the correlation calculation, then the process of block 186 is performed. In the process of block 186, the CU broadcasts a message to all RUs telling them to adjust their delays and to try again to hit the gap with their barker code transmissions. Then, the process of block 188 is performed wherein each RU trying to synchronize increments its delay vector and retransmits the same barker code as was received from the CU. Thereafter, the process of block 184 is performed again wherein the CU monitors the gap for activity. The loop comprising blocks 184, 186 and 188, taken together, comprise the trial and error process which causes all RUs trying to align themselves to continually increment their delay vectors until at least one of them hits the gap.

Returning to the consideration of block 196, if 50% activity level is detected during the authentication interval, it means that only one RU is in the gap. In such a case, the process of block 198 is performed. In this process, the CU identifies the RU whose barker code transmissions are found in the gap from the unique signature sequence transmitted during the authentication interval. In other words, the CU examines exactly which gaps had correlation peaks therein and the sequence of these gaps and looks up this sequence in a lookup table listing the unique signature sequence for each RU in order to identify the particular RU that has successfully aligned itself. Block 198 is reached only if activity is detected in exactly 50% of the gaps.

After the CU identifies the RU, it broadcasts the identity so determined to all RUs as the last step of block 198.

Next, the process of block 200 is performed. In this process, the RU with the identity broadcast by the CU recognizes its identity in the broadcast message and enters a fine tuning mode.

The fine tuning mode is represented by the process of block 202. In this process, the CU instructs the RU which has aligned itself in the gap on how to adjust its delay vector in order to center the correlation peak calculated by the CU to the exact middle of the gap. In the preferred embodiment, the gap is comprised of 16 chips which comprise 8 chips in the middle of the gap and then 4 chips on either side of this middle group of 8. It is desirable during the fine tuning mode to get the correlation peak centered in the middle of the middle 8 chips. As mentioned above, a chip is a small interval of time equal to the frame period of 125 microseconds divided by the 448 chips which comprise each frame. In other words, each chip is 279 nanoseconds in duration. The fine tuning process of block 202 involves sending messages back and forth between the CU and the RU which has been identified as having aligned itself in the gap. These messages are sent over the management and control channels. Usually the exchange involves only one instruction from the CU to the RU saying, for example, "Increase your delay vector by 2 chips" or, "Decrease your delay vector by 3 chips". The RU then makes the instructed adjustment and retransmits the barker code. The CU agains calculates a correlation peak and examines where the peak occurs in the gap. If the peak occurs in a suitable position, the CU sends a message to the RU telling it to stop adjusting its delay vector as satisfactory alignment has been achieved.

Returning to the consideration of the process of block 196, if the CU determines that greater than 50% of the gaps during the authentication interval had correlation peaks therein, i.e., greater than 50% activity is detected, then the process of block 204 is reached. This process is only reached if more than one RU has aligned itself to the same gap. If this case, because each RU is transmitting its unique signature, and because each signature is a unique sequence with only 50% activity level, the result of two RU's being in the same gap will be that during more than 50% of the gaps of the authentication interval, correlation peaks will occur. It is impossible to find tune the RUs if more than one RU is trying to fine tune during the same gap. Therefore, the CU has to reduce the number of RUs that are in the gap to one, and it starts this process by performing the process of block 204. In this process, the CU broadcasts a message to all RUs instructing only the RUs attempting to synchronize to execute their collision resolution protocols.

Next, the process of block 206 is performed, to start the collision resolution protocol, wherein each RU attempting to synchronize executes a random decision whether to continue attempting to synchronize or to stop attempting to synchronize. Each RU will make this decision with a 50% probability of either outcome.

After all RUs make their random decisions whether to continue, the process of block 208 is performed. In this process, the RUs that have decided to continue to align retransmit their signature sequences without changing their timing, i.e., with the same timing as was used on the last iteration of the trial and error process. In other words, each RU that has decided to continue transmits its unique signature sequence (sometimes hereafter called a "dotted sequence") over another authentication interval using the same delay vectors that are currently set.

Next, the process of block 210 on FIG. 7C is performed wherein the CU again monitors the gaps of the authentication interval for activity.

If the random decisions whether to continue or not result in no RUs transmitting their signatures, then no activity will be found in the gaps of the authentication interval. In this event, the process of block 212 will be performed wherein the CU broadcasts a message instructing all RUs to go back to the previous stage and to reexecute their decisions to continue or discontinue the ranging process.

The RUs then re-execute their decisions whether to continue or stop attempting to align the