BPSK synchronizer using computational analysis
DESCRIPTION 
     1. Technical Field 
     This invention pertains to the field of synchronizing a binary phase shift keyed (BPSK) sinusoid. 
     2. Background Art 
     Houston, S. W., et al., &#34;Microprocessor Bit Synchronizer for Shuttle Payload Communications &#34;, IEEE Transactions on Communications, Vol. COM-26, No. 11, November 1978, pp. 1594-1603, describes a &#34;Payload Signal Processor&#34; (PSP) having a microprogrammable bit synchronizer detector. The input signal is a 1.024 MHz subcarrier PSK modulated by a continuous stream of digital telemetry data at 1, 2, 4, 8, or 16 Kbits/sec. The reference system uses analog integrate and dump filters to search for individual phase transitions. The present invention, on the other hand, uses a statistical criterion to determine phase transitions, and all the processing is performed digitally. 
     U.S. Pat. No. 4,457,005 shows a PSK demodulator which differs from the present invention in that: (1) phase transitions are searched for individually, not statistically; (2) it uses a square wave carrier, rather than a sinusoidal carrier; (3) the bit period is 2.5 times the carrier period (col. 2, line 53), whereas in the instant invention the bit period T is an integral multiple of the carrier cycle, and (4) sampling is performed every quarter carrier period (col. 2, line 60), as opposed to exactly at integral multiples of the carrier cycle. 
     U.S. Pat. Nos. 4,246,653 and 4,247,943 describe a demodulation system in which a local reference is not phase locked with a received signal, but rather the received signal is mixed with sine and cosine signals to obtain mulitple outputs which are correlated with pre-established code words to determine the particular code word that has been sent. 
     U.S. Pat. No. 4,246,654 describes a phase demodulator having a phase comparison portion that does not suggest the techniques described in the present specification. The demodulator obtains a maximum likelihood estimate of the unmodulated phase and the rate of change of the unmodulated phase of the received signal with respect to a local oscillator, so that the local oscillator can be compensated in phase. 
     U.S. Pat. No. 4,290,140 describes a system for demodulating a combined FSK/PSK signal, whereas the present invention synchronizes a BPSK signal having a constant bit rate. The portion of the reference system pertaining to PSK does not suggest the techniques described in the present specification. 
     DISCLOSURE OF INVENTION 
     The input signal is a sinusoidal carrier biphase modulated by digital data, such as short messages in bursts of 200-220 bits meant for command messages to a spacecraft. 
     The input signal has a sinusoidal carrier frequency of f. The binary modulating signal has a period of T (i.e., a frequency of 1/T). f is much greater than 1/T, preferably at least 16 times greater than 1/T. 
     The present invention comprises means (29, 31) for repetitively sampling the amplitude of the input signal over a sampling interval portion, typically 80%, of each modulating signal bit period. The frequency f of the carrier sinusoid is an integral multiple of the rate at which samples are taken. A microprocessor (23) records the total number of samples (N1) taken within the sampling interval, the number of samples that do not change sign (N2), and the number of samples that do change sign (N3). 
     The microprocessor (23) declares a synchronization condition when the number of samples which do not change sign (N2) exceeds a threshold level that is preselected based upon the tolerable amount of error due to noise. Determination of whether a sample has changed sign is made with respect to the sign of a reference sample, preferably the first sample taken for each sampling interval. 
     The input signal (at the sampling instants of sampling clock 35) is digitized by means of an analog-to-digital (A/D) converter (29). The determination of whether a given sample has changed sign is preferably made by multiplying the value of the given sample by the value of the reference sample and examining the sign of the product. 
     When synchronization is not declared at the end of a sampling interval, and the last sample for that interval has a different sign than does the reference sample, a phase circuit (34) is adjusted to time shift the sampling interval window for the next modulating signal bit period. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other more detailed and specific objects and features of the present invention are more fully disclosed in the following specification, reference being had to the accompanying drawings, in which: 
     FIG. 1 is an artist&#39;s representation of the modulated information carried on the input BPSK signal; 
     FIG. 2 is a waveform of the input sinusoid at a phase transition; 
     FIG. 3 is an exemplary input waveform showing modulating bit period T and sampling interval 0.8T encompassing a phase transition; 
     FIG. 4 is a flow chart illustrating the operation of a working embodiment of the present invention; and 
     FIG. 5 is a block diagram showing hardware elements that have been assembled to perform the steps illustrated in FIG. 4. 
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION 
     The baseband input signal processed by the present invention is illustrated in FIG. 1. This signal is of the form Asin(wt+φ) where f=w/2π is the frequency and φ may assume two values only, 0 or pi. Thus, Asinwt may represent the logic symbol &#34;1&#34; and Asin(wt+φ) the logic symbol &#34;0&#34;, or vice versa. 
     Changes of phase of the input signal may occur only at integral multiples of T, the bit period of the modulating signal. Period T is an integral multiple m of a carrier cycle 2π/w. 
     In a typical example of the invention, T=4 millisec., 1/T=250 Hz, and f=16 KHz. Therefore, m=64. In general, m is preferably greater than or equal to 16. 
     An expanded view of the carrier at phase transition is shown in FIG. 2. FIG. 3 illustrates that the sampling interval, throughout which samples are taken, is some preselected portion of the bit period T. Typically, each sampling interval is on the order of 0.8T; during the remaining 0.2T, ALU 23 performs necessary calculations. Sampling is performed during each modulating bit period T. The input signal is sampled once each &#34;sampling period&#34;. The sampling period is an integral multiple of the carrier cycle. Thus, the sampling period is 2Nπ/w, with N an integer. In FIG. 3, N=2. 
     A reference sample is designated once each sampling interval. Typically, the reference sample is the first sample taken during the sampling interval. Every other sample taken during that sampling interval is compared with the reference sample for a change of sign, indicating a phase transition. 
     For each sampling interval, a record is kept of three events: N1, the total number of samples taken during the sampling interval; N2, the number of samples taken during the sampling interval which did not change sign; and N3, the number of samples taken during the sampling interval which did change sign. When a certain preselected percentage of the samples taken during the sampling interval have been recorded not to have changed sign, a determination of bit synchronization is made. Otherwise, it is determined that bit synchronization has not yet occurred, and the sampling period window 38 is shifted in a direction depending upon the direction of the error. This bidirectional shifting saves the amount of shifting that must be done and shortens the mean time of synchronization acquisition. 
     In an example of a working embodiment that will be described in detail with respect to FIGS. 4 and 5, T=10 millisec., 1/T=100 Hz, and f=19.2 KHz, so m=192. Each sampling interval comprises about 80% of the bit period T, and N=2, so the number of samples examined during each bit period is 76. Thus, if the input signal is totally bit synchronized and assuming no noise, the number of samples over the sampling interval not changing sign is 76, and the number of samples over the same sampling interval changing sign is 0. In the illustrated embodiment, the synchronization threshold is placed at 70, i.e., if at least 70 of the samples in a bit period do not change sign, a synchronization condition is declared. The reason for using 70 rather than 76 is to allow for errors in transmission, and because companion circuits, e.g., and ambiguity resolution demodulator, are able to function properly when this percentage (92%) of the samples is uncontaminated. 
     The operation of the invention is best illustrated by examining the FIG. 4 flow chart in conjunction with the FIG. 5 block diagram. The first step is initialization of phase circuit 34, by means of presetting to 128 a modulo 256 counter that is the heart of circuit 34. Setting this counter at the middle of its range enables the sampling period window 38 to be moved an equal amount in either direction. 
     Next, the registers in ALU 23 and RAM 24 are cleared by setting them equal to zero. In this example, ALU 23 is a 4-bit slice AMD 2901 Arithmetic Logic Unit having 16 registers denominated RA-0 through RA-F in hexidecimal notation. RAM 24 is used by ALU 23 as a scratchpad memory, and communicates therewith by means of bidirectional data bus 30. Bidirectional data bus 30 is also used to convey the digitized input signal from A/D converter 29 to ALU 23; to convey ALU 23&#39;s decision that synchronization has occurred from ALU 23 to a pulse generator within output circuit 27; to convey a 180°-ambiguous representation of the modulating data from register D within ALU 23 to a flip-flop within output circuit 27; and to convey commands from ALU 23 to phase circuit 34 instructing phase circuit 34 whether and in what direction to shift. The program is stored in microprogram store 21, and AMD 2708 EPROM, which feeds instructions to ALU 23 via pipeline register 22, a buffer. Data bus source selector 28 picks the proper inputs for the logical operations performed by ALU 23. Status register 26 is a 4-bit register for storage of sign, carry, overflow, and zero flags. ROM 25 stores constants, e.g., the synchronization threshold, which in this case is 70. 
     As is conventional, a short numbered line interrupting a connection line on the FIG. 5 block diagram indicates the number of bits that are sent between the two blocks. 
     Program oscillator 32 synchronously clocks all the FIG. 5 chips at a rate of 2.4 MHz, which is fast enough for this application. The output of program oscillator 32 is program clock 36, which is divided by divider 33 to create a reference clock 37 at the bit rate of 100 Hz. Phase circuit 34 then time shifts the reference clock 37 up to plus or minus half a bit period (0.5T). The output of phase circuit 34 is local clock 38, which is the timing window defining a sampling interval. Local clock 38 triggers sequencer 20, and AMD 2910, which in turn commands the execution of the program within microprogram store 21. 
     The input signal is fed to A/D converter 29 and to sampling clock generator 31, which rectifies, shapes, and steps down the carrier frequency to produce sampling clock 35, which oscillates at the sampling rate and triggers outputs from A/D converter 29. If desired, generator 31 can delay sampling clock 35 by a quarter of a carrier cycle so that the samples are taken near the peaks of the sinusoids rather than near the zero-crossings. 
     Output circuit 27 comprises a flip-flop and a pulse generator. The flip-flop outputs a 180°-ambiguous representation of the demodulated digital input data as sent to output circuit 27 from register D within ALU 23. The pulse generator produces an output clock 39 having a frequency of 1/T, in this case 100 Hz. The pulses of output clock 39 are triggered by ALU 23 once each bit period T, immediately after the conclusion of the computational analysis described in detail herein. The digital data is subsequently processed by ambiguity resolution means which, for example, uses an 8-bit Barker code in the message preamble to resolve the ambiguities. 
     Returning to FIG. 4, the next step is that ALU 23 determines whether a signal is present on the input line. This determination can be made, for example, by comparing closely-spaced digitized samples within a carrier cycle to see if they follow a sine wave. If no input signal is present, no further action is taken until the next rise of local clock 38. 
     If an input signal is present, sampling clock 35 triggers the taking of the first digitized sample of input signal amplitude within the sampling interval. In the present embodiment, this first sample is the reference sample, and is stored in register E (hexidecimal for register 14) within ALU 23. ALU 23 then determines whether this reference sample is positive or negative. If positive, a 7 is written into register D (hexidecimal for register 13) within ALU 23, and N1, the total sample count, is incremented in another register within ALU 23. If the sample is negative, an 8 is written into register D, and again N1 is incremented. 
     ALU 23 then asks whether N1 is 1, i.e., was this the first (reference) sample? If so, the amplitude of the input signal at this reference sample point is also stored in register F (hexidecimal for register 15) within ALU 23, and the next digitized sample is taken when signalled by sampling clock 35. 
     If the current sample is not the first sample, ALU 23 asks whether the current sample has the same or a different sign as the reference sample. Preferably, this is done by comparing the values of registers of E and F by menas of multiplying their values together. If the result is positive, it follows that registers E and F contain numbers having the same sign. If the result is negative, then these registers contain numbers having opposite sign. 
     Either N2, the number of samples over the sampling interval not changing sign, or N3, the number of samples over the sampling interval changing sign, is incremented accordingly. N2 and N3 are registers within ALU 23. Regardless of which of these registers is incremented, ALU 23 asks the question &#34;Is N1 equal to 76?&#34; This is equivalent to asking whether the end of the sampling interval has been reached. If the end of the sampling interval has not been reached, the next sample is exampled upon the occurrence of the next sampling clock 35 trigger. 
     If the end of the sampling interval has been reached, and regardless of whether the last samle did or did not change sign, ALU 23 asks the synchronization question &#34;Is N2 greater than or equal to 70?&#34; If the answer is yes, then a positive determination of bit synchronization is made: digital data is released from output circuit 27 and a spike goes out on output clock 39. 
     If, on the other hand, N2 is less than 70, synchronization is deemed not to have occured. If the last sample did not change sign, the program waits for the next rise of local clock 38 to initiate the next sampling interval without any adjustment being made to phase circuit 34, since this condition can occur only when noise or other factors caused errors on the input signal, and it would be considered futile to try to speculate as to the time-direction of the nearest phase transition. If, on the other hand, the last sample did not change sign, it is assumed that most of the time this means that a phase transistion has occurred within the sampling interval, and an attempt is made to calculate its direction. Thus, ALU asks the question &#34;Is N2 greater than or equal to N3? For example, in FIG. 3, N2 is greater than N3. In this eventuality, the counter in phase circuit 34 is incremented by 4 counts, which has the effect of time-advancing local clock 38, i.e., time-shifting the sampling interval window to the left in FIG. 3. If N2 is less than N3, then the counter within phase circuit 34 is decremented by 4 counts, having the effect of retarding local clock 38, i.e., time-shifting the sampling interval to the right in FIG. 3. Four counts out of the 256 in the phase circuit 34 counter corresponds to about 1.5 sampling periods. The next sampling interval is then examined upon the rise of local clock 38 triggering sequencer 20. 
     The followng program listing is a compiled version of the microprogram stored in microprogram store 21 using a user generated instruction set. Following the program listing is an object code listing of the program in which &#34;X&#34; means it doesn&#39;t matter whether the entry is a 1 or a 0. ##SPC1## 
     The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one skilled in the art that would yet be encompassed by the spirit and scope of the invention.