Apparatus for synchronizing linear PN sequences
REFERENCE TO PRIOR APPLICATION 
     This application is a continuation-in-part application of our prior U.S. application Ser. No. 529,706 filed Aug. 30, 1983, now abandoned. 
    
    
     BRIEF DESCRIPTION OF THE PRIOR ART 
     Spread spectrum communication systems are well known in the prior art, as described, for example, in the treatise Spread Spectrum Systems, by Robert C. Dixon, John Wiley &amp; Sons, Inc., New York, N.Y., 1976. Literally, a spread spectrum system is one in which the transmitted signal is spread over a frequency band wider than the minimum bandwidth required to transmit the information being sent. Thus, a baseband signal (i.e., a voice channel) with a bandwidth of only a few kiloHertz may be distributed over a band that may be many megaHertz wide. This is accomplished by modulating with the information to be sent and with a wideband encoding signal. 
     Code synchronization is required in all spread spectrum systems, since the code is the key to despreading desired information and to spreading any undesired signals. 
     In a variety of communications and ranging systems a linear pseudo noise sequence is used. These sequences are valuable for spreading the bandwidth and for providing timing signals for ranging. Spreading is usually done in order to combat intentional or unintentional narrowband jamming. Once the receiver has synchronized to the sequence, the signal may be despread and the data demodulated with attendant processing gain. 
     In the past, the receiver was forced to slew the clock for a linear PN sequence to line up the receiver generator with the transmitted sequence. For long sequences or sequences received in heavy noise (i.e., noise power density which is of the order of, or exceeds the energy per chip), such typical methods as &#34;the sliding correlation&#34; are impractical because of the large number of phases which must be tested with attendant dwell time required in heavy noise. 
     SUMMARY OF THE INVENTION 
     The present invention was developed to avoid the above and other drawbacks of the known synchronizing systems, and for synchronizing a linear PN sequence directly without slewing a generator and correlating. The system is algebraic and has been proven to work even if the received noise is larger than 40 db greater than the signal. 
     In accordance with a primary object of the invention, the system includes demodulator means for separating from the received signal the noisy wideband PN spread spectrum component, and for generating a chip clock rate signal, resident PN generator means responsive to the chip rate clock signal for producing a replica of the PN sequence with arbitrary phase, running matrix inverse means for obtaining the inverse of the matrix (R) formed by n successive observations of the register (4) of the resident generator, matrix vector product means for multiplying the running inverse by a column vector of noisy chips, thereby to obtain a plurality of estimates of the phase vector, means for smoothing and averaging the phase vector estimates, thereby to produce the smoothed phase vector (c j ), dot product means responsive to the smooth phase vector and to the contents of the resident shift generator for producing the properly phased PN sequence, and despreading means for combining the noisy chips with the properly phased PN sequence, whereby the narrowband digital data carried by the spread spectrum signal may be recovered. 
     According to one embodiment of the invention, the running matrix means includes a plurality of columns i (where i=1 . . . n) each including a plurality of D stage registers, a plurality of mod 2 adders connected between the registers, respectively, a plurality of AND gates having outputs connected with the mod 2 adders, respectively, each of the AND gates having a pair of input terminals, means for applying the known coefficients of recursion (X . . . X n-1 ) of the resident PN generator to one input terminal of the AND gates, respectively, means for applying to the other input terminal of each AND gate a feedback signal provided by a connection between the output of the bottom D stage and the input of the top D stage of the column, and means for loading in parallel to the D stages of each column, respectively, second signals (Y 1i  . . . Y n-1 ) that are known a&#39; priori functions of the coefficients of recursion thereby loading the initial running matrix inverse (R o   -1 ). This initial running matrix inverse has the form: ##EQU1## 
     In a second embodiment of the invention, the running matrix inverse means includes a plurality of rows each including a plurality of D stage registers, a plurality of mod 2 adders connected between the registers, respectively, a plurality of AND gates having outputs connected with the mod 2 adders, respectively, each of said AND gates having a pair of input terminals, means for applying the known coefficients of recursion (X 1  . . . X n-1 ) to one input terminal of the AND gates, respectively, means for applying to the other input terminal of each of said AND gates a feedback signal provided by a connection between the output of the last D stage and the input of the first D stage of the row, and means for loading in parallel to the D stages of each row, respectively, second signals (Y i1  . . . Y in ) that are known a&#39; priori functions of the coefficients of recursion, thereby loading the initial inverse (R o   -1 ). 
     According to a further object of the invention, phase delay computer means are provided for converting the smoothed phase vector [c j  ] to actual phase delay, thereby affording means for range computation. 
     According to another object of the invention, the matrix vector product means includes a plurality of AND gates having first inputs to which are applied the data signals [d 1  . . . d n  ], and second input terminals connected with corresponding D stages of the running matrix inverse. A plurality of mod 2 adders are connected with the output terminals of a plurality of the AND gates, respectively, thereby providing a plurality of phase vector estimates that are smoothed for transmission to threshold means which determine the polarity of the individual phase vector components. In one embodiment, the smoothing means comprises an up/down counter, while in another embodiment, the soothing means comprises an up/down accumulator in combination with a zero counter that determines the amount by which the up/down accumulator is incremented or decremented. 
     In accordance with another feature, the invention can be incorporated into a phase delay-lock loop system of the type wherein two reference signals are generated for comparison with a single incoming signal in two separate correlators. The summed correlator outputs are filtered and are used to control the operation of a voltage controlled oscillator that produces the chip rate clock signal. 
     In a further modification, the resident PN generator means includes a plurality of D stage registers, a plurality of mod 2 adders connected between the registers, respectively, a plurality of AND gates (310) having outputs connected with the mod 2 adders, respectively, each of the AND gates having a pair of input terminals, means for applying the known coefficients of recursion (X 1  . . . X n ) to one input terminal of the AND gates, respectively, and means for applying to the other input terminal of each of said AND gates a feedback signal provided by a connection between the output of the last D stage and the input of the first D stage of the column. The running matrix inversion means, in this embodiment, includes a plurality of columns each including a shift register, and recursion means connected with the shift register for producing the next bit depending on the n prior bits, the recursion means having a plurality of known coefficients of recursion (X 1  . . . X n-1 ), and means for loading in parallel to the D stages of each column, respectively, second signals (Y 1i  . . . Y ni ) that are known a&#39; priori functions of the coefficients of recursion, thereby loading the initial inverse (R o   -1 ). 
    
    
     BRIEF DESCRIPTION OF THE FIGURES 
     Other objects and advantages of the invention will become apparent from a study of the following specification, when viewed in the light of the accompanying drawings, in which: 
     FIG. 1 is a schematic diagram of a spread spectrum system including the PN synchronizer of the present invention. 
     FIG. 2 is a schematic diagram illustrating the apparatus for starting the generator with arbitrary phase and for obtaining correct phase by mod 2 summing certain bits in the shift register of the generator. 
     FIG. 3 is a schematic diagram of one column of a multi-column matrix inversion means. 
     FIG. 4 is a diagrammatic illustration of a particular state of operation of the apparatus of FIG. 2. 
     FIGS. 5 and 6 are block diagrams illustrating the manner extracting tap weights to generate proper phase, and the refined averaging method for tap weights, respectively. 
     FIG. 7 is a graphic representation comparing acquisition times as a function of generator register length n and SNR converted via Gaussian densities to raw bit error probability p. 
     FIG. 8 is a modification of the apparatus of FIG. 2. 
     FIG. 9 is a circuit diagram illustrating another embodiment of the invention for synchronizing the PN sequence in a phase locked loop, and FIG. 10 illustrates the voltage signals sketched as a function of chip clock phase. 
     FIG. 10 illustrates a modification of the apparatus of FIG. 2. 
     FIG. 11 is a diagrammatic illustration of another embodiment of the resident PN generator means of FIG. 1, and FIG. 12 illustrates a corresponding modification of the running inverse means. 
     FIG. 13 is a diagrammatic illustration of the structure of the row weight enumerator of the system of FIGS. 11 and 12. 
     FIG. 14 is a diagrammatic illustration of another modification of the resident PN generator means. 
     FIGS. 15 and 16 are diagrammatic illustrations of the system for utilizing soft decisions on the noisy chips. 
    
    
     DETAILED DESCRIPTION 
     As a glossary for use by the reader, in the following specification, certain terms have been used which have well-known meanings in the art, as follows: 
     &#34;chips&#34;--1&#39;s and 0&#39;s which have characteristics of randomness and are drawn from a linear PN sequence, generated at many times the data rate, and are Mod 2 added to the data to create the wideband spread spectrum signal; 
     &#34;noisy chips&#34;--chips contaminated with background noise, resulting in errors; 
     &#34;noisy wideband&#34;--chips generated at a rate higher than the data rate, and contaminated with noise, causing them to be received with errors; and 
     &#34;heavy noise&#34;--noise power density which is on the order of, or exceeds the energy per chip. 
     Referring first more particularly to FIG. 1, the spread spectrum transmitter 100 includes a source of narrow band digital data upon which the pseudo noise (PN) sequence is added by the MOD 2 ADDER 102, thereby to produce wideband digital data, as is known in the art. This spread spectrum base band data is then modulated with the carrier signal by modulator 104 in a known manner, such as amplitude modulation, phase modulator or frequency modulation. 
     At the receiver, the transmitted signal is fed to the demodulator and chip rate clock extractor 106 which produces a wideband chip output that is fed to one input terminal of the MOD 2 ADDER 108. The chip rate clock signal 109 is supplied to a resident PN generator 110 having outputs connected with the running matrix inverse 112 and with the dot product matrix 114, respectively. The output of the running matrix inverse 112 applied to one input of the matrix product 118 the other input of which is supplied via conduit 120 with a portion of the noisy chips produced by the demodulator and chip rate clock extractor 106. 
     The matrix product 118 produces noisy phase vector estimates that are supplied to the smoother/averager 122 to produce the smoothed phase vector c j  that is supplied to the dot product device 114. 
     More particularly, the resident generator 110 runs synchronously with the incoming noise sequence at any arbitrary phase of the possible 2 n  -1 phases. Any other phase can be constructed by taking a mod 2 sum of the states of the shift register generator of the resident PN generator 110. The problem is to compute which mod 2 sums of the register to take. To this end, the running inverse of the matrix of the successive observations of the shift register of the resident generator is computed, whereupon a matrix product is formed of the inverse with a vector of incoming noisy chips. The resulting phase vector estimate is smoothed to obtain [c j  ]. A dot product of the resident register with [c j  ] then transforms the resident register into a noise free version of the incoming PN sequence with the proper phase. 
     (1) The Resident Generator (FIG. 2) 
     Referring now to FIG. 2, in order to find the phase of a linear PN sequence when received in heavy noise, any phase of a linear PN sequence is made by taking a mod 2 sum by adder 2 of some of the bits in the resident generator shift register 4. More particulary, there is a one-to-one correspondence between any of the 2 n  -1 phases and one of the non-trivial mod 2 sums of n bits of the generator register. Therefore, the problem of finding the correct phase corresponds to finding which mod 2 sum to take of the n bit shift register. The clock 109 is not slewed, but rather is kept in lock condition. 
     FIG. 2 illustrates the manner of starting the generator off with arbitrary phase and still obtaining the correct phase by mod 2 summing certain bits in the shift register of the generator. The problem is to determine which switch closures [c j  ] to make to get the correct phase. The switch closures are usually implemented with logical AND gates. The set of inputs that determine the switch closures is called a phase vector. 
     For a given noisy received sequence [d], an estimate of the proper phase vector on the register [c j  ] is obtained by solving the system of equations 
     
         R[c]=[d]                                                   (1) 
    
     A separate estimate is obtained every chip time, which estimates are averaged to obtain the correct estimate. Because R is known at all times, and can be shown to be invertable, [c] can be obtained as follows: 
     
         [c]=R.sup.-1 [d]                                           (2) 
    
     R is in principle obtained by n successive observations of the resident shift register 4 of FIG. 2. 
     (2) The Running Inverse (FIG. 3) 
     In accordance with a characterizing feature of the present invention, a fast running matrix inverse is provided having columns implemented as shown in FIG. 3. This structure avoids the otherwise enormous amount of computation which would be required every chip time for matrix inversion. More particularly, the coefficients [X] in the recursion equation of the circuit of FIG. 2 are applied to one leg of the AND gates 10, respectively, of the column of FIG. 3. The outputs of these AND gates are applied to the inputs of the MOD 2 ADDERS 12 that are connected between the shift register D stages 14. The output from the last D stage is connected with the input to the first D stage unit and to the other legs of the AND gates 10, respectively. The Y inputs are supplied to initially load the D stages, respectively. They are generally different for each column and are described below for various embodiments of the invention. 
     This may be mathematically explained, as follows: 
     The original equations for solving c can be written for any time q: 
     
         R.sub.o S.sup.q [c]=[d]                                    (3) 
    
     where [d] is the time varying input noisy chips of the PN sequence and R o  is some initial matrix obtained by observing the generator register the first n successive times. (There is a convenient time to make this initial set-up for R o  which will be discussed below). 
     The right shifting matrix S of equation (3) is simple and takes the form ##EQU2## Solving (3) for the tap weights we have 
     
         [c]=[S.sup.-1 ].sup.q R.sub.o.sup.-1 [d]                   (5) 
    
     Where S -1  is equally simple and is given by ##EQU3## Thus, the matrix S -1  is a row operation whose columns are implemented as shift register depicted in FIG. 3 and as described above. 
     (3) Z Generation (FIG. 4) 
     A second discovery is the fact that the initial R o   -1  loading of the stages in FIG. 3 can be facilitated by observing certain states of the resident generator register. It turns out that if either the 0000 . . . 01 state or 1000 . . . 00 state is decoded, the initial inverse matrix is a trivial function of the coefficients [X j  ] in the generator polynomial. Consider first the matrix equation for the tap weights c. Thus, ##EQU4## or, succinctly: 
     
         [R.sub.o ]×[c]=[d]                                   (7b) 
    
     Where the arrow indicates direction of movement of data with time. The matrix on the LHS is lower triangular with constant diagonals. As such, it has a simple inverse. 
     This matrix has an inverse which is also lower triangular with constant diagonals. ##EQU5## The matrices in (7) and (8) will be inverses if and only if 
     
         Z.sub.1 =X.sub.1 
    
     
         Z.sub.2 =X.sub.2 +X.sub.1 Z.sub.1 =X.sub.1 +X.sub.2        (9) 
    
     
         Z.sub.3 =X.sub.3 +X.sub.2 Z.sub.1 +X.sub.1 Z.sub.2 
    
     or in general ##EQU6## 
     This is derived by forming row reductions on (8) and can be easily verified. The shift register generator of FIG. 4 illustrates how the Zs are formed, which shift register corresponds with that of FIG. 2. 
     Thus: ##EQU7## and the X j  is used to load R o   -1  exactly n-1 bit delays after decoding the 1000 . . . 0 state. It is somewhat easier to use the 000 . . . 01 state. Then the inverse is upper triangular and takes the form: ##EQU8## 
     This is equally easy to verify. This R o   -1  is loaded immediately after decoding the 0000 . . . 01 state. Equation (11) is an example of the set of Y&#39;s that is loaded into the D stages 14 of FIG. 3. 
     (4) The Matrix Product and Smoother Averager (FIGS. 5-7) 
     After obtaining the running inverse, the matrix produces noisy estimates which are smoothed to obtain good estimates of the tap weights [c i  ] as illustrated in FIG. 5. A refinement which takes into account the accuracy of each individual estimate is depicted in FIG. 6. 
     The reasoning behind this refinement is described next. 
     As indicated above, the present invention performs an inverse of a binary matrix, and updates this inverse R n   -1  at the chip rate. The &#34;tap weights&#34; [c] which are used to form the phase shifted sequence were then estimated every chip time by forming the matrix vector product 
     
         [c]=R.sub.n.sup.-1 [d],                                    (12) 
    
     where the data [d] is noisy. In the originally proposed system of FIG. 4, the separate estimates of the tap weights [c] were averaged together by means of up/down counters. The time varying accuracy of each estimate was not taken into account. It has been proven that a very good estimate of the accuracy is available by just counting the number of &#34;ones&#34; or &#34;zeroes&#34; which are in any row of R n   -1 . Ideally, the accumulators which are combining the extimates of the tap c j  should contain a number λ j  proportional to the log liklihood ratio: ##EQU9## where these probabilities are conditioned on all observations. Now, since all the estimates are independent every chip time, the log likelihood ratios add. To see the weighting as a function of the number of ones, q (in say, the j th  row of R n   -1  at any chip time), one needs only to compute the probability of correctly adding mod 2, q noisy data bits. Let p be the raw data bit error rate, then the addition will be correct if no errors are made, or an even number of errors. The probability of correct computations P 1  is easily proved to be: ##EQU10## and the probability of error is: ##EQU11## the log likelihood ratio for this observation: ##EQU12## The approximation on the RHS of (16) is valid for small 1-2p or for heavy noise. 
     This says the decrement or increment of the j th  accumulator should decay exponentially with the number of ones in the j th  row of the inverse matrix. Now to compute the advantage of the system of FIG. 5 against the old, the following information-theoretic argument is used. 
     Assume that the operations on the noisy data can be regarded as communications channel. At each chip time, transinformation is obtained about the taps [c j  ]. As a good approximation to acquisition time in bits, the reciprocal of the average transinformation obtained per chip can be used. 
     The classic formula for transinformation reads: 
     
         I=1+P.sub.1 log.sub.2 P.sub.1 +(1-P.sub.1) log.sub.2 (1-P.sub.1) 
    
     where P 1  is the probability of correct computations. We are going to be dealing with heavy noise so let 
     
         P.sub.1 =(1+δ)/2 
    
     for small δ and substitute into (17) to get 
     
         I=1+(1+δ/2) log .sub.2 (1+δ/2)+(1-δ/2) log .sub.2 (1-δ/2)                                             (19) 
    
     Now using log 2  (1+δ)=δ/ln 2 we obtain ##EQU13## For the system of FIG. 5, δ=(1-2p) q  where q is the number of terms required to add to get the estimate of c j . Substituting this expression in (21), there is obtained: 
     
         I(g)=(1-2p).sup.2q /ln 2                                   (22) 
    
     But q of n bits in the inverse matrix is binomially distributed with the all zeroes case excluded. Therefore, one can write: ##EQU14## for the average transinformation in the new system. 1/H is the estimated acquisition time. For the prior system, an average probability P 1  of error for transinformation is used since the computations were not weighted according to their probability of being correct. To calculate P 1 , one needs only to convolve P 1  of equation (14) with the modified binomial distribution to get: ##EQU15## and using equation (21) and noting that δ 2  =(1/2-P 1 ) 2  the transformation is approximately: ##EQU16## 
     A comparison of acquisition times as a function of n and SNR converted via Gaussian densities to raw bit error probability p is plotted in FIG. 7. 
     (5) Factorable Generators 
     Another concern in determining the phase of noisy PN sequences is what to do about factorable generators such as the Gold Code and the 1+x 2  factor of ambiguously detected QPSK. 
     At first it was believed that one could use the ordinary system and ignore the fact that the generator polynomials are factorable, but such is not the case. 
     For example, assume that the PN sequence is received through a QPSK demodulator. The following four possible effects results: 
     (1) every bit can be received unaltered; 
     (2) every other bit can be inverted; 
     (3) every other bit can be inverted in opposite phase to (2); and 
     (4) all bits can be inverted. 
     If the original sequence S(x) satisfies the recursion equation 
     
         S(x)P.sub.n (x)=0 mod x.sup.2.spsp.n -1                    (26) 
    
     then any of the ambiguously received sequences S* will satisfy 
     
         S*(x)(1+x.sup.2)P.sub.n (x)=0 mod x.sup.2.spsp.n -1        (27) 
    
     This fact can be seen since the sum of the individual sequences which satisfy (26) also satisfy (26) and 
     
         S(x)P.sub.n (x)=0                                          (28) 
    
     while the sequences ##EQU17## are all zero factors of 1-x 2 . 
     If one were to blindly multiply the (1+x 2 )P n  (x) in equation (27) and attempt to use the simplest of the invention to solve for the &#34;phase vector&#34;, not every sequence could be derived from mod 2 sums of delayed versions of any other sequences. Instead, we have to adjoin two systems together (one for each factor). The Gold Codes and the generalizations thereof are also formed by summing a few independent linear PN sequences. Consequently, the generator polynomial can be expressed as a product of irreducable* (usually also primitive) polynomials. 
    
     For concreteness, consider the generating polys as being composed of two factors (P A  (x) and P B  (x)). The free running shift register at the receiver will now be replaced by two separate registers whose lengths are equal to the degrees of P A  and P B . It is linear sums of both register outputs (mod 2) that will reproduce any phase of the composite sequence. The matrix equations are partitions in the form: ##EQU18## where A and B represent successive entries in the shift registers which implement P Z  and P B  just as in applicant&#39;s prior development. 
     A* and B* represent entries in the registers which are observed after further shifting operations. The matrix on the left hand side of equation (30) is partioned in such a manner that A is square and B* is square. Remember than at any time, applicant&#39;s matrix equation could be described by just multiplying by a very simple column operator shift matrix. This situation is stil true. For all time k: ##EQU19## where the S A  and S B  are exactly as before and take the form: ##EQU20## the inverses are the same as before and are uncoupled row operations ##EQU21## Consequently, the inverse can be implemented almost identically as in applicant&#39;s prior system except the initial value is coupled and must be computed off line. For this system, a variable length &#34;column&#34; shift register in the inverse must be constructed where length is equal to the degree of the factors. 
     To find the initial inverses equations like ##EQU22## are solved for W, X, Y, and Z. 
     For example, consider the two equations for W and Y 
     
         AW+BY=I                                                    (35) 
    
     
         A*W+B*Y=O                                                  (36) 
    
     Since both A and B* have inverses, their equations, can be solved by substituting (36) into (35): 
     
         AW-BB*.sup.-1 A*W=I                                        (37) 
    
     or 
     
         W=(A=BB*.sup.-1 A*).sup.-1                                 (38) 
    
     and 
     
         Y=-B*.sup.-1 A*(A-BB*.sup.-1 A*).sup.-1                    (39) 
    
     (6) Extraction of PN Sequence with Data Modulation (FIG. 8) 
     In accordance with another important feature of the invention, with regard to the extractor of the PN sequence with data modulation, in the prior art it was known to remove the modulation by adding successive bits, which has the drawback that the addition mod 2 has a penalty in noise, together with the nuisance of finding the multiplicative inverse of (1+X) to recreate the correct phase of the PN sequence. This inverse is required to undo the operation of successive addition. 
     For this special case, the initial loading of the inverse matrix is given in closed form. 
     If a PN sequence S(X) satisfies S(X)P(X)=0 mod X 2n  -1 then the sequence S(X) or its complement S(X) satisfies S(X)(1+X)P(X)=0 mod X 2n  -1. 
     Since the sequence Q(X)=1 1 1 1 1 1 satisfies Q(X) (1+X)=0: 
     
         (1+X)P(X){Q(X)+S(X)}=(1+X)P(X)S(X)                         (40) 
    
     The distributive law still holds in polynomial rings. 
     While it may appear necessary to add the incoming data bits first, such is not the case, since the sequence is reconstituted without the operator (1+X) and stripped of the modulation. 
     The phase vector for the data modulated sequence is used exactly in the same way as the ordinary system. 
     The overall polynomial factors into P(X) (1+X). Recall that the free running generators are segmented into separate generators for each factor, linear sums of the generator registers are taken to form the reconstituted sequence. 
     The generator for P(X) has the same Structure as the generator for the original sequence. The generator for (1+X) is the simple constant &#34;1&#34;. It is not surprising then that any phase of the true or the complement can be constructed as depicted in FIG. 8. However, since it is not desired to reconstitute the complement sequence, the constant output is never used in the sum. It is clear that if closing the switch of the constant would create the complement sequence with the proper phase, the same tap weights without the constant would create the same phase of the true sequence. 
     Even though the constant&#39;s output is not used to form the proper phase, to solve for the tap weights [c i  ] it is necessary to solve a system of equations with one more dimension. 
     The system of equations can b partioned in the following matrix: ##EQU23## R is the square matrix of shift register entries of the free running shift register. r T  is the vector of shift register entries which occur one shift after the bottom row of R. c 1  through c n  are the tap weights on the main register. c n+1  is the tap weight (unused) for the constant term and the d&#39;s are the noisy observed data bits. The column vector of all ones reflects the fact that the constant term never changes. 
     Consideration is now given as to how these systems of equations are solved for all time and initially. 
     There is virtually no difference in the inverse matrix shifting operation between the data modulated system and applicant&#39;s original system. 
     Assume that the shifting matrix for the matrix left hand side of equations (41) partotion off into ##EQU24## 
     The matrix post multiplicatoin of equation (41) is blocked by S, whereupon the matrix R 1  and the vector r T  of equation (41) are indeed shifted while the &#34;ones&#34; column is left alone. 
     The inverse is also decoupled and reads. ##EQU25## The tap weight estimates are given at any time k by 
     
         [C(K)]=(S.sup.-1).sup.k 12.sup.-1 [d(k)]                   (44) 
    
     Where S -1  is a row operator and is implemented with column shift registers exactly as before with (n+1) columns and n rows, the n+1st row is invariant and in the present case is not even used. 
     Consideration is now given to calculating R o   -1 . 
     The calculation of an initial inverse is done in closed form. 
     Recall that in the original system, a special state of the free running generator was decoded which corresponded to an upper triangular matrix Z ##EQU26## and recall that the inverse, Z -1  was simply expressed in terms of the coefficients xj of the generator polynomial. ##EQU27## The initial inverse of the extended matrix of equation (41) is a little more complicated but will be expresseable in terms of Z -1  and other vectors involving {xj}. 
     The presence of Z was detected (or decoded) by decoding (0 0 . . . 0 1) in the free running generator register. The same is done here, thereby producing the initial matrix R o , ##EQU28## The row vector below Z, (1 0 . . . ), called μ T  and is known priori to be the next vector called (0 0 . . . 0 1) to be shifted into the generator register. 
     The constant all ones vector in the upper right hand corner is called &#34;u&#34;. The single one in the lower right hand corner is called &#34;d&#34;. 
     The initial inverse matrix is similarly partitioned and is defined ##EQU29## Block multiplying R o  R o   -1  gives the following equations 
     
         ZA+uf.sup.T =I                                             (49) 
    
     
         μ.sup.T A+f.sup.T 0.sup.T                               (50) 
    
     
         Ze+ug=0                                                    (51) 
    
     
         μ.sup.T e+g=1                                           (52) 
    
     where I is the appropriate indentity matrix and 0 T  is the zero row vector. 
     Substituting (50) into (49) yields: 
     
         (z+uμ.sup.T)A=1                                         (53) 
    
     where the outer product uμ T  is a matrix of the form ##EQU30## A can be expressed: 
     
         A=Z.sup.-1 (I+υω.sup.T)                      (55) 
    
     where 
     
         ω.sup.T =(1, X.sub.n-1, X.sub.n-2 . . . X.sub.1)     (56) 
    
     This expression was originally derived by assuming A in the form Z -1  B and then doing several row operations to find B. 
     Substituting (55) into (53) we have: 
     
         (Z+υμ.sup.T)Z.sup.-1 (I+υω.sup.T)=(I+υω.sup.T Z.sup.-1)(I+υω.sup.T)=I+υμ.sup.T Z.sup.-1 =υω.sup.T +υμ.sup.T Z.sup.-1 υω.sup.T                                    (57) 
    
     The factor of υ in the last three terms on the RHS of (18) adds to zero. Explicitly for the first two of the last three: ##EQU31## now for the third term ##EQU32## 
     An irreducably poly P(X) must have 1+Σx i  =0 or else (1+X) would factor it, therefore (55) is established. 
     The rest of the terms for the inverse R o   -1  are relatively easily obtained. From (50) and using (58): ##EQU33## The second term on the right hand side of (63) is zero, since ##EQU34## or simply 
     
         f.sup.T =(1, x.sub.n-1 . . . x.sub.1)                      (64) 
    
     Now from (51), it is apparent 
     
         e=g Z.sup.-1, g a scalar                                   (65) 
    
     substituting into (52) 
     
         g (μ.sup.T Z.sup.-1 u+1)=1                              (66) 
    
     whereby, μ T  Z -1  u=1+ΣX i  =0 so g=1 and ##EQU35## 
     The expression A in (55) can also be written in terms of these =&#39;s or e, whereby 
     
         A=A.sup.-1 +([e], [x.sub.n-1 e] . . . [x.sub.1 e])         (68) 
    
     where [x j  e] are column vectors. These explicit expressions (64, 65, 67, 68 and g=1) are used to implement initial loading. 
     (7) Further Modification (FIGS. 9 and 10) 
     According to another embodiment, a similar result may be obtained without having to search through the PN phase. By simple modification, there may be obtained a half bit advanced sequence and a half bit retarded sequence as well as the in-phase sequence. As shown by the circuit illustrated in FIG. 9, the input to the phase locked loop controller is despreaded. 
     In FIG. 10, the signals V 1  and V 2  are sketched as a function of chip clock phase. 
     In accordance with one important advantage, it is not necessary to slew over all the possible PN phases, because the PN synchronizer of the present invention calculates the appropriate despreading sequence regardless of the relative phase. This fact allows a much tighter loop. Note that the only thing that has to operate in a heavy noise environment is the PN synchronizer which works at -40 db SNR. 
     In FIG. 10, the signals V 1  and V 2  of FIG. 9 are sketched as a function of chip clock phase. More particularly, the input signal is supplied to the input terminals of multipliers 200, 202 and 204, and is applied to the threshold and sample gate 206 via chip rate matched filter. The noisy chips are supplied to the synchronizer 208 (which corresponds with the synchronizer of FIG. 1), which supplies the error-free properly phased PN sequenced to the multiplier 200, and the phase +180° and phase -180° signals to the multipliers 202 and 204, respectively. As known in the art of &#34;delay lock&#34; tracking loops, the phase shifted signals are supplied to lowpass filter and rectifiers 212 and 214 to produce the signals V 1  and V 2 , respectively, that are fed to the inputs of The mod 2 adder 216. The output from adder 216 is filtered by the loop filter 218 and is applied to the voltage controlled oscillator the chip rate clock signal to the threshold and sample gate 206 and to the synchronizer 208. The despread signal from multiplier 200 is supplied to conventional data synchronizing and detecting means. The composite control signal (V 1  -V 2 ) has stable points as shown in FIG. 10, and consequently it is not necessary to slew the sequence to any particular phase, since phase may always be recomputed algebraically. 
     Referring again to FIG. 1, for ranging operation, the phase vector is converted by the phase delay means 130 to actual phase difference via either a table look-up of standard algebraic calculation in a Galois field. Thus, a polynomial summation of c j  X j  is converted to a simple power: 
     
         X.sup.q Mod (generator polynomial) 
    
     In the embodiment of FIGS. 1-10 described above, the resident generator of FIG. 2 uses a shift register the output stages of which are connected with a mod 2 adder, and the columns of an inverse matrix were implemented with the generalized and much more complicated shift register of FIG. 3. As shown in the modification of FIGS. 11-13, the roles of these shift registers may be reversed by constructing one generalized shift register for the &#34;resident generator&#34; and many ordinary shift registers for the inverse matrix. This fact affords not only a considerable simplification in implementation of the inverse matrix but also yields a considerable simplification in the devices which measure the number of ones in the rows of the inverse matrix. Furthermore the initial inverse matricies are easier to compute with this alternate method. As shown in FIGS. 11-13, the resident PN generator means includes a plurality of D stage registers 314 between which are connected a plurality of mod 2 adders, respectively, having inputs connected with the output terminals of a plurality of AND gates 310, respectively. A plurality of known coefficients of recursion (X 1  . . . X n-1 ) are applied to first inputs to the AND gates, respectively, and the other input terminals of the AND gates are supplied with feedback signals provided by the feedback conductor 315 that connects the output from the last stage Z n  to the first stage Z 1  of the resident PN generator. The companion running matrix inverse means of FIG. 12 includes a plurality of columns i, where i=1 . . . m. Each of the columns includes a shift register 304, and recursion means connected with the shaft register for producing the next bit depending on the n prior bits, said recursion means having a plurality of known coefficients of recursion (X 1  . . . X n-1 ). Loaded in parallel to the D stages of each column, respectively, are second signals (Y 1i  . . . Y ni ) that are known a&#39; priori funcitons of the coefficients of recursion, thereby loading the inverse (R o   -1 ). 
     Consider the generator depicted in FIG. 11. In order to assure that this generator implements the correct sequence, the outputs of the register stages Z k  can be expressed at time &#34;j&#34; as follows: ##EQU36## which indeed implements the desired recursion equation. 
     To assure that any phaase of the sequence can be made from a mod 2 sum of the stages of this register, the following &#34;pigeon hole&#34; argument is made: 
     1. There are 2 n  -1 distinct phases of the linear PN sequence (assuming a primitive polynomial). 
     2. There are 2 n  -1 distinct non trivial combinations of the stages of the register which can be added together. 
     3. The distinct sums of registers all yield distinct phases or else there would be a combination which would add to zero which in turn would imply a polynomial P(x) degree less than n such that P(x)S(x)=0 mod X 2n  -1 which is untrue. 
     It is concluded that indeed there is a one-to-one correspondance between every phase of the PN sequence and some linear sum of the register stages of FIG. 11. 
     Again, one is trying to find the c&#39;s such that 
     
         R[c]=[d]                                                   (70) 
    
     Where R is the matrix formed by n successive operations of the resident generator, d is the incoming chip and c is the phase vector. Just as before, there is a simple matrix post multiplier which describes the shift operation so that for any time &#34;j&#34;: 
     
         R.sub.o S.sup.j [c]=[d].sub.j                              (71) 
    
     with [c] expressed as before 
     
         [c]=S.sup.-j R.sub.o.sup.-1 [d].sub.j                      (72) 
    
     The column shift operator reads ##EQU37## and its inverse is simply ##EQU38## Each column of the inverse operator in equation (74) is implemented with an ordinary shift register and generator as depicted in FIG. 12. 
     One advantage of this embodiment is that initial inverses are greatly simplified. 
     Recall that one needed to decode a state in the resident generator which will allow the loading of an initial inverse into the inverse matrix generators. 
     The state chosen for decoding is the all-zeroes-and-a-final-one state, 0000001. When this state occurs, the R o  matrix is the indentity. Consequently, the initial inverse is also the identity. The initial inverse for the data modulated case is only slightly less trivial. 
     For data modulation recall we use the extra factor (1+x) in the generator poly and we need to solve a system of linear equations with one more dimension. The situation is depicted below for the initial matrix R o . ##EQU39## The recursion coefficients (1, x n-1 , . . . x 1 ) are dumped into the resident generator after the (0 0 0 . . . 0 1) state. To determine the inverse, R o  is partitioned off into the form: ##EQU40## and the inverse is written in the same partition: ##EQU41## The equation R o  R o   -1  =I yields the following four equations: 
     
         A+1]γ.sup.T =I (Square Matrix)                       (78) 
    
     
         α.sup.T A+γ.sup.T =0.sup.T (Row vector)        (79) 
    
     
         B]+1]g=0] (Column Vector)                                  (80) 
    
     
         α.sup.T B]+g=1 (Scalar Equation)                     (81) 
    
     where I is the appropriate indentity matrix, 0 T  is a row of zeroes, 0] is a column of zeroes, 1] a column of ones and g a scalar. 
     Substituting (79) into (78), we have: 
     
         .[.I+1]α.sup.T .].A=I                                (82) 
    
     Writing the outer product 1]α T  explicitly as ##EQU42## enables us to observe 
     
         (1]α.sup.T).sup.2 =0                                 (84) 
    
     This fact is true because every term in the matrix square is of the form X q  ##EQU43## and there are an even number of non zero coefficients in all irreducable polys (not counting the lowest coefficient). 
     Therefore, left multiplying (82) by I+1]α T   we have an instant solution for A ##EQU44## Using (11) and (12) we have 
     
         g=1                                                        (86) 
    
     
         β]3=1] 
    
     again relying on |α T  |=0 
     Since we do not want to reconstitute the complemented sequence we do not need the last row of the inverse matrix, however, for completeness we might note that ##EQU45## 
     The shift operations are, of course, still decoupled and k chips after the initial inverse we have ##EQU46## The net effect of the data modulation is that we build one extra column shift register in the inverse and we initialize it with all &#34;1&#34;s. 
     All other factorable generators can be handled similarly, albeit the initial inverse matricies will be computed off line. 
     In general factorable generators and inverses are produced of the form ##EQU47## where A, B, C, D are components of an initial inverse. Equation (89) can be written ##EQU48## which is a natural partition for the column generators. 
     The initial inverses are constructed from solving equations similar to (78-81). 
     Finally note that the structure for the row weight enumerator is simplified because the weight can be passed down the rows as depicted in FIG. 13. It is estimated that the hardware for this embodiment will be reduced by about one-half from that of the previous embodiment. 
     Reference is now made to the modification of FIG. 14, wherein the mod 2 adders 412 are connected between the D-stage shift registers 4D4, a plurality of AND gates 410 being provided having outputs connected with the inputs of the mod 2 adders. The known coefficients of recursion (X 1  . . . X n-1 ) are applied to one input terminal of the AND gates, respectively, and the other input terminals of the AND gates are supplied with feedback signals provided by a connection 413 between the output of the last D stage and the input of the first D stage of the row. Loaded into the D stages of the registers are second signals (Y i1  . . . Y in ), respectively, that are a priori functions of the coefficients of recursion, thereby loading the initial inverse (R o   -1 ). 
     The &#34;exact equivalent&#34; system is formulated from the first system by observing that the prior shift operator on the matrix R was formed by post multiplying by a special matrix S; and that this operation can be replaced by premultiplying by a matrix S* where S* is closely related to S. In fact, we have ##EQU49## 
     If the shifts had been defined to the left, then S* would have been the transpose of S. The net result is that our running inverse matrix can be expressed: 
     
         R.sup.-1 =R.sub.o.sup.-1 (S*.sup.-1).sup.k                 (93) 
    
     Thus, the running inverse is obtained for each chip time by post multiplying by a simple inverse (where before it was premultiplied), thereby giving: ##EQU50## 
     The running inverse is therefore implemented with row shift as in FIG. 1 registers instead of columns. 
     Everything else remains the same, the initial R o   -1  is placed in the same stages as before. The up/down counters/accumulators are the same for this equivalent system. 
     Referring now to FIG. 15, more information about the correct phase vector may be obtained if one utilizes soft decisions on the noisy chip inputs. Soft decisions are obtained by making multiple thresholds and thereby deciding not only whether the input data is thought to be a one or a zero, but also how certain. It turns out that most of the available information is obtained with only two or three bits of soft decisions. A mathematical treatment follows. The soft decision modifies how much up data of the accumulations in the φ vector smoothing operation depicted in FIG. 16 is achieved. 
     For the phase vector, log likelihood ratios are accumulated for each component. Every chip time a certain amount of information is obtained about each component. Each component of the phase vector requires one bit of information to determine whether it is a &#34;one&#34; or a &#34;zero&#34;. Therefore, as an estimate of acquisition time in number of chips, the reciprocal of average transinformation about the component of the phase vector is used. 
     This estimate will be reasonably accurate as long as log likelihood ratios, λ i , are accumulated about each decision (each component). 
     To calculate the estimates of the phase vector component, we add mod 2, certain of the incoming chips. The amount by which the λ i  is updated is a function of the number of terms added together, and the certainty of the decision on each chip in the mod 2 sum. It turns out that the log likelihood ratios and the transinformation are relatively easily tractable in terms of the individual chip measurements. 
     In all cases of interest it is assumed that we are receiving chips in heavy noise, hence the probabilities of receiving them correctly p i  deviates slightly from 0.5, and there is used the definition 
     
         p.sub.i =0.5+ε.sub.i                               (95) 
    
     In heavy noise the transinformation about any component of the phase vector is approximated by 2ε 2  log 2  l, where ε is defined above. 
     The transinformation about any component φ i  of the phase vector is expressed at 
     
         I.sub.xy =1+(1-ρ) log.sub.2 (1-ρ)+ρlog.sub.2 ρ(96) 
    
     where p=0.5+ε is the probability of correct computation. Writing (96) in terms of ε: ##EQU51## Using log 2  (1+x)≈2ε 2  log 2  l for small x, (97) and (98) simplify to 
     
         I.sub.xy ≈2ε.sup.2 log.sub.2 l(bits)       (99) 
    
     Suppose a particular component of the phase φ q  is expressed as vector φ q  =Σy i  where y i  are individual chips; then after appropriate scaling, the scaled transinformation is the product of the individually scaled transinformation. 
     One needs only prove the above statement for the mod 2 sum of any two variables, then induction will provide it for all mod 2 sums. 
     The probability of error, q, in computation of the mod 2 sum of two variables y 1  and y 2  is given by 
     
         q=q.sub.1 +q.sub.2 -21.sub.q q.sub.2                       (100) 
    
     where q 1  and q 2  are the individual probability of errors of x 1  and x 2 . Using q=0.5-ε we have 
     
         0.5-ε=1-ε.sub.1 -ε.sub.2 -2(0.5-ε.sub.1)(0.5-ε.sub.2)              (101) 
    
     
         ε=2ε.sub.1 ε.sub.2                 (102) 
    
     
         4ε.sup.2 =(4ε.sub.1.sup.2)(4ε.sub.2.sup.2) (103) 
    
     In general 
     
         4ε.sup.2 =π(4ε.sub.i.sup.2)             (104) 
    
     
         4ε.sup.2 =(2/log.sub.2 l)H.sub.xy (bits)           (105) 
    
     the factor 2/log 2  l is the scaling factor. 
     This product formula (104) allows one to calculate the overall transinformation in terms of the transinformation on each chip, and one will be able to calculate the efficacy of soft decisions. 
     For hard decisions in heavy noise, for the chips, the transinformation in each chip is nearly (ρ/π) log 2  l. 
     The classic formula for transinformation given a hard decision D reads 
     
         I(x/D)=1+p(1/D) log.sub.2 (1/D)+p(0/D) log.sub.2 p(0/D)    (106) 
    
     where ##EQU52## Here Gaussian noise and symmetric signals are assumed. Now if p(O/d) is regarded as an error probability, ε=0.5-p(O/D) or ##EQU53## and our transinfomration is simply ##EQU54## asymptotically, heavy noise ρ&lt;&lt;1, 2  l -x .spsp.2 /2  is constant and (109) reduces to 
     
         2ε.sup.2 log.sub.2 l=(ρ/π) log.sub.2 l      (110) 
    
     where ρ is SNR in power. 
     For soft decision with enough resolution the transformation on each chip is nearly (ρ/2) log 2  l or a factor of π/2 better than hard decisions. 
     The transinformation at the receiver after measuring x volts is the classic equation 
     
         I(y/x)=1+p(1/x) log p(1/x)+p(0/x) log p(o/x)               (111) 
    
     Now by using Bayes rules ##EQU55## or, using symmetry ##EQU56## 
     Substituting (114) and (115) into (111) nets the equation, after a little arithmetic ##EQU57## Now in order to calculate the average transinformation the average of I(y/x) over p o  (x) is needed. Thus, ##EQU58## The first term can be evaluated in closed form. However, the second term offers difficulty. Numerical integration of (119) and (109) yield the following useful table 
     
         ______________________________________                                    
             H(y/x)      H(y/x)                                           
= SNR        Hard Decision                                                
                         Soft Decision                                    
______________________________________                                    
0 db         .335        .486                                             
-10          .0444       .0687                                            
-20           4.5 × 10.sup.-3                                       
                         7.16 × 10.sup.-3                           
-30          4.59 × 10.sup.-4                                       
                         7.21 × 10.sup.-4                           
-40          4.59 × 10.sup.-5                                       
                         7.21 × 10.sup.-5                           
______________________________________                                    
 
    
     Using sin h (√ρx)≈√ρx, cos h √ρx=1+(ρx2/2) and ln 1+z≈z results in the approximation for (20c) ##EQU59## 
     The table below indicates a factor of 1.57 improvement in acquisition time for the soft decisions at very low SNR and at 0 db. We have a factor of 3.9 for R10 and a factor of 14.5 for R20. 
     Let &#34;h&#34; be the transinformation per chip. To compute the overall transinformation we convolve the appropriately scaled (h) k  with the probability of using k chips in the mod 2 sum. The probability of having k chips is binominally distributed with k=0 case deleted. ##EQU60## 
     Carrying out these calculations for n=10 and n=20 results in the following table 
     
         ______________________________________                                    
                 Estimated acquisition time                               
           Improvement Hard        Soft                                   
SNR db     Factor      Decision    Decision                               
______________________________________                                    
 n = 1                                                                    
        0      3.87        31.9      8.26                                 
      -10      1.82        1.74 × 10.sup.3                          
                                     95.2                                 
      -20      1.58        2.17 × 10.sup.4                          
                                     1.37 × 10.sup.4                
      -30      1.58        2.22 × 10.sup.5                          
                                     1.4. × 10.sup.5                
      -40      1.57        2.33 × 10.sup.6                          
                                     1.49 × 10.sup.6                
n = 20                                                                    
        0      14.5        707       48.8                                 
      -10      2.25        6.31 × 10.sup.5                          
                                     2.61 × 10.sup.5                
      -20      1.62        1.08 × 10.sup.6                          
                                     6.67 × 10.sup.6                
      -30      1.57        1.14 × 10.sup.8                          
                                     7.14 × 10.sup.7                
      -40      1.57        1.14 × 10.sup.9                          
                                     7.25 × 10.sup.8                
______________________________________                                    
 
    
     In Gaussian noise the biggest improvement is between 0 and -10 db. It should be mentioned in passing for the cases of interferance from other codes the improvement should be more impressive. At high noise, about 2 db is gained, and at low noise, about 0 db is gained.