Patent Publication Number: US-4550318-A

Title: Retrospective data filter

Description:
STATEMENT OF GOVERNMENTAL INTEREST 
     The invention herein described was made in the course of or under Contract Number N00024-81-C-5301 with the Department of the Navy. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to the processing of data in a radar, sonar, ultrasound, or other such object detection communication system wherein a plurality of sectors bounded along either one, two, or three dimensions are sequentially examined for the presence of an object, or target. Accordingly, the invention extends to systems which provide a circular scan, an oscillating or reciprocating lateral scan, or a phased array scan. 
     TECHNOLOGICAL CONTEXT OF THE INVENTION 
     Various systems, particularly in the radar technology, have been developed which are intended to detect surface targets in spikey sea clutter environments where the signal-to-clutter ratio may be moderate or small. In such systems, there is often a trade-off between the probability of false alarm P fa  (or false alarm rate) and the confidence in target detection. To assure that no targets are missed, such prior systems have often increased the P fa , or switched to a different detection mode. Where discrimination between target and clutter is of primary significance the P fa  is decreased with a resulting sacrifice in confidence. Adaptive thresholding and detection for different environments (see U.S. Pat. No. 4,005,415) has also been employed in prior systems. 
     The notion of maintaining high confidence and low P fa  especially in various environments riddled with noise and clutter with a single processor has, in the past, been sought but realized with only limited success. 
     SUMMARY OF THE INVENTION 
     The present invention is directed to a retrospective data filter which examines each detected contact (which indicates the presence of a target, noise, clutter, or an object the detection of which is of no interest) relative to the respective positions of contacts detected over a plurality of previous, identified times. The position of each examined contact, referred to as a contact of interest, is compared in pair-wise fashion with the position of each previous contact occurring within an established time frame. At any given time, there is only one contact of interest, usually the most recently entered contact. A velocity number related to the difference in position over time for each such pair-wise comparison is derived. Each velocity number corresponds to a band of velocities in which a target may travel. The pair-wise comparisons made during the established time frame and having a particular velocity number within the time frame form a contact history which may be represented by a velocity profile. The velocity profile indicates the total number and time of previous contacts which conform to the respective velocity number. The total number of contacts and/or the relative timing of such contacts in a velocity profile is used to generate a quality value indicative of the likelihood or reasonableness that an object or target of interest is represented by the contacts noted in the profile history. As a contact of interest is compared with contacts earlier in time, the velocity profiles are updated as previous contacts which correlate with the contact of interest are filtered. As successive contacts of interest enter the retrospective data filter, the various velocity profiles are reset and updated. 
     In accordance with a preferred form of the invention, the identified times are defined as scans wherein each of a plurality of positional sectors (bounded in one, two, or three dimensions) are searched periodically by a radar or other such system. In addition to excluding contacts which are outside the positional sectors from the comparison process, the invention also provides a velocity limit which further limits the number of contacts which are considered relevant. Contacts which suggest the presence of an object moving too fast or too slow to be a target of interest are rejected and not considered in the velocity profiles. 
     Further, to process multiple scans of data, an efficient method of storing and reading back data on cue is required. The most cost effective storage media that can be written into and read back from at the high rates required for real time radar signal processing is MOS Random Access Memories (RAM). These memories can be used to store and process several thousand radar contacts per scan if an efficient method of searching the memory for data from past scans that may correlate with incoming data is devised. The present invention is able to search memory by using range or range/bearing linked correlation. The range or range/bearing ordered structure provides automatically the first dimensions range or range/bearing of a correlation process and allows a logical ordering of processes to follow a scanning device such as a radar. The memory is filled sequentially with incoming data instead of setting up specific locations for sets of data to be used in the correlation process. This is an extremely efficient utilization of the memory because every memory location is used and when the last memory location is filled, the memory is overwritten beginning with location 0. As long as the total number of memory locations is more than the number of contacts received for the correlation period, (for example, 8 radar scans), this process of memory utilization works effectively. If the number of contacts received during 8 scans exceeds the total number of memory locations, some data required in the correlation process will be overwritten. 
     To adapt to the condition of contacts exceeding memory location, a unique feature is embodied in the invention which adjusts the number of scans used in the correlation process to correspond to the number of valid scans of data in memory. This allows the correlation process to be carried out with 2 to 8 scans of data depending on the density of the incoming data and available memory locations. To achieve this, the amount of multiscan memory being used is monitored so that the system will be informed when the multiscan memory is completely full and hence valid data is about to be overwritten. The criteria for deciding if an overwrite of memory is about to occur is that the first available addres (FAV) of multiscan memory equals the oldest valid link address (OLD). This testing is done by storing the first link of each scan sequentially in a RAM whose address is based on the current scan number. 
     Thus, in accordance with the invention, the number of previous identified times or scans having contacts which are compared to a contact of interest may be varied depending on the number of contacts detected at a given time. Specifically, the multiscan memory which, for example, is used to normally compare a contact of interest with previous contacts in (n-1) previous scans adapts to compare the contact of interest with previous contacts in (n-2) or (n-3) or so on previous scans if the number of contacts detected greatly increases. Conversely, the multiscan memory automatically returns to comparing over (n-1) scans as the number of contacts detected decreases. 
     According to the invention, it is thus an object to maintain high confidence and low probability of false alarm in an environment of sea clutter and noise. 
     It is further an object of the invention to provide a hardware embodiment for directly evaluating contacts detected by a radar or such other system. 
     It is also an object of the invention to provide a computer model similar to the hardware embodiment, which software model may be used in evaluating contact data like the hardware embodiment and in determining the effects of modifying the hardware embodiment by making a corresponding alteration in the computer model. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a retrospective data filter of the invention in a radar context. 
     FIG. 2 is a plot showing range vs. bearing of contacts in a given location over a given time. 
     FIG. 3 is a plot showing contacts in a range vs. time (or scan number) format. 
     FIG. 4 is a block diagram of the invention. 
     FIG. 5 is a pair of related tables which illustrate the operation of the index register and multiscan memory of the invention shown in FIG. 4. 
     FIG. 6 is a flowchart of a computer model embodiment of the invention. 
     FIG. 7 is a block diagram featuring the adaptable memory feature of the invention. 
     FIG. 8 is a plurality of tables illustrating the operation of the adaptable memory of FIG. 7. 
    
    
     DESCRIPTION OF THE INVENTION 
     General Description 
     Referring to FIG. 1, one environment of the present invention is shown. In particular, a retrospective data filter 100 is illustrated in a radar system environment. A host radar 102 provides analog radar data to an input processor 104 which decides when a &#34;contact&#34; has been made. Exiting the input processor 104 is a set of position data corresponding to the radar contacts determined by the input processor 104. These radar contacts may correspond to target detections or may correspond to noise, clutter, or objects not of interest. The retrospective data filter 100 evaluates the set of position data of one particular contact of interest with the set of position data relating to contacts occurring prior to the contact of interest in order to determine which contacts, when viewed together, might represent, within a given probability, the presence of a target. The output of the filter 100 may enter display systems 106 and/or tracking systems 108 in order to follow probable targets. 
     The manner in which the retrospective data filter 100 performs the filtering function is suggested by FIGS. 2 and 3. In FIG. 2, a contact of interest, contact No. 1, is shown in a sector, or range/bearing window, which also contains a plurality of other contacts. It should also be noted that the contacts shown in FIG. 2 correspond to only those contacts occurring during a predetermined number of radar scans. Thus, the contacts shown in FIG. 2 represent contacts detected within a given time frame and within a given positional sector. (The number of the contacts, it should be noted, occur in reverse chronological order). 
     Referring now to FIG. 3, it can be seen that the various contacts are plotted as a function of range from the contact of interest, contact No. 1, as well as a function of scan number. In particular, contacts No. 1 and 2 are shown being detected during scan 0; contacts 3 and 4 being detected during scan No. 1; contacts 5 and 6 being detected during scan No. 2; and so on. Defining the location of the contacts as a function of position and time, the illustration in FIG. 3 also sets forth a plurality of velocity bands, referenced from the contact of interest contact No. 1, which bands contain contacts previously detected. In accordance with the invention, each velocity band is examined separately to determine in which and in how many of a preset number of previous scans a contact is present. 
     In FIG. 3, the velocity bands are broken down into seven knot increments in the inbound and outbound directions relative to the contact of interest. An examination of Figure No. 3 indicates that within the 14 to 21 inbound velocity band, contacts 9 and 15 (at the fourth and seventh scan respectively), are present. There would thus appear to be a possibility that the contacts 1, 9, and 15 might represent a target moving inbound at a speed of 14 to 21 knots. However, an examination of the 28-35 inbound velocity band would indicate that the contacts 1, 4, 6, 10, 12, and 14 all lie within this band. In accordance with the invention, a great likelihood that a real target moving inbound at between 28 to 35 knots relative to the contact of interest, contact No. 1, would be indicated. As discussed below, in addition to simply counting the number of contacts within a given velocity band, the present invention also gives weight to where the contacts are relative to each other. For example, the location of three contacts in a row as in scan numbers 4, 5 and 6 (contacts 10, 12, and 14, respectively) may be weighted as having the higher probability of target presence than 3 contacts spaced out over the seven scans. Similarly, a contact detected closer to the contact of interest is weighted more than a contact earlier in time and further away. In the more general sense, however, the present invention simply (1) determines a velocity profile based on contacts in a given velocity band over a set number of previous scans and (2) determines the likelihood or reasonableness that the contact of interest should be defined within a particular velocity profile. 
     In accordance with FIGS. 2 and 3 it can be seen that there are three elementary steps performed by the retrospective data filter 100. First, a retrospective time and space correlation is performed wherein each contact detected within a given positional sector is associated with the scan during which such contact occurred. The maximum speed of a real target and the number of scans, or time, during which the correlation is made provide the limits which determine the size of the positional sector. Second, a determination is made as to which contacts, relative to the contact of interest, lie along a particular range versus time (or scan number) line or band. This determination yields a velocity profile. Third, an output decision is made based on the number and/or position of contacts in each velocity profile, indicating the reasonableness or probability of a target corresponding to a given velocity profile being present. 
     The apparatus and method for achieving the functions set forth in FIGS. 2 and 3 may be of either hardware design (see FIGS. 4 and 5) or computer model design (see FIGS. 5 and 6). Further, the contacts may correspond to isolated detections or may correspond to centroided contacts, in either case the presence of probable targets being evaluated. 
     Hardware Embodiment 
     Referring now to FIG. 4, a preferred hardware embodiment of the present invention in a radar context is shown. Entering the retrospective data filter 100 from the input processor 104 are range and bearing data carried along a plurality of parallel input lines. The parallel input lines enter a first-in first-out (FIFO) buffer 200 which accumulates a plurality of sets of position data (in the form of, for example, range-bearing pairs) which are put out at a rate compatible with the processing of the filter 100. If the range-bearing pairs from the input processor 104 enter the filter 100 at a rate higher than the filter 100 can process them, the FIFO buffer 200 collects and stores the pairs and provides them as input to the filter 100 at a slower rate. 
     Range and bearing data corresponding to each contact enters a circular multiscan memory 202. At least a most significant portion of the range and of the bearing inputs are directed to a sector ID element 204 which combines the range and bearing portions into a sector identifier which is directed to an index register 206. (The first portion of the sector identifier may comprise the most significant bits of the range input while the remainder of the sector identifier corresponds the most significant bits of the bearing input.) The sector identifier defines a positional sector. Only previous contacts in the identified sector are examined. A first available (FAV) address from a FAV register 208 is assigned for each successive contact of interest. The FAV register 208 provides incremented FAV addresses to the index register 206 for successive contacts of interest. A current FAV address and a sector identifier enter the index register 206. The multiscan memory 202 and the index register 206 perform a function referred to as &#34;linking&#34;. 
     In linking, the index register 206 stores the most recent previous FAV address having the same sector identifier and the number of the scan in which it occurred. In response to the entry of the sector identifier, the index register 206 puts out the most recent previous FAV address associated with the sector identifier, thereby linking the current FAV address with the most recent previous FAV address associated with the same sector identifier. The index register 206 also puts out the scan number associated with the most recent previous FAV address. The link output and scan number from the index register 206 enters the circular multiscan memory 202 simultaneously with the range and bearing data from the FIFO buffer 200. A scan counter 210 increments each time a radar crosses a particular reference point, such as the north crossing point, the scan counter 210 counting to a predetermined number and then resetting and commencing a new count. The scan number exitting the scan counter 210 enters the circular multiscan memory 202 together with the link output from the index register 206 and the range and bearing data from the FIFO buffer to provide a single word entry. That entry is associated with the current FAV address emanating from the FAV register 208 which address is assigned to the current contact of interest. Specifically, the current FAV address enters a two-to-one switch 212 which directs the current FAV address to the circular multiscan memory 202 as the current address associated with the link-scan-range-bearing word entered. It can thus be seen that the current FAV address is associated with the link address, i.e. the most recent previous FAV address associated with the current sector identifier; the scan number of the link address; and the range and bearing of the current contact of interest. Also shown in FIG. 4 is an oldest valid register 214 which stores the oldest valid address during the processing of the current contact of interest data input. A valid link test element 216 compares the scan number in the circular multiscan memory 202 with (1) the last valid scan number (LVSN) register, 217, derived from the scan counter 210, and (2) the oldest valid scan number which emanates from the Control section 266. When a sector search begins, the Last Valid Scan number (LVSN) register 217 is set equal to the current scan number emanating from the scan counter 210. When a link address is declared valid by the valid link test element 216, the scan number associated with that link address replaces the current contents of the LVSN register 217. This method of reducing the possible locations of valid link addresses prevents linking into data that is too old to be of interest. If the link address is larger than the current first available address or is less than the oldest valid address, the link address is incorrect; the link address points to a cycle of processing prior to the current cycle which relates to the current contact of interest. Assuming the oldest valid scan number is less than or equal to the link scan number and the link scan number is less than the last valid scan number, and assuming the link address is not equal to zero, the link address is valid and is provided as output from the valid link test element 216. The link address then enters the circular multiscan memory 202 via the two-to-one switch 212. 
     The circular multiscan memory 202 is designed to provide as output the link address, scan, range, and bearing information associated with each address read into the circular multiscan memory 202. When the address related to the current contact of interest enters the circular multiscan memory 202, the link address scan, range, and bearing associated with that address are provided as outputs. The link address (via the valid link test element 216) enters the address input to the circular multiscan memory (202); the link address scan number, range, and bearing associated with that address input being provided as outputs. A first link address may point to yet a second link address which may circulate back into the address input of the circular multiscan memory 202, thereby providing pointing to successive link addresses within the circular multiscan memory 202. As seen in FIG. 4, each link address exiting the multiscan memory enters a two-to-one switch 218. It should thus be noted that each link address which points to yet another valid link address is processed through the multiscan memory 202 with corresponding scan, range, and bearing outputs being provided by the circular multiscan memory 202. 
     The data processing within the circular multiscan memory 202 is illustrated with reference to FIG. 5. Referring to the left table of FIG. 5, the various sector identifiers are listed along the left margin starting at 0 and extending beyond 18 in binary. Associated with each sector identifier is (1) the most recent previous first available address FAV in the sector (shown in the left column), (2) the scan in which it occurred, and (3) the first available address from the FAV register 208 corresponding to that sector identifier. By way of example, reference is made to sector identifier 010010 (18 in binary). In this embodiment the first three bits could represent the most significant bits of the range input and the last three bits representing bearing. The most recent previous first available address associated with the sector identifier 18 is 500 as shown in the left column. The first available address from the FAV register 208 is 620. This FAV address 620 is assigned to the current contact of interest. It will be noted that each time a new first available address enters the right column, it forces the previous contents of the right column for the particular sector identifier into the left column. In that way, the index register 206 is able to link the first available address (620 in the example) with a most recent previous first available address (500 in this example) both of which are associated with the same sector identifier (18 in this example). A subsequent contact detected in the identified sector 18 will cause a new FAV address to enter the right column, the 620 address shifting into the left column as a link address. 
     As shown in FIG. 4, the link address (500 in this example) enters the circular multiscan memory 202, the operation of which is depicted in the right table of FIG. 5. Referring to FIGS. 4 and 5, the FIFO Buffer 200, Index Register 206, and scan counter 210 are shown entering the link address-scan-range-bearing information associated with address 620 into the multiscan memory 202. The scan, range, and bearing information associated with the address 620 will be provided as an output from the circular multiscan memory 202. Link address 500 will then be fed back via the two-to-one switch 218, the valid link test element 216 and the two-to-one switch 212 to the address input of the circular multiscan memory 202 to read out the link address, scan, range, and bearing information relating to the address 500. Similarly, the link address of 500 is shown pointing a next link address to 420. The address 420, in like fashion, enters the circular multiscan memory 202 address input and its associated information is then read out. The linking address for address 420 is 419 which in turn links to address 300. The circular multiscan memory 202 will, accordingly, produce scan, range, and bearing outputs associated with each successive link address until it reaches a zero link or until a link address fails the valid link test 216. It will be noted that elements 200 through 218 comprise a preferred embodiment of a unit 219. The unit 219 represents means for (a) entering and sequentially storing, in an ordered fashion, data relating to contacts; (b) linking the position data of one particular contact (a contact of interest) to previously stored position data for each previous contact in a given position sector over a period of time; and (c) outputting the stored linked position data in order if valid. 
     Referring again to FIG. 4, it will be noted that the scan counter 210 also provides the scan number output to a subtractor 220 which compares each scan output from the circular multiscan memory 202 with the current scan number of the current contact. The output of the subtractor 220 indicates if two contacts within the same scan are being compared. If such is the case, S equals 0 and a reject flag occurs. The present invention thus compares a current contact of interest with only contacts of previous scans, i.e. the invention is retrospective. The successive range and bearing outputs from the circular multiscan memory 202 are combined with the range and bearing of the current contact of interest in a comparator 222. In the embodiment shown in FIG. 4, the comparator 222 comprises a plurality of comparing elements which provide information as to whether or not a contact of interest should be rejected as a probable target. A first comparing element 224 subtracts the bearing of the contact of interest received from the FIFO buffer 200 with the bearing output from the circular multiscan memory 202 in a subtractor 226. The output of the FIFO buffer 200 is latched to effect synchronized comparing. The absolute value of the difference is output from an element 228 and compared to a maximum bearing differential (BRG MAX) value in a bearing comparator 230. The BRG MAX value is entered into the bearing comparator 230 from a programmable read only memory (PROM) which is addressed by the range and scan number. Accordingly, the BRG MAX value between the contact of interest and the output from the circular multiscan memory 202 may be varied as a function of scan number and range. If the bearing comparator 230 indicates that the change in bearing between the contact of interest and the contact corresponding to the output of the circular multiscan memory 202 exceeds the programmed maximum, a signal is provided that the contact of interest should be rejected as a probable target with respect to the compared contact. That is, viewing the contact of interest and the compared contact, the comparator 224 determines that the change in bearing is greater than that reasonably expected for a target which is to be detected. Similarly, a comparing element 234 is provided for range. Again, the range of the contact of interest and the range corresponding to the contact whose data is being outputted by the circular multiscan memory 202 are latched, after which they are subtracted in a subtractor 236 the difference of which enters an absolute value element 238 which provides the difference from the subtractor 236 as a magnitude only. The magnitude of the range differential is then compared to a range differential maximum (RNG MAX) which is stored in a PROM 240, the two values being compared in a range comparator 242. If the magnitude of the range differential is greater than the programmed RNG MAX, a signal indicating that the contact of interest is outside the reasonable limits of the range is provided. That is, the difference in range between the previous contact and the contact of interest is too great to suggest a probable target defined by the two contacts. The magnitude of the range differential (from element 238) also enters a velocity encode element 244 which divides the magnitude of change of range by the number of scans between the contact of interest and the previous contact which is being compared to the contact of interest. The velocity encoder 244 thus provides a velocity number which is indicative of the range rate of a probable target. A third comparing element 246 compares the velocity number with a maximum and a minimum velocity number in order to determine if the range rate output of the velocity encoder is within predefined range rate limits. This comparing element permits the retrospective data filter 100 to accept only those targets within a predetermined speed range while objects moving at rates outside the predetermined range are ignored or rejected. For example, referring to FIG. 3, the comparing element 246 could be set such that only targets moving at a rate of 21 to 35 knots inbound would be accepted as targets to be detected. Such a limit might be included in a system for object avoidance, outbound targets not being of interest and targets below a certain velocity being easily maneuvered around rendering their detection not significant. 
     Assuming that the contact of interest and the contact being compared to the contact of interest do not occur during the same scan; the range and bearing differentials do not exceed their prescribed maximums; and the range rate is within the predetermined velocity limits, the velocity number exiting the velocity encoder 244 enters a profile buffer 248 which contains an (n-1)-bit word contact history for each velocity profile where n equals the maximum possible number of scans processed. That is, referring back to FIG. 3, there would be one contact history for the 28 to 35 knot inbound profile, each bit in the contact history corresponding to a contact or no contact at one of the successive scans. 
     Initially, all of the (n-1) bit word contact histories are reset to a zero state. This is performed by clearing logic 249 after contacts in all scans have been examined. In the case of the embodiments suggested by FIG. 3, each contact history would thus correspond to a 7-bit word comprised of seven zeros. 
     To form a contact history for a given velocity profile, such as for the 28 to 35 knot velocity band shown in FIG. 3, the following steps occur. First, a velocity number corresponding to the first linked, or first preceding, contact relative to the contact of interest enters the profile buffer 248 as an input. The velocity number is initially assigned to a velocity band in which it fits. Each band corresponds to a particular velocity profile defined by one of the 7-bit words. The velocity number thus first addresses the one particular 7-bit word in the profile buffer 248. Simultaneous with the entry of the velocity number into the profile buffer 248, a scan differential input is provided to a profile update logic element 250. The scan differential input (ΔS) indicates the number of scans between the contact of interest and the contact being compared with the contact of interest. The velocity number instructs the profile buffer 248 which 7-bit word to enter into the profile update logic 250. The 7-bit words are addressed in correspondence with the velocity numbers. The 7-bit word (initially all zeroes) enters the profile update logic 250 via the port D out . The value of ΔS which enters the profile update logic 250 indicates which bit in the 7-bit word should be set to &#34;1&#34;. Assuming the contact of interest is in scan zero, the first bit of the 7-bit word would correspond to the first scan and the seventh bit would correspond to the seventh scan. A &#34;1&#34; in the second bit would thus represent the presence of a contact in the second scan, which contact is characterized in having a velocity number which fits within a given velocity band. 
     In operation, then, a velocity number from a velocity encoder 244 and a ΔS=5 value from the subtractor 220 may, for example, enter the profile buffer 248 and profile update logic 250, respectively. The velocity number addresses a 7-bit velocity profile word which may, in this example, be 0100000. The 7-bit word represents contacts in previous scans (i.e. scans one through four) which had contacts identified with velocity numbers corresponding to the velocity band associated with the 7-bit word. So far, in this example, only a contact in the second scan had a velocity within (or at least nearly within) the associated velocity band. The 7-bit word 0100000 enters the profile update logic 250 where the value ΔS indicates which bit is to be set. ΔS=5 causes the fifth bit to be set and the updated word 0100100 reenters the profile buffer 248. If a contact in the sixth scan is detected having a velocity number in (or nearly in) this same band, the 7-bit word will again be updated to 0100110 and so forth. Accordingly, each (n-1) bit word is updated with each subsequent scan until the contact of interest has been compared with all relevant contacts in the previous (n-1) scans. The profile buffer 248 is shown comprising two alternating RAM memories 251. The RAM memories are provided such that they may be used in alternation. Accordingly, if velocity numbers are entering at a high input rate, the data may be processed by one portion of the buffer while the other portion is performing a time-consuming erasure, thereby reducing overall processing time. 
     Each updated profile which exits the profile update logic element 250 also enters a quality encode element 252. In accordance with this preferred embodiment, the quality encode element 252 uses information relating to both the total number of its set bits in each updated 7-bit word as well as the location of those set bits, in order to determine the reasonableness or the likelihood of a target being represented thereby. Specifically, for each possible velocity profile word, which may range from 0000000 to 1111111, a quality value is assigned. For example, in accordance with the quality encode element 252, a higher quality may be assigned to a velocity profile word having 1111 followed by 000 than for a word in which the first, third, fifth, and seventh bits were set to a &#34;1&#34; value. The output from the quality encoder element 252 enters a comparator 254 which compares the encoded quality with a previously stored highest quality value for previous profiles relating to the same contact of interest. The larger quality value exiting the comparator 254 enters a latch 256 the output from which is compared with the output from the quality encoder in the comparator 254. In addition, the highest quality value stored in the latch 256 is also directed to a further comparator 258 which compares the highest quality in the latch to a preset threshold quality. The comparator 258 assures that the highest quality put out by the latch 256 exceeds a particular false alarm rate (FAR) threshold. The higher the threshold, the higher the quality of the word required to provide a &#34;reasonable&#34; target output. The word corresponding to the highest quality generated relative to a particular contact of interest; and the velocity number of such contact of interest are stored in latches 260 and 262, thereafter entering an output interface 264 which provides the quality, profile, and velocity number as outputs. The range and bearing of the contact of interest are also provided as outputs for further processing. It will also be noted that a timing and sequence control 266 is connected to various elements in the retrospective data filter 100 to synchronize various timing and control actions. 
     Adaptable Memory 
     In order to account for variations in the data input rate of the filter 100, the oldest valid register 214 (and multiscan memory 202) are designed to be adaptable. In this way, the number of scans used in the correlation process can be made to vary. Specifically, a current contact of interest can be correlated with contacts occurring in from one to, in the present embodiment, seven previous scans. The circuit structure which permits correlation of a contact of interest with contacts in one to seven previous scans is shown in FIG. 7. 
     In FIG. 7, the components of the oldest valid register 214 are shown relative to the elements set forth in FIG. 4. The first available address register 208 provides the first available address to a link storage RAM 280. The output of the link storage RAM 280 enters the valid link test element 216. The link storage RAM 280 has an add input which is connected to a 2-to-1 multiplexer 282 which selectively connects a modulo-8 adder 284 or the scan counter 210 to the add input. The modulo-8 adder 284 has a scan number input from the scan counter 210 and an input from a modulo-8 overwrite counter 286. The overwrite counter 286 has two inputs, an UP input and a DOWN input. 
     To describe the operation of the circuit structure of FIG. 7, it is initially assumed that the scan number is 0 and both the index register 206 (of FIG. 4) and the link storage RAM 280 are filled with zeroes. The first contact in scan zero is stored at location one of the multiscan memory 202 (of FIG. 4). Subsequent contacts are serially entered into sequential locations in the multiscan memory 202 as suggested in FIGS. 8(a) and 8(b). After all contacts from scan zero are stored, the scan counter is incremental and the first contact in scan one is stored at the next location 1700 (see FIG. 8a). This is indicated in the link storage RAM 280 by storing &#34;1700&#34; at location &#34;1&#34;. This process continues until seven scans of data have been stored. Processing starts when seven scans of data have been saved. At this time, a contact-of-interest is read in from scan 7. The contact of interest is stored in the multiscan memory 202 at the FAV location 15000, and this address is in turn stored in link storage at location 7 (i.e., scan 7). To find the oldest valid scan number and hence the oldest valid address in the multiscan memory 202 associated with the present scan, the scan number is incremented in the modulo-8 adder 284 and entered into the address link storage RAM 280 via the 2-to-1 multiplexer 282. During scan 7, 20  the addition yields: 
     
         7+1=8=0 (mod 8) 
    
     When location &#34;0&#34; of link storage is read, the oldest valid address of element 216 associated with scan 7 is found, which in this case is &#34;1&#34;. If the data in scan 7 fills multiscan memory 202 and overwrites data of scan zero, the system will recognize this condition by testing to see if FAV=OLD as discussed with reference to FIG. 4 above. When this occurs, the modulo-8 overwrite counter 286 is incremented from zero to one and the resulting count is added to the oldest valid scan number. The effect of incrementing the overwrite counter 286 is shown in FIG. 8(c) and 8(d). The oldest valid scan number plus the overwrite count equals one (modulo-8). The OLD address is now 1700 and the system will process only: 
     
         8-overwrite count=7 scans. 
    
     If another scan is corrupted, the overwrite counter 286 is again incremented to point to the oldest valid address in six scans. 
     As the incoming data rate decreases and more of the multiscan memory 202 becomes available, the filter 100 returns to an eight-scan configuration by decrementing the overwrite counter 286 at the beginning of each scan until the overwrite count equals zero. 
     Logic Flowchart of the Retrospective Data Filter 
     Referring to FIG. 6, a flowchart describing the operation of the retrospective data filter is shown. The flowchart may be used in following the hardware previously discussed with reference to FIG. 4 or may be employed in defining a software embodiment such as that described below. In accordance with the flowchart, it can be seen that range and bearing input is entered and the sector is identified. Link, scan, range and bearing data is then entered into the multiscan memory (202 of FIG. 4). The link address is also stored in the link address register, which is part of the valid link test 216. A check is made to determine the validity of the link. If the link is valid, the differential range, differential bearing, differential scan, and velocity are compared to predetermined limits to determine if the contact of interest should be rejected as a possible target. If the contact of interest is not rejected, the word in memory corresponding to a particular velocity profile is updated. The word for each velocity profile is defined with a corresponding quality, the word having the highest quality (over a given threshold) being provided as an output. 
     In accordance with the flowchart, an additional feature is provided. A determination is made if the velocity number corresponding to the maximum quality velocity profile is positioned near the higher or faster edge of a velocity band. If not, the next contact in the link chain is compared to the contact of interest until an invalid link is detected. If, however, the velocity corresponding to the velocity number is near the faster edge of a velocity band, the contact will also be examined as if it occurred within the adjacent velocity band. It will determine if the contact data falls within prescribed velocity limits and, if so, a repetitive update of the words corresponding to the velocity profiles will be performed as if the contact were present in the adjacent velocity band. Appropriate encoded quality outputs associated therewith are thus also derived. This feature accounts for the possibility of a contact straddling two velocity bands. 
     In accordance with the flowchart of FIG. 6, if a link is found to be invalid (as by a valid link test element 216 of FIG. 4) the repetitive velocity profile updating ceases and further processing may be performed. This further processing may include, if desired, the examination of more than one sector for each contact. In particular, if a contact is in the lower left portion of a sector, the filter is definable to provide examination of not only the sector in which the contact is found but also (1) the sector below that sector; (2) the sector to the left of that sector; and (3) the diagonally positioned sector which is below and to the left of that sector. Accordingly, for each such contact, four such sections may be examined. 
     In accordance with the flowchart of FIG. 6, a step is provided which determines if the last adjacent sector has been examined. If not, the link to the next adjacent sector is provided and the repetitive process of determining the validity of links, checking the various preset limits, and updating the profiles and determining their quality is provided relative to the contacts of such adjacent sector. If the last adjacent sector has been examined, the maximum quality of any word corresponding to a velocity profile found in any of the four examined sectors is compared with a preset threshold. If the maximum quality of the velocity profile exceeds the threshold, which is indicative of the false alarm rate, (FAR), a signal is provided indicating that a probable or reasonable target is present. If the maximum quality does not exceed the threshold, the retrospective data filter 100 is initialized for the receipt of a new contact of interest. As previously discussed relative to FIG. 4, where two alternating profile buffers are included in the profile buffer 248, one would be cleared at the end of the following the comparison of the highest quality of threshold while the other is used to update the incoming data relative to the incoming contact of interest. After initialization and the switching from one alternation buffer portion to the other, the filter 100 begins to examine the new contact of interest as the previous contact of interest was examined. 
     Computer Model Embodiment of the Retrospective Data Filter 
     In substantial conformance with the flow chart described relative to FIG. 6, a computer model of the retrospective data filter, shown as hardware in FIG. 4, is illustrated by the Listing of computer instructions, in the Fortran language, as shown in Table 1. While performing similar functions to the hardware embodiment, the computer model has additional uses as well. Because the computer model substantially tracks the hardware embodiment, the computer model may be modified in various ways to determine the effect such changes would have in the hardware design. 
     With reference to the computer model set forth in Table 1, it will be noted that a general non-mathematical algorithm is provided. A set of range and bearing data for a new contact of interest is read in and stored in the multiscan memory. The multiscan memory is organized to contain the link address, the scan number, the range and the bearing (as in the hardware embodiment). The link address is determined by finding the sector in which the contact of interest lies. Once the sector has been found, the appropriate link address is obtained from a sector look-up table (which provides a function similar to that of the index register 206). The link address is then stored in the multiscan memory. The sector look-up table is then updated with the current address with the multiscan memory. At the beginning of each scan, the address of the oldest contact link list is stored in a look-up table. The look-up table is designated as the oldest address table (which is comparable to the oldest valid register 214 of FIG. 4). Its purpose is to store the last valid address to be used during the correlation process for a particular contact of interest. Through the use of link addresses stored in association with each contact, it is possible to correlate the contacts of a plurality of successive scans in order to determine whether they together may represent a probable target. If so, the contacts are filtered through the retrospective data filter. Each such contact will provide input to a continously updated velocity profile. After all of the previous contacts of this sector (which in the model is a range sector) have been filtered, the valid contacts of the next adjacent range sector are filtered through. (It should be noted that the hardware embodiment provides a range/bearing sector whereas the computer model provides a range sector. With each contact in the hardware embodiment, there are thus three adjacent sectors which may be evaluated. With the range sector format, there is but one adjacent sector. It should, in this regard, be evident that sectors defined in range, or in bearing, or in range and bearing may be provided in accordance with the invention). At the completion of the correlation process, the filter bins (corresponding to respective velocity profiles) are evaluated. Each filter bin is assigned a quality number based upon the hit pattern of each bin. If the highest quality number found for a contact exceeds a threshold value, then the contact is reported. This process is repeated as each new contact of interest as read in. 
     In accordance with the invention, there are two methods by which a contact may be filtered. The first method evaluates the contact based upon the velocity tracks correlated from the previous seven scans. Each valid linked contact is evaluated to determine its speed and whether it is inbound or outbound. The other method evaluates the contact based upon a speed and heading angle track profile. The heading angle may be calculated from one of two methods. The first method calculates a heading angle based upon the changes of position in rectangular coordinates. The second method of calculating heading is based upon the changes of position in polar coordinates. These various methods and submethods are within the contemplation of the invention. 
     The various routines which together form the retrospective data filter computer model are, in compiled form, named RDP2. Its main purpose is to define the COMMON blocks used through the program. In order to initialize certain program parameters, the subroutine INPUT is called. Other program parameters are initialized in the BLOCK DATA subroutine. This is a special subroutine used to initialize variables listed in the COMMON blocks. 
     After the initialization process is completed, the program is ready to begin filtering the data. The subroutine GETDAT is used to find the data which, in accordance with this computer model embodiment, is centroided previously. GETDAT uses two buffers and no-wait reads to provide the centroid data with a minimum amount of delay. 
     The centroid data is reported to the subroutine READER which calls GETDAT. READER decodes the centroid data and stores it in the multiscan memory (MSM). It also determines the range sector of the contact and the adjacent range sector to be searched. READER will also adjust the correlator should the MSM overflow. READER is the controlling subroutine of the program since it initiates the correlation process and evaluates the highest quality number found. If an acceptable contact is found, then this contact is written in the file RDP.DAT which can later be dumped to a printer or used to plot the tracks with the task RDPPLOT. When the program is ready to terminate, the number of contacts reported as listed by quality number will be written on the file RDPSUM.DAT. 
     The linking process is done in the subroutine LINKER.LINKER goes through the linked list to determine which of the previous contacts should be put through the correlator. These tests are based on the differences in range and bearing between contacts. The acceptable differences in range and bearing will vary with the time between scans. 
     The present computer model, like the hardware embodiment, is used to indicate which contacts detected by a radar, sonar, ultrasound, or other such object detection communication systems designate based on contacts occurring at previous times, are probable targets. The probable targets may be displayed or plotted or may be used by tracking systems as desired. 
     MODIFICATIONS 
     It will, of course, be noted that the teachings of the present invention apply to object detection communication systems having a circular scan, a lateral reciprocating scan, or even a scan produced by a phased array. Instead of scan number, a different time dependent function may accordingly be used. 
     Further, as previously indicated, sectors may be identified by range or bearing or both. Alternatively, sectors may be defined in Cartesian coordinates with no significant design changes. Also, the range-bearing input data from the input processor 104 (of FIG. 1) may be centroided or not; the invention will process either form of data. 
     Still further given the teachings of the invention in a two-dimensional surface radar environment, it is contemplated that a three-dimensional embodiment be a further variation to range and bearing embodiments set forth above. Defining sectors in three dimensions would add to the number of adjacent sectors; other than such quantitative changes the invention would operate similarly. 
     As to the hardware design, an alternative to range rate (as discussed relative to the computer model) may be employed wherein a vector analyzer provides a true velocity indicator output. It is evident that this would involve a heading angle calculation to be made. Implicit in this realization is a need for heading angle profile histories in addition to the speed profile histories already present. Such an implementation can be found in the computer model. 
     As described, each of the previous (n-1) successive scans are included in each velocity profile. Velocity profiles including data from only selected scans are also within the scope of the invention and, in view of the teachings, are logical extensions or variations thereof. 
     Various modifications, adaptations and alterations to the present invention are of course possible in light of the above teachings, in addition to those set forth specifically. It should therefore be understood at this time that within the scope of the appended claims the invention may be practiced otherwise than as specifically described hereinabove. ##SPC1##