Abstract:
Apparatus for searching for range indicating pulse signals received as part of distance measuring equipment which first form a list of distance indications in a first search time. The distance indications obtained in a second search time are then logically combined with those indications in the first list and any combination that results in a difference value of less than a prescribed amount is retained for list updating purposes until there is only a single distance indication left in the list. The apparatus can then change to a track mode by placing a search window around the single distance indication thereby reducing the amount of extraneous information to be manipulated by the receiving apparatus.

Description:
THE INVENTION 
     This invention is generally concerned with electronics and more specifically concerned with distance measuring equipment. More specifically, the present invention is concerned with a method of ascertaining the distance between a moving object and a stationary transmitter which receives a &#34;query&#34; signal and responds with a reply signal to all queries in the same manner. 
     Distance measuring equipment (DME) has used various forms of detection equipment for sorting out the response from a ground station to a given airplane&#39;s query from a plurality of responses and deleting all other responses to other airplanes&#39; queries. A normal approach at one time was to start with the first received pulse in time after the transmission of the query pulse and use correlation techniques with several successive queries. If said correlation techniques did not produce a satisfactory result then the next received pulse in time would be correlated. Since the correlation attempts occurred on a systematic and sequential basis, the time taken to achieve synchronization could become quite extensive if the distance from the ground station was considerable and there were a multiplicity of other airplanes in the area also seeking the same type of distance information. 
     The DME systems mentioned above were originally used in an analog servo mechanism to provide range readout displayed on a meter. Such a system had the disadvantages of long search times and inherent inaccuracies due to analog circuit drift. To overcome this last problem of long search time, interrogation rates were increased but analog errors still persisted. With the advent of digital logic, the analog servo was replaced by a digital servo thereby eliminating errors due to analog components. 
     A further improvement was presented in a patent awarded to Narco Scientific as shown in U.S. Pat. No. 3,781,888 wherein the digital servo was replaced with a shift register fast search method. The decoded reply pulses in this method are placed in a shift register and correlated between search periods. The system, however, did not track range but merely searched and reacquired range each time the distance moved by one shift register bit. This last mentioned system had very short search times but did not track range and also appeared &#34;jumpy&#34; at high velocities. 
     To overcome the above deficiencies, the present invention, in the search mode, takes range data from a range counter whenever a pulse pair is detected as being received subsequent to the sending of a query pulse. This range data is placed in a FIFO (first in, first out) stack which acts as a buffer between the input and the range processor to create a &#34;full&#34; list. A second query pulse is then sent and as input data is received, this data is correlated against the &#34;full&#34; list. Whenever a suitable match is found, the list is updated until there is only a single match remaining. 
     The system then uses this single match, in a tracking mode, as part of tracking the distance. On each occasion of obtaining a match, the error between a distance register and the input data is checked. If a suitable match occurs, &#34;hit&#34; or &#34;miss&#34; counters are adjusted. If the input data is greater than the tracking distance, a &#34;range passed&#34; flag (range exceeded) is set to inhibit further comparisons. Normally, the error indication is used to correct the tracking distance in the direction of the received data. 
     It is thus an object of the present invention to provide an improved system for detecting and correlating a given response to a query from a plurality of responses, the others of which are propagated in response to queries by other sources. 
    
    
     Other objects and advantages may be ascertained from a reading of the specification and appended claims in conjunction with the drawings wherein: 
     FIG. 1a is a block diagram flow chart of the approach taken by a computer in practicing the present invention; 
     FIG. 1b is a continuation of the block flow diagram of FIG. 1a; and 
     FIG. 2 is a block diagram of the portion of the circuit which forms a list and then removes items from the list if there is no correlation of that distance in later signal receipt time periods until there is only one left on the list by this iterative process. 
    
    
     DETAILED DESCRIPTION 
     In FIG. 1a a START block 10 is shown actuating a TRANSMIT PULSE PAIR block 12 to an omnidirectional source of reply signals. After the transmission, a block 14 is actuated so as to set the list pointer (LPTR), the input pointer (INPTR), the stack pointer (SPTR) and the correlation pointer (CPTR) to 0. The VIDEO INTERRUPT is then enabled in block 16 and a decision block 18 is then actuated to determine whether or not the range is at a maximum. If the range is at a maximum, a signal is supplied on a lead 20 to a DISABLE VIDEO INTERRUPT block 22 which actuates the flow diagram of FIG. 1b. If the range is less than maximum, a decision block 24 is actuated to see whether or not the stack is empty. If the stack is empty, a return is made via lead 26 to the maximum range decision block 18. If the stack is not empty, a decision block 28 checks to see whether the STATUS register is indicative of the apparatus being in a SEARCH mode. If it is not in a SEARCH mode, the distance register value is subtracted from the stack distance and the result is listed as an absolute value. If this absolute value is greater than 0.5 miles, the decision block 30 supplies signals to a lead 32 which increments the stack pointer (SPTR) in block 34 and returns to the input of decision block 24. On the other hand, if the difference is less than 0.5 miles, the ERROR term is set to the difference between the stack range and the DISTANCE REGISTER in block 36. In either event, the stack pointer (SPTR) is incremented in block 34 and the process is repeated until the maximum range is reached and no more items are left in the stack. If, on the other hand, the STATUS equaled &#34;SEARCH&#34; in decision block 28, a decision block 38 is actuated to check whether the LIST STATUS is &#34;FILL&#34; or &#34;COMPARE&#34;. If it is FILL, the LIST register equals whatever distance is in the stack as illustrated in block 40 and the list pointer (LPTR) is incremented in 42. This process is repeated until the list contains all of the items received via the stack. If, on the other hand, the LIST STATUS is in the COMPARE mode, the difference between the stack range and the list range is computed. If this difference is more than 0.25 miles, the next list item is selected as indicated by lead 48 and the comparison is made with that list range. If the difference is less than -0.25 miles, the stack range is much less than the next list range so no action is taken and the stack pointer (SPTR) is merely incremented in block 34. If, however, the absolute value as computed is less than 0.25 miles, the stack range is placed in the correlation list (CORR LIST) as a match in block 50 and the correlation list pointer (CPTR) is incremented in block 52 to the next available location. These comparisons and computations in the &#34;COMPARE&#34; mode to obtain range indication which remain in the list may be termed &#34;logically combining&#34; for the purpose of the claim language. As will be noted, in each instance of completion of the decisions in FIG. 1a, except for that from DISABLE VIDEO INTERRUPT 22, the stack pointer (SPTR) is incremented in block 34 to point to the next stack item (if one is present) and the decision processes are repeated until the maximum range is reached and no more items are left in the stack. 
     Once the maximum range has been reached, the DISABLE VIDEO INTERRUPT 22 passes the signal to the STATUS equals &#34;SEARCH&#34; decision block 60 in FIG. 1b. If STATUS equals &#34;SEARCH&#34;, the LIST STATUS decision block 62 is actuated to see if the LIST STATUS is in the &#34;FILL&#34; or &#34;COMPARE&#34; mode. If a list was filled on the previous epoch, the LIST STATUS is changed to &#34;COMPARE&#34; in block 64 and the apparatus returns to the start mode to transmit a new pulse pair. If, however, the LIST STATUS is in the &#34;COMPARE&#34; mode or epoch, the correlation list pointer (CPTR) is checked in a decision block 68 to see how many correlations resulted from the COMPARE procedure. If there was more than one match as indicated on line 70, the STATUS register is unchanged and the next comparison will be made from the results of this comparison. If there were no successful comparisons, the LIST STATUS register is changed to the &#34;FILL&#34; mode as indicated in block 72 and a new set of lists will be collected and the entire process repeated. If, on the other hand, the number of successful comparisons is 1, the distance register is set to the range at the top of the correlation list (CORR LIST) (the only successful comparison) and the HIT and MISS counters are reset to 0 as shown in block 74. Also, the STATUS is set to &#34;PRETRACK&#34; in block 76. The &#34;PRETRACK&#34; status is used when a valid distance has resulted from the comparison but has not yet been verified by a preset number of successful checks. Again, the apparatus returns to the START block 10 whereby a further pulse pair is transmitted. If the STATUS in decision block 60 is not &#34;SEARCH&#34;, the value of the ERROR term is checked in decision block 78 to determine whether a successful comparison was made with the distance register. If the absolute value of the ERROR is less than 0.5 miles, the distance register value is updated in the direction of the received range in block 79. The error term is used to correct the value in the distance register to &#34;track&#34; the received range. A filter in the apparatus produces a range rate or, in other words, ground speed, which may be displayed to a system operator such as a pilot. The miss register (MISS) is reset to 0 in block 80 and the hit register (HIT) is incremented. The hit register (HIT) value is checked in decision block 82 and if the value therein is less than 10 the decision block 84 is actuated. If the STATUS register is not &#34;MEMORY TRACK&#34;, a further pulse pair is sent. When the number of hits equals 10, the distance has been verified and the hit register (HIT) and MEMORY TIMER register are reset to 0 in block 85 and the STATUS is set to &#34;TRACK&#34; in block 86. Since this would not result in the STATUS being &#34;MEMORY TRACK&#34;, the decision block 84 is exited and another pulse pair is sent. Returning to decision block 78, if the ERROR was greater than an absolute value of 0.5, the miss register (MISS) is incremented in block 88 and this register is checked in decision block 90 to see whether the value therein is equal to or less than 4. If the value is less than 4, the decision block 84 is reached. If the miss register (MISS) equals 4, the decision block 92 checks the condition of the STATUS register. If it is in &#34;SEARCH&#34; or &#34;PRETRACK&#34;, the STATUS is set to &#34;SEARCH&#34; in block 94. On the other hand, if the STATUS is in &#34;TRACK&#34; or &#34;MEMORY TRACK&#34;, the STATUS is set to &#34;MEMORY TRACK&#34; in block 96. If the STATUS is &#34;MEMORY TRACK&#34; when the apparatus reaches the decision block 84, the MEMORY TIMER is incremented in block 98 and decision block 100 checks to see if the MEMORY TIMER indication has reached 10 seconds. If it has not reached 10 seconds, another pulse pair is transmitted, but if it has reached 10 seconds, block 102 sets the STATUS register to &#34;SEARCH&#34; since the apparatus has failed to find a valid range indication and the procedure starts from the beginning. 
     In FIG. 2 a block 110 receives signals indicative of returned signals before a maximum range is reached on lead 112. The generator 110 also receives a clock signal on lead 114 so that it will know when to commence calculating times which are sent out to a list storage means 116. Information is also sent to a distance comparison means 118 and to an updating means 120. After the list is initially composed, the distance comparison means 118 checks the signals received on the next iteration with those in the list of 116 and provides an output on 122 to the updating means 120 for keeping a list only of those which correlate within a predetermined amount of time to those on the first list. The process continues until a single item in the list of 116 is detected by block 124 which outputs a signal indicative of this distance indication on lead 126 and outputs the signal on lead 128 to the generator 110 that it no longer need repeat the process because the proper distance has apparently been ascertained. 
     OPERATION 
     In the present invention a multipurpose digital computer is used to (1) initiate the transmission of a pulse pair to a ground transmitting station and (2) receive indications of all subsequent inputs received which &#34;could&#34; be responsive to the transmitted pulse pair over a given time range. On the basis of correlation techniques between the potential distance indications received in the first round of a search sequence and those received in subsequent rounds, a given distance indication is selected by the computer as probably being the appropriate distance response. This distance is then verified in a &#34;PRETRACK&#34; STATUS to make sure that it is subsequently received within prescribed tolerance limits and then this indication is used in a &#34;TRACK&#34; mode to provide distance indications to an operator such as an airplane pilot. In the &#34;TRACK&#34; mode, the computer prescribes a window of time as being the only time that the computer will react to incoming distance indicating signals. The computer is capable of calculating the ERROR between the presently received distance indication and the previously received indication to update the old information and to obtain an indication of velocity relative the ground station. Such a system operates in accordance with the flow diagram previously discussed in the Detailed Description. This flow diagram is outlined in a different format in the pseudocode sequences listed infra. 
     
         ______________________________________MAIN SEQUENCE______________________________________TRANSMIT PULSE PAIRLPTR = INPTR = SPTR = CPTR = 0ENABLE VIDEO INTERRUPT SUBROUTINEDO UNTIL MAXIMUM RANGEDO WHILE STACK NOT EMPTYIF STATUS = &#34;SEARCH&#34; THENCALL SEARCH SUBROUTINEELSEIF ABS (STACK (SPTR) - DISTANCE) &lt; 0.5 MILES THENERROR = &#34;STACK&#34; (SPTR) - &#34;DISTANCE&#34;SPTR = SPTR + 1END DOEND DODISABLE VIDEO INTERRUPTIF STATUS = &#34;SEARCH&#34; THENCALL SEARCH RESULTELSECALL TRACK RESULTEND MAIN______________________________________ 
    
     The basic software of the referenced computer operates as two different concurrent processes. The first or ranging process takes the real time range data from a receiver range counter whenever a pulse pair is detected as being received. This range data is placed in a first in first out (FIFO) stack which acts as a buffer between the real time input process and the slower range processing software. This input process is set forth in the Video Interrupt Sequence set forth infra. 
     
         ______________________________________VIDEO INTERRUPT SEQUENCE______________________________________IF STACK NOT FULL THENSTACK (INPTR) = &#34;INPUT RANGE&#34;INPTR = INPTR + 1END VIDEO INTERRUPT______________________________________ 
    
     The ranging process runs concurrently with the real time input process. When the FIFO stack contains a range to be processed, the STATUS register is checked for the &#34;SEARCH&#34; mode. If the unit is in the &#34;SEARCH&#34; mode, the LIST STATUS is checked as shown in the Search Subroutine. If there is an empty list, the status will indicate a &#34;FILL&#34; (i.e., not &#34;COMPARE&#34;) mode. In this mode the stack items are simply copied to the list to fill the list. As each entry is placed in the list, the list pointer (LPTR) is incremented to point to the next available list location. 
     
         ______________________________________SEARCH SUBROUTINE______________________________________IF LIST STATUS = &#34;COMPARE&#34; THENREPEAT UNTIL ERROR &lt; 0.25 MILESERROR = &#34;STACK&#34; (SPTR) - &#34;LIST&#34; (LPTR)END REPEATIF ERROR &gt; -0.25 MILES THENCORR LIST (CPTR) = &#34;STACK&#34;CPTR = CPTR + 1ELSELIST (LPTR) = &#34;STACK&#34; (SPTR)LPTR = LPTR + 1END SEARCH______________________________________ 
    
     If the LIST STATUS indicates the &#34;COMPARE&#34; mode, the difference between the stack range and the list range is computed. If this distance is more than +0.25 miles, the next list item is selected and the comparison is made with that list range. If the distance is less than -0.25 miles, the stack range is much less than the next list range so no action is taken with this stack range. If the absolute value of the error term is less than 0.25 miles absolute, the stack range is placed in the correlation list (CORR LIST) as a match and the correlation list pointer (CPTR) is incremented to the next available location. If STATUS is not &#34;SEARCH&#34;, the ELSE under the &#34;DO WHILE STACK NOT EMPTY&#34; is called forth so that the absolute value of the distance register (the distance being tracked) and the stack range is computed. If this value is less than 0.5 miles, the error term is set to the difference between the stack range and the distance register. After processing the stack range, the stack pointer (SPTR) is incremented to point to the next stack item (if one is present) and the DO UNTIL MAXIMUM RANGE process is repeated until the maximum range is reached and no more items are left in the stack. 
     At this point, the results of the SEARCH and TRACK procedures must be evaluated. If the STATUS is &#34;SEARCH&#34; the Search Result Subroutine is called and the routine is as set forth infra. 
     
         ______________________________________SEARCH RESULT SUBROUTINE______________________________________IF LIST STATUS = &#34;COMPARE&#34; THENIF CPTR = 0 THENLIST STATUS = &#34;FILL&#34;IF CPTR = 1 THENDISTANCE = CORR LIST (0)STATUS = &#34;PRETRACK&#34;HIT = MISS = 0ELSELIST STATUS = &#34;COMPARE&#34;END SEARCH RESULT______________________________________ 
    
     The LIST STATUS is checked to see whether this was a &#34;FILL&#34; or &#34;COMPARE&#34; epoch. If the list was filled on the previous epoch, the LIST STATUS is changed to &#34;COMPARE&#34; under the ELSE statement of the Search Result Subroutine. The process then returns to the Main Sequence. However, if it was a &#34;COMPARE&#34; epoch, the CPTR is checked to determine how many correlations resulted from the &#34;COMPARE&#34; procedure. If there was more than one match, the STATUS is unchanged and the next comparison will be made using the results of this comparison and the process will return to the Main Sequence. If, however, there were no successful comparisons (CPTR=0) the LIST STATUS is set to &#34;FILL&#34; and a new set of lists will be collected and the entire process repeated since again the process will return to the Main Sequence. If the number of successful comparisons was 1 (CPTR=1) the distance register is set to the range set forth in the correlation list. This, of course, was the only successful comparison. At this time, the STATUS is set to &#34;PRETRACK&#34; and the HIT and MISS counters are reset to 0. The &#34;PRETRACK&#34; status is used when a valid distance has resulted from the comparison but still has not been verified. Again, the process returns to the Main Sequence. 
     If the STATUS is not &#34;SEARCH&#34;, the ELSE clause will call forth the Track Result Subroutine. In this subroutine, the ERROR term is checked to determine whether a successful comparison was made with the distance register. If the absolute value of the ERROR is less than 0.5 miles, (in other words, it is not greater than 0.5 miles) a successful comparison is indicated and the ELSE statement is invoked. In this instance, the ERROR term is used to correct the distance register to track the received range. The ERROR term may also be filtered to produce range rate or ground speed, since the ERROR term indicates range displacement over a period of time equal to the time between interrogations. This range rate may be scaled to units of nautical miles per hour and displayed to the pilot. The HIT counter is incremented and the MISS counter is reset to 0. The value of the HIT counter after being incremented is then checked and if it is 10 the HIT and MEMORY TIMER registers are reset to 0 while the STATUS is set to &#34;TRACK&#34;. This action is for the purpose of indicating that the distance has been verified. If the ERROR value found is greater than 0.5 miles thus indicating a &#34;miss&#34;, the MISS counter is incremented. If after being incremented, the MISS counter is at a value of 4, the STATUS is set to &#34;SEARCH&#34; if it has been anything other than &#34;TRACK&#34; or &#34;MEMORY TRACK&#34;. The other options in this case being either &#34;SEARCH&#34; or &#34;PRETRACK&#34;. However, if the STATUS is &#34;TRACK&#34; or &#34;MEMORY TRACK&#34;, the STATUS is set to &#34;MEMORY TRACK&#34;. 
     If the STATUS is not &#34;MEMORY TRACK&#34;, the Track Result Subroutine ends and the process returns to the Main Sequence. If, however, the STATUS is &#34;MEMORY TRACK&#34;, the MEMORY TIMER is incremented. When the MEMORY TIMER reaches 10 seconds, the STATUS is set to &#34;SEARCH&#34; and the process returns to the Main Sequence. 
     
         ______________________________________TRACK RESULT SUBROUTINE______________________________________IF ABS (ERROR) &gt; 0.5 MILES THENMISS = MISS + 1IF MISS = 4 THENIF STATUS = &#34;TRACK&#34; OR &#34;MEMORY TRACK&#34; THENSTATUS = &#34;MEMORY TRACK&#34;ELSESTATUS = &#34;SEARCH&#34;ELSEADJUST DISTANCE INDICATION USING &#34;ERROR&#34;HIT = HIT + 1MISS = 0IF HIT = 10 THENHIT = MEMORY TIMER = 0STATUS = &#34;TRACK&#34;IF STATUS = &#34;MEMORY TRACK&#34; THENMEMORY TIMER = MEMORY TIMER + 1IF MEMORY TIMER = 10 SECONDS THENSTATUS = &#34;SEARCH&#34;END TRACK RESULT______________________________________ 
    
     A review of the above description of the pseudocode for the ranging and real time input sequences will show that it applies on the same basis to the flow charts illustrated in the figures. 
     The equipment is thus able to take a given set of potential signal responses after transmission of a query, use multiple match correlation techniques to see which potential reply signal consistently occurs in a given &#34;window&#34; of time until a single reply is left. By then, placing the unit in a &#34;pretrack&#34; condition in maintaining the same window, the apparatus can &#34;verify&#34; that the indication is correct. After verification, this same window and the same reply can then be used in a track or ranging mode to provide a distance indication to the operator or pilot. This is a distinct improvement both in the time of detecting a probably appropriate reply signal and in using substantially the same circuitry and window producing techniques to track a distance indication once detected. 
     While a given flow diagram and pseudocode has been presented to illustrate the concept of the present invention, it is to be realized that other approaches to obtaining a specific solution to the problem will readily occur to those understanding the present disclosure. Thus, I wish to be limited not by the scope of the apparatus and process disclosed but rather by the scope of the appended claims wherein I claim.