Boom event analyzer recorder
RIGHTS OF THE GOVERNMENT 
     The invention described herein may be manufactured and used by or for the Government of the United States for all governmental purposes without the payment of any royalty. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates generally to a boom event analyzer recorder (BEAR), and more particularly to an analyzer recorder to collect sonic booms of supersonic aircraft and launch vehicles. 
     Sonic boom information is required to validate Environmental Impact Statements that contain supersonic aircraft activity. 
     In the prior practice, all sonic boom data was collected using analog FM recorders. These had to be manned and turned on prior to the boom event allowing only capture of scheduled events. They also required AC power so a van or truck was needed to field all the equipment needed to collect booms. 
     U.S. patents of interest include U.S. Pat. No. 3,484,741 to Hyman, which teaches a shock wave sensor having directional capability. U.S. Pat. No. 4,308,602 to Knight teaches a target device which detects the pressure wave generated by a projectile. A computer is used to indicate location and shape of the target. U.S. Pat. No. 4,357,531 to Knight teaches a target device similar to that in the Knight U.S. Pat. No. 4,308,602 but provides in addition a microprocessor and display to detect the shape and location of the target. 
     SUMMARY OF THE INVENTION 
     An objective of the invention is to provide for the capture of an entire boom waveform discriminating it from all other non-boom events. 
     The invention relates to a boom event analyzer recorder (BEAR) device for sampling and capturing in digital form any loud impulse noise from background noise. The device comprises a 16-bit microprocessor, a random access memory (RAM) storage, a data retrieval unit (DRU), and a microcomputer. The device can discern a sonic boom from the normal background noise and capture it in permanent solid RAM storage for later analysis. The RAM modules can then be transferred with the DRU and the information on the DRU transferred to the microcomputer. The microprocessor displays each recorded event, time of occurrence and summary information for all the stored data. 
     The BEAR&#39;s evaluation criteria eliminates the need for a manned system by evaluating the noise environment in real time and capturing only the boom. This allows for capture of scheduled and non-scheduled events. The unit is also portable, weighing less than 50 lbs., allowing it to be set quickly and in remote sites instead of requiring motor vehicle access to collect boom data. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a pictorial block diagram of a Boom Event Analyzer Recorder (BEAR); 
     FIG. 2 is a graph showing how the BEAR uses a unique evaluation of level, duration, pulse time and risetime to screen out all non-boom or non-impulsive events; 
     FIGS. 3-6 are graphs of sonic booms, with FIG. 3 showing a clean N-wave, FIG. 4 showing a ragged N-wave, FIG. 5 showing a focussed N-wave, and FIG. 5 showing a boom near lateral cutoff; 
     FIG. 7 is a BEAR software block diagram; 
     FIGS. 8, 9 and 10 are flow charts of the program routines for system initialization; 
     FIGS. 11, 12 and 13 are flow charts of the program routines for A/D interrupt service; 
     FIGS. 14-19 inclusive are flow charts of the event evaluation routines; 
     FIG. 20 is a flow chart of the program routine for the running average table; 
     FIG. 21 is a flow chart of The program for the timer interrupt routine; 
     FIGS. 22-27 are flow charts of the program for the timer interrupt routine; and 
     FIG. 28 is a BEAR address map. 
    
    
     DETAILED DESCRIPTION 
     As shown in FIG. 1, the Boom Event Analyzer Recorder comprises a recorder unit 10, and a data recovery unit 16 which operates with a microcomputer 20. These units are described in a document titled &#34;Boom Event Analyzer Recorder (BEAR) Software Description&#34; and a document titled &#34;Data Recovery Unit&#34;. The first document includes a 68-page program listing having the heading &#34;FILE: BEAR 13  8: BEAR&#34; Copies of these documents, as well as a revised set of drawings for the first document, are included with this application as filed as an integral part of the application as though fully set forth in this specification. 
     FIG. 1 shows a boom event analyzer recorder (BEAR) device for sampling and capturing in digital form any loud impulse noise from background noise. The device comprises a 16-bit microprocessor, a random access memory (RAM) storage 14, a data retrieval unit (DRU) 16, and a microcomputer 20. The device can discern a sonic boom from the normal background noise and capture it in permanent solid RAM storage for later analysis. The RAM modules can then be transferred with the DRU and the information on the DRU transferred to the microcomputer. The microprocessor displays each recorded event, time of occurrence and summary information for all the data stored. 
     The BEAR uses a unique evaluation of level, duration, pulse time and risetime to screen out all non-boom or non-impulsive events. This boom event evaluation is described in FIG. 2. These parameters are selectable via the input keypad to make the BEAR a very flexible instrument with which to capture a wide variety of impulsive events. The BEAR used a PCB piezo resistive microphone 18 model number 107BWH to acquire the low frequency response needed to accurately capture the sonic boom waveform. With other transducers the BEAR could effectively be used to capture any transient, sporadic signal. 
     The Boom Event Analyzer Recorder (BEAR), is a 16 bit microprocessor based instrument that continuously samples the noise then captures and stores the digital waveform of any loud impulse noise. The recorder can discern a sonic boom from the normal background noise and capture it in permanent solid state random access memory (RAM) storage for later analysis. The RAM modules can then be interfaced with a Data Retrieval Unit (DRU) 16 and the information on the DRU transferred to a Zenith Z-100 microcomputer 20. The microcomputer displays each recorded event, time of occurrence and summary information for all the data stored. 
     The BEAR digitizes the noise environment at 8 kHz and analyses it during the downtime between the sampling intervals giving it real time screening for sonic boom events. The BEAR examines the event level, duration, pulse time and rise time to determine if it should be stored as a boom event. These parameters are selectable via the input keypad to make the BEAR a very flexible instrument with which to capture a wide variety of impulsive events. Along with setting the boom evaluation criteria, the keypad allows input of date, time, test number, location and serial number of the unit. This information is stored in the same RAM modules as data every time any parameter is changed. The operator can also select three other modes from this keypad: calibration, clear memory or data save. In the calibration mode the BEAR simply displays the root-mean-square level of two seconds of the input signal to the microphone for checking against a standard 124 dB sound pressure level piston phone calibrator. No data is saved to the RAM modules in this mode. The clear memory mode asks the operator to input a special code and, when entered, simply erases the RAM modules and runs the BEAR unit through the internal self test routines that verify all the hardware components are working properly. The third mode allows the operator to collect one second of data with no screening. This allows the operator to collect and store background noise or calibrator signal or anything that is desired. The BEAR has a frequency response of 0.5 Hz to 2,500 Hz for reproducing a sonic boom time history adequate for environmental impact analysis. The maximum overpressure the BEAR is designed for is 165.2 dB (76 pounds per square foot or 3639 pascal) with an 80 dB usable dynamic range. The RAM modules on a single unit have 512K of memory allowing the BEAR to store over 100 &#34;normal&#34; sonic booms. The BEAR is designed to operate with a PCB Piezo resistive microphone that is totally sealed and extremely rugged making the BEAR able to operate in the environmental extremes of temperature present in the Southwest U.S. (0-65 degrees C.). 
     Once the sonic boom data is collected the RAM modules are transferred to the DRU for downloading the data. The microcomputer 20 initiates its communications program (COMM) to accept this data from the DRU. This data is stored as two large raw data files (ABEARDAT.-B- &amp; BBEARDAT.-B-) inside the microcomputer 20. This file contains the BEAR setup parameters, boom data, captured data and parameter changes all separated by a series of three &#34;barker codes&#34; (hexidecimal values of 90 EB). The microcomputer&#39;s process program then reads this file and breaks it up into individual files on each event that contain the data, plus all the BEAR parameter sets at the time that the data was taken. Each file is given a specific file name corresponding to the date, time, location of its occurrence according to the following scheme. (i.e. PSSHHmmI.MDD, where P indicates a processed event, SS=site number, HHmm=local time in hours and minutes, I=incrementer (A.Z) to differentiate between events that occurred in the same minute at the same location, MDD=month and day). These files are store on a floppy disk in a binary format and can be graphically displayed on the microcomputer 20 by invoking the VIEW command. 
     BOOM CAPTURE OPERATION 
     The BEAR is designed such that after turning the unit on it will do an internal self analysis and come up ready to capture sonic boom data. The BEAR default parameters are set for normal unattended use for the majority of USAF supersonic operations. For this use the operator need only set the &#34;A&#34; parameters for specific test numbers and site number for later identification. This default mode will capture any sonic boom greater than 0.1 PSF (107 dB). If the boom is larger than 76.4 PSF, the BEAR will capture the event but the top of the N wave will be clipped. The BEAR will operate unattended for 1 day on the internal rechargeable small batteries and for 8 days on the 3 external rechargeable batteries. The batteries operating the removable RAM modules 14 are good for approximately 7 years. 
     A normal sonic boom propagating under quiescent atmospheric conditions will produce a typical N-shaped pressure signature as in FIG. 3. A clean N-wave like this will have typical rise time of 0.5 to 5 milliseconds to reach the peak overpressure. Its positive pulse time will be about 1/2 of the total boom duration (typically longer than 50 milliseconds). As a clean boom propagates under adverse weather conditions the peak of the N-wave will become ragged as in FIG. 4. This can effectively cause the risetime (i.e. time to rise to the signatures peak) to be dramatically increased to the range of 5 to 30 milliseconds and cause a slight shortening of the positive pulse time. If the aircraft is accelerating, decelerating or turning, the boom signature can become focussed causing an increase in the peaks to be superimposed on the N-wave as per FIG. 5. In extreme cases this focusing effect can cause the N-wave to be distorted to a typical U-wave. This will cause a dramatic shortening of the positive pulse time. As the boom is approaching the lateral cutoff point, it is being refracted up and away from the ground causing the boom to degenerate into typical subsonic noise. FIG. 6 is the boom signature very close to the lateral cutoff point. 
     With this variety in sonic boom signature the BEAR discerns the boom event from other noisy events with an internal boom screening methodology. The BEAR continuously monitors the noise environment digitizing and examining the noise signature every 125 microseconds. When the noise level rises above the Trigger 2 level the BEAR considers the signal a possible boom event and starts to write the digitized values to the RAM modules and starts the event timer. As the possible boom event is being stored, the BEAR flags the first local peak, the absolute peak and the last downward threshold (Trigger 2) crossing. Upon reaching a downward threshold crossing, the BEAR starts the cycle timer. Whenever the signal raises back above the threshold the cycle timer is stopped and reset again on the next down crossing. When either timer times out, the possible boom event is examined as follows: first, the peak level must be above the Trigger 3 level, second, during the time from the peak (positive and negative) to the peak time plus the pulse time (positive and negative) all the data points must be greater than the Trigger 2 level, third, the rise time to the absolute peak must be steeper than the input rise time values or the rise time to the first local peak must be steeper than one third of the input rise time value. Specifically, the rise time from the absolute peak is calculated by comparing the data value at the time of (the absolute peak time minus the input risetime time value) to the peak value. This data value must be less than the peak value minus the input rise time dB value. For the first local peak, the value to be compared is found at (the time of the first local peak minus one third of the input risetime time value). If either of these risetimes pass the test, then the possible boom event is considered to have a valid risetime. If the event passes all three of these tests, it is considered a valid boom; the &#34;Yes&#34; counter is incremented by one and the date, time, and parameter sets are stored with the event. If the event fails any of the three tests, it is not considered a valid boom; the &#34;No&#34; counter is incremented by one and the data are allowed to be overwritten by any new incoming data. FIG. 2 shows the valid boom evaluation criteria. 
     OVERVIEW 
     The Boom Event Analyzer Recorder (BEAR) is a software controlled instrument that digitizes sonic signals and analyzes the signals using programmable parameters to determine if the signal was a sonic boom. The data of an event are retained in the removable battery RAM modules 14 that can be later processed for further analyses. The software was written in 68000 assembler language. The devices that are being controlled are: 
     16 bit A/D being sampled at 8 Khz. 
     Keypad for parameter entry. 
     Alphanumeric display for parameter display and error messages. 
     Real-time clock for time and date information. 
     Two programmable timers for defining event windows. 
     The memory locations of these devices are shown on the BEAR address map FIG. 28. 
     As described in the software block diagram of FIG. 7, at block 710 the system first performs diagnostics when the power is applied. Checks are made of the PROMS, static RAM, and battery RAM modules. An error message is displayed if the test fails. At block 712, the next function performed is the initialization of the display, timers, and the real-time clock. The timer and the real-time clock are initialized with the default parameters. The initial parameter list is also stored in the battery RAM 14. Finally, the interrupts are enabled and at block 714 the software goes into a wait loop for either an A/D interrupt at block 740, keypad interrupt at block 720, or a timer interrupt at block 730. 
     When a A/D interrupt is detected at block 740, the digitized data are read and compared to the threshold value. If below the threshold, the data are processed at block 742 by the running average table routine which averages the background noise to adjust the threshold. If the data are above the threshold, a new event is triggered and data recording begins. At the beginning of the event, timers 1 and 2 are activated to determine the end of the event. 
     When a keypad interrupt is detected at block 720, &#34;KEYPAD&#34; reads and parses the key entered. The first key that must be entered is the display on/off key (*). While the display is on, the A/D interrupt routine (DAC) does not process A/D data. The next key that must be entered is a function key. The allowable functions are: 
     Set Real-Time Clock. 
     Set Status and Timers. 
     Enter Calibration Mode. 
     Set Soft Values. 
     Full System Reset. 
     Once the function key is entered, the current values for that function are displayed (block 722). If new parameter values are to be entered, the &#34;ENT&#34; key must be pressed followed by the values. All parameter changes are recorded in battery RAM for analysis purposes. If parameter changes are not required the on/off key (*) may be pressed; the display is turned off; and the sonic data continues to be processed. If any invalid keypad entry is detected, &#34;KEYPAD&#34; will display an error message. 
     When a timer interrupt is detected, it indicates the end of an event. The event is analyzed to determine if it was valid sonic boom or not. Either timer 1 or 2 will cause the interrupt to occur. The other tests performed in validating the data are: the peak signal must be high enough, the pulse time both positive and negative must be long enough, and the slope of the peak must be fast enough. If the event is determined to be a valid sonic boom, the data are retained and the current time and data along with the running average value are recorded at the end of the data file. The &#34;YES&#34; event message counter is also incremented. If the event was invalid, the data file pointer is reset to the beginning of the file, and the next event will record over the data. The &#34;NO&#34; event message counter is also incremented. Events will continue to be recorded until the battery RAM 14 is filled at which time the &#34;BAT RAM FULL&#34; message is displayed and event processing is halted. If any errors are detected by the system during power-up diagnostic or parameter entry, appropriate error messages are displayed. All error recovery procedures are explained in the manual. 
     SYSTEM INITIALIZATION 
     FIGS. 8, 9 and 10 
     The program routines for system initialization corresponding to blocks 710, 712 and 714 of FIG. 7 are shown in FIGS. 8, 9 and 10. The BEAR software program had two methods of initializing the system. If the system was powered on with new battery RAM modules installed or the operator initiated the &#34;SYSTEM RESET&#34; function code &#34;E,&#34; the EPROMs are checked, the battery RAMS are checked and zeroed, the static RAM is checked, and the I/O devices are initialized. If the BEAR system is powered on with valid data existing in the battery RAM modules; the battery RAM diagnostic is bypassed and the system is initialized with the parameter values that existed when the BEAR was powered off. Data storage then begins after the barker code of the last valid data block in the battery RAM. The first device that is checked is the EPROM. The program sums each location in EPROM and compares the check-sum result with the predetermined value. Next, each byte of static RAM is written with the values AAH, 55H, and zero to verify its integrity. Finally, each byte of battery RAM is written with the values AAH, 55H, and zero. During the battery RAM test, two things are achieved: integrity check of the RAM and zeroing of the RAM. If any errors occur during the diagnostic, an error message is displayed. Once the diagnostics are passed, the program transfers the system constants from either the EPROM or battery RAM (depending on the type of initialization) to static RAM for use by the other routines in the system. 
     The next device to be initialized is the Peripheral Interface Adapter (PIA) chip. This allows I/O transfer between the CPU and the display, keyboard, real-time clock, and the timers. This also determines the circumstances for generating an interrupt. Once the PIA is initialized, the real-time clock, timers, and display are initialized. Finally, the interrupts are enabled and the system waits for any interrupts to occur. The possible interrupts and their vectors are: 
     Vector 2, DAC, A/D Interrupt 
     Vector 3, LITING, Lightning Interrupt (no operation) 
     Vector 5, KEYPAD, Keypad Interrupt 
     Vector 6, TIMER, Timer Interrupt 
     A/D INTERRUPT ROUTINE (DAC) 
     The program routines for A/D interrupt service corresponding to block 740 of FIG. 7 are shown in FIGS. 11, 12 and 13. The data acquistion (DAC) routine reads the A/D data on an interrupt. These interrupts occur every 125 μs so this routine must process the data quickly. The purpose of DAC is to determine if an event is occurring. If DAC determines an event is not occurring, the data are processed by running average table (RAT) which maintains a running average. If an event is occurring, DAC compares the data with the predetermined parameters (TRIGGER 1, TRIGGER 2, TRIGGER 3) to know when to activate the timers. The event evaluation routines are shown in FIGS. 14-19 inclusive. DAC also keeps track of the peak value during the event. This is performed by the timer interrupt routine (TIMER) block 730. All data read during an event are stored in battery RAM in count format. 
     RUNNING AVERAGE TABLE (RAT) 
     The program routine for the running average table corresponding to block 742 of FIG. 7 is shown in FIG. 20. During the power-up diagnostics, the battery RAM modules are checked and each location is set to zero. Since there can be a variable number of modules implemented, the end of RAM is determined and that address is saved in ENDRAT. The beginning of the average table is at the address 16,384. 
     The address of the beginning of the table is maintained in register A5 and the latest table pointer in A6. The running average is maintained in register D3 with the moving sum in D4. The average is used by the DAC routine to determine when an event is beginning. 
     TIMER INTERRUPT ROUTINE (TIMER) 
     The program for the timer interrupt routine corresponding to block 730 of FIG. 7 is shown in FIG. 21. The TIMER routine services the timer interrupt which is used to trigger an end of an event. There are two timers which can generate an interrupt: Timer 1 which is started at the beginning of an event and Timer 2 which is started at a downcrossing point. Once the interrupt occurs, TIMER analyzes the data to determine if the event was a sonic boom. There are several parameters that are checked to validate the event. They are: 
     Sufficient Peak Value 
     Positive Peak Duration 
     Peak Slope Was Fast Enough 
     If the event was valid, the time, date, and average is stored after the data followed by three barker codes. If the event was invalid, TIMER resets the data pointers to the beginning of the event and the next event is recorded over top. Finally, the YES or NO event counter is incremented and the updated YES/NO message is displayed. Before exiting the timer routine, the system parameters and data pointer is saved in battery RAM. 
     KEYBOARD INTERRUPT ROUTINE (KEYPAD) 
     The program for the timer interrupt routine corresponding to block 720 of FIG. 7 is shown in FIGS. 22-27. The KEYPAD routine services the interrupt generated by a keypad entry. It interprets the key by calling GETKEY (FIG. 23) and processes the function that is requested (FIGS. 24-27). The functions available in the BEAR are: 
     
         ______________________________________                                    
FUNCTION CODE   DESCRIPTION                                               
______________________________________                                    
A               Set time and date.                                        
B               Set ID and timer values                                   
                (Test No., Site No., Serial No.,                          
                Timer 1, and Timer 2).                                    
C               Set Callibration.                                         
D               Set soft values: (Trigger 3,                              
                Trigger 2, Pulse Value                                    
                Rise time dB, and Rise Time                               
F               Save Data Mode                                            
______________________________________                                    
 
    
     Once the function code is entered, KEYPAD determines if the values entered are valid. If an incorrect value is entered, an error message is displayed. The KEYPAD routine outputs the entered data to the display to provide operator feedback. Once the last entry is made, the system parameters are updated with the new values and a change message is formulated and stored in battery RAM as well as a copy of all systems parameters. Once the display is turned on by entering &#34;*,&#34; data acquisition is bypassed to prevent data analysis to be performed with invalid parameters. 
     INITIALIZATION DATA FORMAT 
     The following example illustrates some typical data formats for different types of events occurring in the BEAR. 
     The first event to occur following application of power to the BEAR is the initialization diagnostics. Following their successful completion, the working cache SRAM is loaded with the default working parameters. Then the following data set is loaded into the first RAM module pair (least significant address shown first). These values mostly represent the default parameters. Please note that only on the very first writing of Barker codes is there a set of five. All other events, be they sonic boom or keypad entry events, are always separated by a set of three Barker codes, which are always preceded by a three word group of data representing the current real-time. 
     
         __________________________________________________________________________
HEX                                                                       
VALUE                                                                     
     MSB   LSB                                                            
__________________________________________________________________________
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
000  00010000.sub.2                                                       
           00000000.sub.2                                                 
                 Test Number = 00[10]                                     
                              00010000xxxxxx                              
                              (any number                                 
                              00-99[10])                                  
2000 01000000.sub.2                                                       
           00000000.sub.2                                                 
                 Site Number = 00[10]                                     
                              001000000xxxxxx                             
                              (any number                                 
                              00-99[10])                                  
30xx 00110000.sub.2                                                       
           0xxxxxxx.sub.2                                                 
                 BEAR Serial Number                                       
                              (any number                                 
                              00-3999[10])                                
4000 01000000.sub.2                                                       
           00000000.sub.2                                                 
                 Flag Word for Timer #1                                   
                              The next word                               
                              contains the                                
                              Timer #1                                    
                              count value                                 
                              (00-49500[10])                              
03E8 000000112                                                            
           111010002                                                      
                 Timer #1 Default Value                                   
                 of 1000[10]                                              
5000 01010000.sub.2                                                       
           00000000.sub.2                                                 
                 Flag Word for Timer #2                                   
                              The next word                               
                              contains the                                
                              Timer #2 count                              
                              value                                       
                              (00-49500[10])                              
09C4 00001001.sub.2                                                       
           11000100.sub.2                                                 
                 Timer #2 Default Value                                   
                 of 2500[10]                                              
600A 01100000.sub.2                                                       
           00001010.sub.2                                                 
                 Positive = 10[10]                                        
                              011000000xxxxxxx                            
                 Pulse        (any number 00-                             
                              99[10]                                      
7000 01110000.sub.2                                                       
           00000000.sub.2                                                 
                 Flag Word for                                            
                              The next word                               
                 Trigger #2   contains the                                
                              Trigger #2 value                            
                              (0-32767[10])                               
0020 00000000.sub.2                                                       
           00010010.sub.2                                                 
                 Timer #2 Default of                                      
                              0xxxxxxxxxxxxxxx                            
                 Value 1200 dB                                            
8000 00000000.sub.2                                                       
           00000000.sub.2                                                 
                 Flag Word for                                            
                              The next word                               
                 Trigger #3   contains the                                
                              Trigger #3 value                            
                              (0-32767[10])                               
0067 00000000.sub.2                                                       
           00101000.sub.2                                                 
                 Trigger #3 Default                                       
                              0xxxxxxxxxxxxxx                             
                 value of 107 dB                                          
9005 10010000.sub.2                                                       
           00000110.sub.2                                                 
                 Peak Slope Rise dB                                       
                              100100000xxxxxx                             
                 Default = 6  (any number                                 
                              00-99[10])                                  
9002 10010000.sub.2                                                       
           00100011.sub.2                                                 
                 Peak Slope rise                                          
                              101000000xxxxxx                             
                              Time = 35 msec                              
                              any number 00-                              
                              99[10])                                     
xxxx xxxxxxxx.sub.2                                                       
           xxxxxxxx.sub.2                                                 
                 Real-Time                                                
                 Minutes and seconds                                      
xxxx xxxxxxxx.sub.2                                                       
           xxxxxxxx.sub.2                                                 
                 Real-Time:                                               
                 Days and Hours                                           
xxxx xxxxxxxx.sub.2                                                       
           xxxxxxxx.sub.2                                                 
                 Real-Time:                                               
                 Years and Months                                         
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
EB90 11101011.sub.2                                                       
           10010000.sub.2                                                 
                 Barker Code                                              
__________________________________________________________________________
 
    
     EVENT DATA FORMAT 
     The next example is that of a partial listing of any actual event which would be saved assuming the use of the default parameters in the system. Note that the length of an actual event is always very long (greater than ten data points) when compared to a keypad event. Also, the last data point just after the real-time clock information is the average value from the running average table just prior to the recording of this event. This piece of information is the only data not retrievable from the system data for post test analysis and is included here for analysis purposes. All data are stored in raw A/D counts. 
     
         __________________________________________________________________________
HEX   BINARY VALUE                                                        
VALUE 0F V0LTAGE DESCRIPTI0N                                              
__________________________________________________________________________
EB90  1110101110010000                                                    
                 Barker Code                                              
EB90  1110101110010000                                                    
                 Barker Code                                              
EB90  1110101110010000                                                    
                 Barker Code                                              
0010  0000000000010000                                                    
                 First Data Point (voltage value for                      
      . .        90 dB)                                                   
      . .                                                                 
0041  0000000001000001                                                    
05B7  0000010110110111                                                    
392C  0011100100101100                                                    
                 Peak Value (voltage value for                            
      . .        148 dB)                                                  
      . .        Other Data Points for Recorded Sonic                     
      . .        Boom Event                                               
      . .                                                                 
000C  000000000001100                                                     
0006  000000000000110                                                     
                 Last Data Point (voltage value                           
                 for 81 dB)                                               
xxxx  xxxxxxxxxxxxxxx                                                     
                 Real-Time: Minutes and Seconds                           
xxxx  xxxxxxxxxxxxxxx                                                     
                 Real-Time: Days and Hours                                
xxxx  xxxxxxxxxxxxxxx                                                     
                 Real-Time: Years and Months                              
0000  000000000000000                                                     
                 (2 seconds Average Noise Level Prior                     
                 to this event (voltage value for                         
                 64 dB)                                                   
EB90  1110101110010000                                                    
                 Barker Code                                              
EB90  1110101110010000                                                    
                 Barker Code                                              
EB90  1110101110010000                                                    
                 Barker Code                                              
__________________________________________________________________________
 
    
     The following is an example of a change in the trigger #3 parameter to valve of 137 dB. 
     
         __________________________________________________________________________
HEX                                                                       
VALUE MSB   LSB                                                           
__________________________________________________________________________
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code (previous event&#39;s                           
                  Barker Code, not to be rewritten)                       
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code                                             
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code                                             
8000  10000000.sub.2                                                      
            00000000.sub.2                                                
                  Flag Word for Trigger #3 The next                       
                  word contains the Trigger #3                            
                  Value (0-32767[10])                                     
1111  00010001.sub.2                                                      
            00010001.sub.2                                                
                  Trigger #3 Value of 137 dB                              
xxxx  xxxxxxxx.sub.2                                                      
            xxxxxxxx.sub.2                                                
                  Real-Time: Minutes and Seconds                          
xxxx  xxxxxxxx.sub.2                                                      
            xxxxxxxx.sub.2                                                
                  Real-Time: Days and Hours                               
xxxx  xxxxxxxx.sub.2                                                      
            xxxxxxxx.sub.2                                                
                  Real-Time: Years and Months                             
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code                                             
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code                                             
EB90  11101011.sub.2                                                      
            10010000.sub.2                                                
                  Barker Code                                             
__________________________________________________________________________
 
    
     To change trigger #3, or any &#34;D&#34; key value, all &#34;D&#34; key parameters must be entered, not just those to be changed. For example, if the &#34;D&#34; key parameters were set at 105.095.00.05.02 and you wanted to change the value of trigger #3 (high trigger) to 137 dB, press * then ENT and enter the new value 137.095.00.05.02 and press ENT. This procedure applies to &#34;A&#34; and &#34;B&#34; keys also. Keys C, E, and F are not for data entry. The &#34;F&#34; key allows storage of 1.5 seconds of data, or 12131 data points. To save data, press * and then F. 
     OPERATION FOR TYPICAL BOOM EVENT 
     The acquisition and evaluation of a typical boom event is shown in FIG. 2. Note that positive values of the data refer to compression portions of a sound wave, and negative values to rarefactions. In some of the analysis, absolute values of the sound pressure data are used. Thus the term &#34;downward&#34; may mean either going from one positive value to a less positive value, or from a one negative value to a less negative value (closer to zero). An &#34;absolute peak&#34; is the highest positive sound pressure level in an entire event. A &#34;first local peak&#34; is the first time in an event that the pressure goes from one positive value to a smaller positive value. 
     INITIALIZATION 
     Before start of data acquisition, a number of parameters need to be provided. During the initialization shown by block 712 of FIG. 7, and by the detailed flow charts of FIGS. 8, 9 and 10, default values of these parameters are provided. They may be modified by the user by keypad entries. These parameters include the following: 
     Trigger 2 
     A low trigger value for the absolute value of the sound pressure, shown in FIG. 2 by a positive value and an equal negative value. The value is set in terms of dB of sound pressure with respect to a reference level of 20 micropascals, the default value being 100 dB. This lower trigger level determines when data is to be collected. An event must exceed this trigger level to start data collection. (Note that a trigger 1 appears in the program listing, but is no longer used.) 
     Trigger 3 
     Levels are defined as above for trigger 2, the default value being 107 dB. An event must exceed this level to be considered a good event. 
     Timer 1 
     This is an event timer which is preset to determine a typical boom duration. The default is two seconds. This timer starts running when data exceeds trigger 2, and an event is evaluated if this time value is reached. 
     Timer 2 
     This is a cycle timer of shorter duration than timer 1. The default value is 0.2 seconds. Evaluation of an event starts if the absolute value of the data level remains below the trigger 2 value for this duration. 
     Positive pulse time 
     This is a time during an event that the data values remain above the trigger 2 level. The time span for this determination is one of the starting parameters, with a default value of 10 milliseconds. The data is checked from the absolute peak, and must remain above the trigger 2 level for this duration. 
     Negative pulse time 
     This value is determined from the negative absolute peak and looks backward. The time span is set at 1/8 of the positive peak time span. The aboslute value of the sound pressure data must remain greater than the negative value of trigger two for this amount of time. 
     Rise time 
     This is a change in value for the sound pressure over a period of time. The starting parameters include both a pressure rise and a time span that together determine the rise time standard. Actual rise times are compared to this standard for evaluation, and must be faster to be a good event. 
     The flags set during data collection and used during evaluation are as follows: 
     Flag 1 
     This flag is set to indicate the first data point that exceeds the trigger 2 level, to designate the start of an event. 
     Flag 2 
     This flag is set at all down crossings of trigger 2, e.g. the absolute value of the pressure data goes from greater than the trigger 2 value to less. If the absolute value returns above the trigger 2 level, and later crosses below that level, flag 2 is set to the later data point. 
     Flag 3 
     This flag indicates the current data point during acquisition. 
     Flag 4 
     This is the flag for the data point at the absolute positive peak. 
     Flag 5 
     This is the flag for the data point at the absolute negative peak. 
     DATA ACQUISITION 
     The data acquisition is shown by block 740 of FIG. 7, and by the detailed flow charts of FIGS. 11, 12 and 13. The routine starts every 125 microseconds on an interrupt, and gets a 16-bit value from an A/D converter which provides the value of sound pressure data detected by the microphone. As long as the data value is less than the absolute value of trigger 2, a running average table (RAT) is updated. The program then waits for the next interrupt. 
     At the start of a boom event, the data at point 202 in FIG. 2 is shown as a positive value greater than the positive value of trigger 2. Since event collection has not yet started, the program checks the data value and finds that it is greater than trigger 2. In response thereto, the memory storage is turned on and flag 1 is set, the event timer 1 is started, the cycle timer 2 is set up, the current data pointer (flag 3) is incremented and the data stored. Also the oldest and peak values are updated. The program returns to wait for the next interrupt. 
     At the next interrupt, event collection has started, and the program increments the current data pointer (flag 3) and stores the value in memory. The current data is compared to the peak and found to be greater, so the peak value is updated and also the pointer flag 3 for the current data. It is determined that the slope is rising. The program returns to wait for the next interrupt. The same operation occurs on subsequent data points through point 204 up to point 206. 
     At point 206 it is found that the current data is not greater than the previous peak value that has been flagged, so the peak value is not updated. It is found that the slope is now falling, the current data is greater than the positive value of trigger 2, and the operation returns (The data for point 206 is recorded as being the first local peak). As long as the slope is falling, the operation will be the same on subsequent interrupts. When the slope again rises, the operation will be like at point 204, with the peak value being updated at each data point, until point 208 is reached. Note that the peak value, updated whenever the current data is greater that the previous peak, is stored in a register for flag 4. 
     At point 208, the peak value stored for flag 4 is updated for the last time. At subsequent data points the current data will be less than the peak. The operation continues, sometimes with falling slope, and sometimes with rising slope, through points 210 and 212 until point 214 is reached. 
     At point 214 the slope is falling. It is now found that the current data is not greater than the positive value of trigger 2, and also not less than the negative value of trigger 2. Since the timer 2 is not on, the down crossing flag 2 is set equal to the current data pointer of flag 3. The timer 2 is loaded and started, and the operation returns. 
     For the next series of data points, timer 2 is now on so the program decrements its count. As long as timer 2 has not reached zero, operation proceeds. With timer 2 running, the program returns. 
     At point 216, it is found that the current data value is less than the negative value of trigger 2. Since the absolute value has increased, this is designated as an upcrossing. With timer 2 on, the operation proceeds to turn the timer off and return. Note that flag 2 remains set at the value for point 214 as being the last down crossing so far. 
     The operation proceeds with the data values becoming more negative through point 218 to point 220. At point 220, the negative peak is found and flag 5 is set. At point 230 the data value is still negative, but its absolute value is found to have become less than the absolute value of trigger 2, so flag 2 is set to designate a down crossing, and timer 2 is started. At subsequent data points the data absolute value remains less than the trigger 2 level, so the timer 2 continues to run. At the data point 240, timer 2 has counted down to zero, and in response thereto, event evaluation begins. Note that event evaluation could also be initiated by an interrupt from the event timer 1, if it reached its preset time before timer 2 timed out. Flag 2 indicates the last down crossing, which occurred at point 230, and this is used as the end of the event. Event data has been stored from flag 1 at point 202 to flag 2 at point 230. 
     EVENT EVALUATION 
     The data analysis for event evaluation is shown by block 732 of FIG. 7, and by the detailed flow charts of FIGS. 14-19. The evaluation phase comprises the steps of (1) determining if the peak value indicated by the fourth flag at point 208 is greater than the trigger 3 value, (2) determining if all of the data points from the peak indicated by the fourth flag at point 208 forward for said positive pulse time to point 210 are greater than the positive value of the low trigger, and determining if all of the data points from the negative peak indicated by the fifth flag at point 220 checked backward for said negative pulse time to point 218 have an absolute value greater than the absolute value of the low trigger, and (3) determining if the rise time to the peak indicated by the fourth flag at point 208 is steeper than said rise time standard, or if the rise time to the first local peak at point 206 is steeper than one third of the rise time standard. 
     A valid boom event is declared if all of the above tests of the evaluation phase are passed, a &#34;Yes&#34; counter is incremented by one and the date, time, and parameter sets are stored with the event. If the event fails any of the three tests, it is declared not a valid boom event, a &#34;No&#34; counter is incremented by one and the data is allowed to be overwritten by any new incoming data. 
     It is understood that certain modifications to the invention as described may be made, as might occur to one with skill in the field of the invention, within the scope of the appended claims. Therefore, all embodiments contemplated hereunder which achieve the objects of the present invention have not been shown in complete detail. Other embodiments may be developed without departing from the scope of the appended claims.