fig3 illustrates the functional interrelationship between the various elements of the one - way and two - way transmission networks . reference to more detailed figures will be made and more detailed description furnished when certain elements of special significance are being described . although one combination of elements from which the invention may be implemented is described , there are numerous other combinations which may implement the invention equally well . the selection of the spreading code length was influenced by : receiving antenna ( 5 ) size , receiver noise figure , transponder ( 3 ) power , bandwidth of the transmitted signal , the required bit error rate , the number of unique codes required , the data rate , and the chip rate selected , among other factors . for the preferred embodiment of the outbound link , remote stations having 2 foot dish antennas are assigned 256 chips per bit spreading codes , and remote stations having 4 foot dish antennas are assigned 64 chips per bit spreading codes . remote stations having 16 foot dish antennas do not require the use of spread spectrum techniques . for the inbound link , all remote stations 4a transmit using 4 foot dish antennas 21 , 2048 chip per bit spreading codes , and signal levels of generally under one watt of power . the code length per bit ( outbound only ) is 256 chips long , in order to keep the 2 foot dish remote stations ( the least sensitive receiving stations ) in lock . in the special case where a single code is used to transmit both data and sync information , the sync information takes the form of a sync character imbedded within the data stream . a sync code or character is sent at a fixed interval , for example , once every 512 bits , where each bit sent is assumed to be in the longest code being used or , once every tenth of a second . a frame is selected to equal the sync code interval . the chip rate is selected to be 2 . 4576 mhz . the chip rate , frame interval and sync interval therefore all occur at fixed times . the data rate , however , is a function of the spreading code length selected . therefore for 2 foot antenna remote stations data rate will be 2 . 4576 mhz ÷ 256 chips per bit , or 9600 in bits per second . on the other hand when a 4 foot remote station is addressed data rate will be 2 . 4576 mhz ÷ 64 chips per bit , or 38 , 400 bits per second . as is generally true of all codes utilized in this system , the codes selected are orthogonal or near orthogonal to one another , and each has a near equal number of ones and zeros . it will be understood that the fixed chips rate of 2 . 4576 mhz is not critical . the spreading code lengths are chosen to provide low error rates for the signal levels obtained with present state of the art receiver noise figures . if higher error rates can be tolerated or if different receiver noise figures are present , the spreading code lengths should be changed accordingly . in the preferred embodiment the geostationary satellite 3 is used to relay transmissions between the central station 14 and remote stations 4 and vice versa . the heart of the satellite is a transponder which receives signals 2 at a nominal 6 ghz frequency and which retransmits 12 such signals at a nominal 4 ghz frequency . the maximum radiated power permitted to be transmitted by the transponder is set by fcc regulation and is - 149 dbw per square meter per 4 khz band . the effective isotropic radiated power ( eirp ) transmitted by the geostationary satellite 3 in the preferred embodiment of the invention is 20 to 32 dbw . for a chip rate of 2 . 4576 mhz the bandwidth of the signal relayed by the geostationary satellite 3 is approximately 4 . 9 mhz . the power of the transmitter may be increased to 32 dbw in the same 4 . 9 mhz bandwidth without exceeding the flux density limits . since the typical bandwidth of a satellite transponder is 36 mhz , it is clear that the relayed signal is power rather than bandwidth limited . referring now to fig3 , 5 and 6 , the receiving circuitry of the remote stations 4 will be described . the receiver front end ( pre amp ) 61 is of standard design for the reception of signals in the 3 . 7 ghz to 4 . 2 ghz range . the signal out of the front end pre - amplifier 61 assumed to be 4000 mhz is mixed - down to the first if frequency ( 786 mhz in this example ) in mixer 63 . the mixing frequency is derived by multiplying the l . o . 79 frequency ( 856 mhz in this example ) by four . after amplification in the first if 64 the signal is mixed - down to a frequency of 70 mhz in mixer 63a . the mixing frequency is supplied by l . o . 79 . after amplification in the second if 64a , the signal is mixed - down to 10 . 7 mhz in mixer 63b . the mixing frequency is supplied by l . o . 79a . the resulting 10 . 7 mhz baseband signal from mixer 63b may then be processed to recover the spread spectrum data . as described earlier , one of two methods may be used : the signal may be first despread then demodulated , or it may be demodulated first then despread . in the preferred embodiment despreading is performed first . referring to fig3 and 4 the circuitry is shown . despreading is performed first by despreading circuitry 139 , then demodulation and energy detection are performed by demodulation circuitry 68 . despreading is essentially the multiplication of the received signal out of mixer 63b with the spreading codes assigned to the particular remote station . despreading circuitry comprises , fig4 a mixer bank 65 ( 56 , 57 , 58 , 59 , 56a , 57a , 58a , 59a ), and circulating registers 51 ( 124 , 126 , 124a , 126a ). the circulating registers 51 receive the data and sync reference spreading codes from the microprocessor 190 , and circulate them according to clocks φ 1 on line 101 , and φ 2 on line 102 , provided by the chip sync circuitry 103 , and commands from the microprocessor 190 , which may be a general purpose microprocessor . the microprocessor controls the time at which the registers 51 begin circulation of the codes such that the start of the code sequence of the local reference codes will be synchronized in time with the start of the code sequence for each incoming bit . register 124 circulates the ones bit data code and outputs that code to mixer 59 . inverter 125 inverts ( polarity ) the ones bit code to derive the zeros bit code , and then routes it to mixer 58 . similarly , register 126 circulates the + sync code and outputs the code to mixer 57 . inverter 127 inverts ( polarity ) the + sync code to derive the - sync code , and then routes it to mixer 56 . registers 124a and 126a circulate the data and sync codes in accordance with a tau - dithered clock φ 2 on line 102 , in cooperation with chip sync circuit 103 and microprocessor 190 , for the purpose of obtaining bit and chip sync . these operations will be discussed in greater detail below . an alternative method of despreading is to use a single circulating register , with the code being circulated and the timing of such circulation under microprocessor 190 control . for example , in a system where a sync code is used in addition to the data codes , the sync code may be inserted into the register periodically only when a sync is expected to appear , while at all other times the data codes are circulated . when the output of mixer 63b ( fig3 ) is multiplied in the mixer bank 65 by the signals from the circulating registers 51 , despreading occurs . when a spread spectrum signal is multiplied by the properly synchronized spreading code , the result is the original unspread signal . therefore if the signal out of mixer 63b is f baseband g ( m ), where g ( m ) is the spreading operator , the product ( f baseband ) g ( m )× g ( m ) will equal f baseband , whenever the spreading code g ( m ) is present in the received signal . thus it may be seen that if the spreading code for a ones bit is present in the received signal , a baseband frequency will be output from mixer 59 . likewise if a + sync spreading code is present in the received signal a baseband frequency will be output from mixer 57 . similar results are obtained from mixers 58 and 56 . mixers 56a , 57a , 58a and 59a accept tau - dithered codes from registers 124a and 126a in cooperation with chip sync circuit 103 and microprocessor 190 for the purpose of obtaining bit and chip sync . these operations will be discussed in greater detail below . when the looked - for spreading code is not present in the received signal , the output of the mixer will be a wideband signal which may be removed by filtering . from a time domain point of view it may be seen that in mixer bank 65 the reference codes shift the phase of the l . o . 63b signal . for each chip of the code there is an associated phase shift . in the received signal the spreading code will have shifted the carrier phase , with each chip of the spreading code corresponding to some phase shift . when the received signal spreading code and the receiver reference code match , the phase shifts associated with each chip counteract each other and restore the original baseband signal . hence , the output of the mixer bank 65 will be the baseband frequency of unshifted phase n chips in length , where n equals the code length . on the other hand , if the codes were not the same , the output from the mixer bank 65 will be n chips of baseband frequency having differing phases . it may be seen that if a phase detector were used to demodulate the waveform for each case , the result , where the codes match , would be a dc level n times that corresponding to an in - phase phase detector output for one chip . on the other hand , in the unmatched case , the output would tend toward zero ( for near uncorrelated codes ) or toward a negative level ( for negatively correlated codes ). level detection of the despread signal occurs in the demodulation circuitry 68 , fig5 . demodulators 49 examine the signals output from the mixer bank 65 for each of the lines : ones data 52 , zeros data 53 , + sync 54 , and - sync 55 . the output of each demodulator 49 is accumulated over a bit period by integrators 122 , 123 , 131 and 130 . demodulators may take various well - known forms : a phase detector , a squaring loop detector or a costas - loop detector . integration of the demodulator 49 outputs over the code period produces an equivalent energy level and allows noise to average out . typically , in small dish antenna receiving systems the received signal level is very low . this results in less than a perfect match between reference code and received spread data codes . therefore the energy level actually obtained from the integrators 122 , 123 , 131 and 130 may not equal the expected maximum level , although all chips were sent . as previously described , statistical techniques are employed to determine the minimum level output from the integrators 122 , 123 , 131 and 130 which may be treated as a received bit and thereby achieve the minimum required bit error rate . this bit threshold decision process is implemented using comparators 132 , 134 , 135 , and 137 . each comparator compares its integrator output with a threshold level ( set to achieve a certain bit error rate ). a positive output ( i . e ., that the level has been exceeded ) from a comparator is treated as &# 34 ; hard &# 34 ; data . as mentioned above , since the low signal levels received often prevent a perfect match between reference code and spread data code which results in energy levels below threshold , a &# 34 ; soft data &# 34 ; record must be maintained . in the preferred embodiment comparators 133 and 136 implement one of the numerous methods to derive soft data . essentially the levels of the integrators for the ones bit and the zeros bit are compared , and the greater level is deemed to indicate reception of that type of bit . similarly soft sync is derived for the sync signal . in the special case where all remote stations 4 in the system are assigned a single code for transmission of both data and sync information , there is no need for a hard / soft bit designation . because , in this case , all that is transmitted is intended to be received by each remote station 4 , a continuous stream of bits may be assumed . these bits consist of either data bits or filler bits . since a bit is necessarily present for every bit position , the soft data and sync despread outputs may be looked to directly to decide whether the bit was a one or a zero . the outputs of comparators 132 through 137 are sent to the microprocessor 190 for processing and storage , see fig3 . ( hard &# 34 ;+&# 34 ; sync data on line 138 is also sent to the framing sync circuitry 161 , fig6 for use there . ) the microprocessor 190 maintains a record of the hard and soft data received , and even treats hard data as tentative until a minimum number of hard tentative bits have been received . this enhances the system bit error rate . if after a byte period several bits remain undetected , the microprocessor 190 will examine the soft data record for the missing bits . the microprocessor 190 &# 34 ; infers &# 34 ; that a byte of data was transmitted after it has tentatively received a minimum number ( usually 5 ) of bits . the microprocessor lowers the bit decision threshold when it looks to the soft data or soft sync record for the missing bits and makes a best - guess as to the correct bit state . in this manner the transmitted data is statistically recovered from the despread and demodulated received signal . a second method of data recovery is to demodulate first . carrier lock is essential , however , if the modulation is to be properly detected . one implementation could consist of a phase detector which compares the incoming received signal with a voltage controlled reference . the phase detector output is used to correct the voltage controlled reference so that the reference tracks the carrier frequency deviations . the output of the phase detector also yields phase changes caused by bpsk modulation . these phase changes are the transmitted spread spectrum data stream . this data stream is then multiplied by the local reference code to despread the signal and yield the original data . however , demodulation before despreading in small antenna receiving systems is difficult to implement due to the very low signal to noise ratios present . at such low levels carrier lock is difficult to maintain especially when interference is present . proper time synchronization is essential to the satisfactory operation of the spread spectrum system . the framing synchronization circuit 161 , fig6 ensures that the frame timing maintained by the microprocessor 190 coincides with the frame timing of the received signal . recall that a frame is defined as equaling the sync interval and that a sync character ( or code ) is sent periodically , for example once every tenth of a second , or once every 512 bits , where each bit is assumed to be in the longest code being used . by maintaining frame sync , it is ensured that the proper ordering of the received bits into bytes and packets is obtained . since a sync code is sent at a chip rate which is a multiple of 64 , the frequency with which the sync bit is sent is a modulo 64 signal . that is , a binary synchronous counter , counting at a rate equal to the system chip rate , if started when a sync pulse is received and stopped when a subsequent sync pulse is received , will always show a multiple of 64 . therefore all of the binary counter outputs corresponding to values less than 64 will be zero , while some value equal to and greater than 64 will be nonzero . on the other hand , if the binary counter were started at some time other than at the time a sync bit was received , its outputs for values less than 64 will be nonzero at a point in time when a subsequent sync bit is received . note that , given the precise chip rate of 2 . 4576 × 10 6 chips per second , a sync every tenth of a second is also a modulo 64 signal . in the preferred embodiment , n - bit synchronous counter 162 counts the internal clock φ 1 ( i . e . the chip frequency ) on line 101 from the chip sync circuitry 103 . counter 162 is initialized , in other words , the count is started from zero , when an out - of - sync signal 166 is received from nand gate 165 and when a hard + sync level is received on line 138 from the demodulation circuitry 68 . so long as the out - of - sync 166 indication is present , the counter 162 will reinitialize until sync is obtained . the out - of - sync signal 166 is initiated only after counter 164 counts a small number , less than 10 , of &# 34 ; no - sync &# 34 ; indications from nand gate 163 . nand gate 163 monitors all outputs of synchronous counter 162 corresponding to values less than or equal to some multiple , m , of 64 , where m & lt ; n . and gate 167 monitors synchronous counter 162 outputs corresponding to values greater than the multiple of 64 chosen above . for example , if a sync period were selected to be one tenth of a second , counter 162 would be a 16 bit synchronous counter . outputs corresponding to values of 32 × 64 ( 2048 ) or less would be monitored by nand gate 163 , and outputs having values greater than 2048 are monitored by and gate 167 . at the precise clock rate of the system , 2 . 4576 mhz , a tenth of a second period corresponds to 245 , 760 chips per period . therefore , all counter 162 outputs monitored by nand gate 163 will be zero and all outputs monitored by and gate 167 will be one whenever a sync singal is received , and if the count was started upon receipt of the last sync signal . likewise the out - of - sync indication 166 is not initiated until a minimum number of non - modulo 64 counts are produced by the counter 162 as relayed to counter 164 by nand gate 163 . this is to prevent momentary interruptions from disrupting the system operation . in the special case where a single data code is common to all remote stations 4 in the network , sync characters are embedded in the data bit stream . framing sync may therefore be performed within the microprocessor 190 , thereby obviating the need for framing sync circuit 161 in this special case . the chip synchronization circuit 103 , fig6 aligns the internal clock φ 1 on line 101 with the received chip stream 82 , fig5 . chip synchronization is attained when zero to one and one to zero transitions in the internal clock φ 1 coincide with the actual or theoretical chip transition points in the received chip stream 82 . a theoretical chip transition point is the point in time at which a chip state transition would occur if a chip state were changing from one value to another . by maintaining chip sync efficient despreading is achieved , hence process gain is maintained at near theoretical levels . there are several methods of chip synchronization , of which the tau - dither tracking method will be discussed here . in the preferred embodiment of the invention the tau - dither method is used , fig6 . this method involves the incremental shift of the internal clock φ 1 which controls the circultion of the local reference codes in circulating registers 51 . here the triangle - shaped correlation characteristic of the code sequences used in the system provides the directivity for control of clock φ 1 synchronization . fig7 illustrates the effect of a clock shift upon correlation depending upon whether the clock φ 1 is advanced or retarded with respect to the received chip sequence . when the clock φ 1 is in a retarded state , an incremental shift of the clock which tends to advance the clock position will result in an increased amplitude of the correlation . on the other hand , if the clock φ 1 is in an advanced state , an incremental shift of the clock which tends to advance the clock position will result in a decreased amplitude of the correlation . by comparing the direction of these amplitude changes with respect to the waveform which generated the incremental shifts in the first place , a correction voltage may be derived to adjust the internal clock φ 1 to exact synchronization with the received chip stream . in one embodiment , low frequency oscillator 300 produces the waveform which causes the incremental shift in the clock φ 1 vco ( voltage controlled oscillator ) 304 generates the clock frequency φ 1 . lthe incremental phase modulator 302 receives the vco 304 output and causes an incremental phase change in the clock φ 1 according to the low frequency oscillator 300 output . this phase - shifted form of φ 1 is output on line 102 and henceforth will be referred to as φ 2 . this tau - dithered clock φ 2 is then used with circulating registers 124a and 126a . as with the registers 124 and 126 , registers 124a and 126a also circulate data and sync codes . the circulating codes are mixed with the incoming signal from mixer 63b using mixers 56a , 57a , 58a and 59a : the ones code from register 124a is mixed in mixer 59a , the zeros code from inverter 125a is mixed in mixer 58a , the + sync code from register 126a is mixed in mixer 57a , and the - sync code from inverter 127a is mixed in mixer 56a . however , because clock φ 2 is tau - dithered , the resulting output from mixers 56a , 57a , 58a and 59a is a tau - dithered despread data and sync signal . these tau - dithered signals are detected using energy detectors 49a in demodulating circuitry 68 , see fig3 and 4 . the outputs of the energy detectors are combined to form a spreading code correlation stream on line 82 . in practice , when the inverse of the ones code ( or + sync ) is used for the zeros code ( or - sync ), a separate energy detect need not be performed on both despread lines . therefore , in such case the tau - dither despreading and energy detection may be performed satisfactorily without the use of mixers 58a and 56a as well as the energy detectors 49a on lines 53a and 55a . however , when distinct codes are used in &# 34 ; 1 &# 34 ;, &# 34 ; 0 &# 34 ;, + sync and - sync circulating registers , mixers and detectors for each must be provided . the output stream 82 contains the correlation amplitude changes due to the incremental clock φ 1 position shifts . band pass filter 305 extracts the amplitude component . the low frequency signal 300 is compared with the correlation amplitude change in phase detector 301 . after filtering by low pass filter 303 , the resulting correction signal 306 is applied to adjust the vco 304 frequency . in this manner the received chip stream is constantly compared with the clock φ 1 and chip signal corrections are constantly implemented . an alternative implementation to chip sync 103 is to place vco 304 and incremental phase modulator 302 under microprocessor ( 190 ) control ( dotted lines , fig6 ). in such an embodiment the microprocessor 190 evaluates the signals from the energy detectors 49a on line 82 . in accordance with correlation response levels , see fig7 found on line 82 , the microprocessor 190 adjusts the amount and direction of phase shift imparted to the φ 2 clock by the incremental phase modulator 302 , as well as the frequency of vco 304 . use of a microprocessor 190 to control the vco 304 and incremental phase modulator 302 response provides added flexibility in the implementation of the tau - dither sync method . in the special case where a single data code is common to all remote stations 4 in the network , the synchronization circuitry differs from the more general case above . based on the assumption that there is a continuous bit stream , a time lock operation is first performed . time lock synchronization involves first a bit synchronization operation . bit synchronization requires that the internal reference code be compared to the incoming data stream at a rate greater than the data stream rate . the reference code is &# 34 ; raced along &# 34 ; the data stream by the internal clock until a correlation indication is obtained . see fig7 . at such point , the bit position is approximately defined . to reduce hardware costs , the process of &# 34 ; racing &# 34 ; the code along the data stream may be accomplished using a single circulating register ( e . g . register 124a ) under microprocessor ( 190 ) control . the internal clock which controls the internal code circulating rate is under microprocessor ( 190 ) control and is derived from the system master clock , vco 304 . the microprocessor 190 causes the clock to &# 34 ; race &# 34 ; with respect to the incoming data stream until a positive correlation is obtained , on line 82 for example . this &# 34 ; racing &# 34 ; of the clock is obtained using a &# 34 ; bit - stealing &# 34 ; operation where the vco ( 304 ) frequency is decreased by &# 34 ; stealing &# 34 ; bits from the vco ( 304 ) output . by increasing the number of bits stolen , the clock frequency is increased . by decreasing the number of bits stolen the clock frequency is decreased . once the approximate sync is obtained , tau - dither bit and chip sync , as previously described , see fig6 is performed . by use of the tau - dither chip synchronization method synchronization within one eighth to one fourth of a chip is obtained . after chip sync is achieved the despread signal is demodulated 49 , using a costas demodulator , for example . the resulting data is sent to the microprocessor 190 . at this point the microprocessor 190 , performs the framing sync operation by scanning the data for the unique sync character which is embedded within the data at periodic intervals . in order to ensure that a detected sync character is not a fortuitous combination of bits due to the arrangement of the data , the microprocessor 190 will verify that sync characters are present at the next several sync intervals , for a small number of intervals less than ten . referring to fig1 , and 8 , the central station 14 will now be described . the data concentrator ( 10 ) portion of the central station 14 comprises rs - 232 electrical signal level changers 210 , universal asynchronous receive / transmit parallel to serial devices ( uart ) 211 and microprocessor 212 , which may be a general purpose microprocessor . see fig8 . data from up to 144 different sources ( e . g . input links 11 ) are accepted by the rs - 232 level changers 210 . the data are then transformed from parallel form to a serial bit stream by the uart devices 211 . a uart 211 device is examined by the microprocessor 212 whenever it sends a uart attention flag to the microprocessor 212 . the attention flag tells the microprocessor 212 that the uart 211 has begun to receive data . when the microprocessor 212 encounters a uart 211 which is full , it transfers the contents of that uart 211 into the byte buffer 214 . associated with the uart 211 is the source of the data from which the microprocessor , by examining its external memory , eprom 213 , may derive the identity of the remote station to which the data is to be sent and the spreading code key to be used . the spreading code key is then stored in ram 214 until the data in the byte buffer 214 are sent to the delay buffer 18 and thence to the multiplier 20 . as the data are routed to the multiplier 20 , the microprocessor 212 , using the spreading code key from ram 214 , causes code generator 16 to generate the desired spreading code . this spreading code is then routed to multiplier 20 where it is used to spread the incoming data . a sync character is inserted at periodic intervals , for example , every tenth of a second . at this point the delay buffer 18 accumulates the incoming data while the microprocessor 212 causes the code generator 16 to output the sync spreading code or character to the multiplier 20 . when the sync code or character has been inserted into the bit stream , spreading of the data is resumed . note that the multiplier 20 is essentially an exclusive - or gate ( xor ). therefore , as the spreading code is applied to one input of multiplier 20 and the data applied to the other , a &# 34 ; ones &# 34 ; data bit results in an output of an unaltered ones bit spreading code . if the data are zeros bits , the output will be the inverse ( polarity ) of the ones bit spreading code , or the zeros bit spreading code . ( recall that the zeros bit spreading code is chosen in the preferred embodiment to be the inverse ( polarity ) of the ones spreading code . the same is true for the + sync and - sync spreading codes .) if there are no data to be encoded , a filler character is sent to keep the remote stations 4 in a locked condition . once the data have been spread , they are applied to balanced modulator 215 which causes the 70 mhz local oscillator signal 216 , applied to the other multiplier input , to be bpsk modulated . note that the local oscillator 216 is controlled by a crystal maintained under environmentally controlled conditions , thereby promoting excellent long term stability of the 70 mhz subcarrier frequency . modulation is performed at a high frequency level for ease of up - conversion . the output of the balanced modulator 215 is then frequency translated to the nominal 6 ghz carrier frequency , amplified , and transmitted , using a large dish antenna 8 to the geostationary satellite 3 . as described in the system level description of the two - way transmission network , supra , the two - way network utilizes the one - way transmission network for the second hop , or &# 34 ; outbound link &# 34 ;, fig1 and adds remote station code division multiplex ( cdm ) transmission capability 230 to the remote stations , as well as cdm receiving capability 231 at the central station 14 for the first hop , or &# 34 ; inbound link &# 34 ;, of the double hop transmission . one remote station 4a may thus communicate with another remote station or stations 4 by routing the transmission through the central station 14 via satellite 3 , see fig2 . the central station 14 receives the cdm transmission from the sending station 4a , despreads it , then respreads it with the addressed station spreading code , and then transmits the respread data in tdm form through the geostationary satellite 3 to the addressed remote station 4 . referring to fig3 the transmitter circuitry 230 , added to give a remote station cdm transmission capability , is shown . this circuitry is basically a bpsk or fsk transmitter , but with a frequency synthesized carrier source 243 , 244 , 235 and 236 , as well as spread spectrum encoding 30 , 239 . data , clocks and controls are provided by the receiver section of the remote station . the frequency synthesized carrier frequency is derived by dividing the vco 235 output by a scaling factor ( frequency selector 243 ) selected by the microprocessor 190 . the frequency selector 243 comprises a programmable counter . the output of the frequency selector 243 is then compared in xor gate 244 against a reference signal derived from the internal receiver clock φ 1 . the output of xor gate 244 is then filtered in low pass filter ( lpf ) 236 and applied to adjust the scaled vco 235 frequency to coincide with the reference frequency . this permits the frequency synthesized carrier to track the receiver clock φ 1 even when the two are at different frequencies . the microprocessor 190 controls the timing of the application of the data to the multiplier ( xor gate ) 239 as well as the timing and generation of the spreading code 30 . the spreading code used is unique to each remote station . in the preferred embodiment the code length is selected to be 2048 chips . the code corresponding to a ones bit is different from that for a zeros bit . the code generator comprises a combination of shift registers , selected outputs of which are exclusive - or &# 39 ; ed and reintroduced into the shift register input . the number of ones chips is approximately equal to the number of zeros chips in each code . transmission from the remote station transmitter circuitry 230 is simultaneous with respect to inbound transmissions of other remote stations . the timing of these transmissions is based upon the received sync signals transmitted by the central station 14 on the outbound link . in this way the timing sync problem at the central station despreading receiver bank 273 has a common reference point from which correction factors for distance and earth rotational shift may be calculated . these correction factors are implemented at the central station 14 . simultaneous transmissions by the remote stations require non - interfering codes . this , plus the need for greater process gain , dictates the choice of code length of a thousand chips or more as well as orthogonal or near orthogonal codes . to summarize , the add - on transmitter circuitry 230 receives data , under microprocessor 190 control , from a remote station user i / o terminal 191 . the microprocessor 190 causes the code generator 30 to generate the remote station &# 39 ; s two 2048 chip cdm codes , as well as adjusts the frequency selector 243 which sets the carrier frequency . xor gate 239 multiplies the data with the spreading codes , all under microprocessor 190 control . the output of xor gate 239 modulates the frequency synthesized carrier in balanced modulator 234 . the output of the balanced modulator is then frequency translated 233 to the desired frequency and transmitted via geostationary satellite 3 to the central station 14 using a 4 foot diameter dish antenna 21 . referring to fig3 the central station receiving circuitry 231 allows the station to receive signals from all remote stations 4a served by the geostationary satellite 3 . with chip rate for the system selected to be approximately 2 . 45 mhz , the null - to - null bandwidth of one channel is 2 × 2 . 45 mhz = 4 . 9 mhz . in addition , each channel may accommodate 2048 ÷ 2 = 1024 users assuming two codes per user . ( the number of orthogonal codes is approximately equal to code length .) theoretically , the central station 14 would be capable of receiving approximatelly 11 × 1024 = 11 , 264 different remote station transmissions . ( assumes 36 mhz transponder bandwidth and signals positioned 1 . 2 × r center - to - center spacing where r equals chip rate . this spacing is the closest practical bandwidth before encountering serious intersymbol interference .) in the preferred embodiment , the bandwidth chosen per channel is 4 . 9 mhz ( 2 × 2 . 45 mhz ), thereby permitting six or seven channels within the 36 mhz bandwidth of a standard satellite transponder , with one of those channels reserved for the outbound link . therefore , the central station 14 should be capable of receiving data from at least 5 × 1024 = 5120 different remote stations per 36 mhz transponder . signals received by the 60 foot receiving antenna 270 of the central station 14 are first mixed ( 271 ) down to a nominal 70 mhz if frequency . the signal is then separated into the five transponder channels by l . o ./ mixer combinations 272 . associated with each l . o ./ mixer output is a bank of despreading receivers 273 . see fig3 . each despreading receiver is loaded with the code sequence of a different potential transmiting remote station 4a . the number of despreading receivers per channel cannot economically be made equal to the total number of remote stations using a channel , therefore the incoming signal is compared to only a portion of the possible codes at one time . the remaining codes are cycled into the despreading receiver 273 on successive cycles of the search . the number of receivers 273 in the bank are selected statistically in light of the expected traffic patterns and acceptable acquisition period . typically there are 256 despreading receivers in a bank , and acquisition time takes a maximum of 15 to 30 seconds . associated with each code sequence is a unique timing correction factor . the timing correction factor is a function of the particular remote station location , and , to a lesser extent , daily shifts in the geostationary satellite 3 position . in loading a particular code into a despreading receiver , the microprocessor 212 implements the correction factor by delaying the start of the spreading sequence by the appropriate amount . by assigning the timing correction task to the central station 14 , the need for each remote station to maintain correction capability is eliminated . additionally , unauthorized use of a remote station , e . g ., after a theft , will be prevented should the station be moved from its designated location . when a despreading receiver 273 detects a matching spreading code in the incoming data stream , it retains the code in its circulating register and waits for additional transmissions . as in the remote station spreading circuitry 139 , described supra , the incoming signal is despread and detected . the noise averages out and the signal components accumulate additively . each bit accumulation is examined to see if the required threshold is exceeded . if a certain number of hard data bits are received , the microprocessor 212 will examine the soft data information for the best decision on the missing bits . after despreading , the data are treated as are data from a terrestrial source 11 . the despread data contains address and raw data information . as with data received from a terrestrial source , the data concentrator 10 and microprocessor 212 serialize and spread the data for retransmission to the addressed remote station 4 . the microprocessor 212 also maintains a record of the system usage by each remote station . referring to fig2 and 3 , the operation of the two - way transmission network will be described . at the remote station 4a the user inputs data on i / o device 191 , including designation of the remote station to which the information will be sent . microprocessor 190 routes the data to xor gate 239 and at the same time causes code generator 30 to generate the remote station 4a cdm spreading codes . the data are spread in synchronization with the system sync timing . the spread data are then transmitted cdm 22 to the geostationary satellite 3 using a 4 - foot dish antenna 21 . the geostationary satellite 3 receives the transmission and relays 23 the signal to the central station 60 - foot dish 270 . the central station receiving circuitry 231 matches the signal with a local reference code obtained from memory and circulated in a despreading receiver 273 . the reference code which matches the signal identifies the remote station from which the signal was transmitted . the data and address information are despread and the data respread in the addressed station &# 39 ; s spreading code . the spread information is transmitted time division multiplexed , 2 , 12 binary phase shift keying via the geostationary satellite 3 to the addressed remote station 4 . the addressed remote station 4 detects the data intended for it in the transmitted stream . the data are first despread , then demodulated to yield the transmitted data . chip sync 103 maintains chip and bit synchronization , and frame sync 161 maintains code and frame alignment . the microprocessor 190 forms the despread data into bytes and then , with appropriate controls , outputs the data 191 to the user . in the special case where a single code contains both sync and data information , time lock is first obtained by racing the internal reference code along the incoming chip stream and observing the despread output for a positive correlation indication . once time lock or bit sync is obtained , tau - dither techniques are used to fine - tune the positioning of the first chip of the incoming bits with the first chip of the internal reference code . after chip sync is obtained , the despread data are demodulated . the microprocessor extracts the sync character from the demodulated data and adjusts the system timing accordingly .