1 multistatic sonar simulation* p. willett january, 2011 supported by the office of naval research...
TRANSCRIPT
1
Multistatic Sonar Simulation* P. Willett
January, 2011
Supported by the Office of Naval Research
Contract: N00014-10-10412
Program Managers: Keith Davidson & John Tague
* help from R. Georgescu, S. Schoenecker, S. Coraluppi, O. Erdinc, W. Blanding
2
What is it?
• Most MSTWG datasets are high-fidelity but one-shot.– some need for Monte Carlo results
• This simulation is medium fidelity– same scenario can be run multiple times with
different noises (detections and clutter)
• Scenario– can be specified by GUI– scenario can be specified by matfile
3
Targets• motion is described via waypoints
– as many as you like (e.g., “W” needs 5)
• as many targets as you want– presently there is no “appear” or “disappear”
• future work, easy
– aspect dependent SNR– Gaussian-shaped pedestal, =10o
• can be set
– pedestal is 10dB• can be set
– specify in terms of received monostatic SNR at broadside at 1 km
• can be set
4
Platforms• as many as desired• specified as waypoints, same as targets• each can be a source, receiver or both• platforms are acoustically observable
– same model as target– can turn this off
• bistatic observations model– azimuth, time delay and Doppler
• input ’s– attenuation with distance
• loss proportional to distance2 below 1km, and to distance beyond 1km• loss product of source-target and target receiver losses
• sound velocity must be input– no multipath
• future work, easy but nontrivial• specify ping rates and total simulation time
5
Clutter
• presently three types, user-specified– Rayleigh– log-normal (choose parameter)– K-distributed (choose parameter)
• detection threshold input (nominally 13dB)• formed in angle/delay space
– more dense near receiver
• all resolution cells’ returns are formed and compared to the threshold– no Pfa input, although it is internally calculated
6
How to use it?• scenario setup mode:
– invoke “multistatic_simulation” in MATLAB– decide whether want GUI or matfile input
• output is in “simulation_output.mat”
• Monte Carlo mode:– assume “parameterfile.mat” was created in scenario
setup mode or is given– [newobs,newcontact,data]= …
multistatic_simulation(‘parameterfile.mat’)– output given for one whole simulation run
• suitable to be called within loop• first call simulation• then call tracker• compare output to truth (from parameterfile.mat)
7
What is the Output?• each run (invocation of multistatic_simulation)
gives three outputs– “obs” – in Cartesian space– “contact” – in time/bearing space– “data” – in NURC format that MSTWG has been using
(see NURC Technical Memo RL-JUN03-01 “Abel Multistatic sonar information processing chain” by Rene Laterveer, also the presentation “New ARLUT Data Set” by Brian LaCour, MSTWG 3rd Meeting)
• these are very redundant, use what you want– obs & contact are cell arrays
• given in form useful for a tracker
8
contact data format• contact{i_scan,i_pair}.az(i_contact)
– azimuth (degrees, counter-clockwise from east)• contact{i_scan,i_pair}.delay(i_contact)
– travel time of ping (s)• contact{i_scan,i_pair}.doppler(i_contact)
– bistatic Doppler (m/s)• contact{i_scan,i_pair}.time(i_contact)
– return time of ping from start of simulation (s)• contact{i_scan,i_pair}.power(i_contact)
– level of contact (dB)• contact{i_scan,i_pair}.source(:,i_contact)
– [x; y] values of position of source at the time of emission of ping.• contact{i_scan,i_pair}.receiver(:,i_contact)
– [x; y] values of position of receiver at the time of reception of return.• contact{i_scan,i_pair}.provenance(i_contact)
– zero if clutter, otherwise is index of target that return came from.• contact{i_scan,i_pair}.truth(:,i_contact)
– [x; y] values of position of reflecting target at the time of reflection. If clutter: zeros(2,1).• contact{i_scan,i_pair}.number_contacts
– number of threshold-exceedances for this ping/pair.• contact{i_scan,i_pair}.source_platform_index(i_contact)
– the index of the source platform for contact i_contact, to distinguish multistatic pairs when it is necessary to estimate (say) SNR.
• contact{i_scan,i_pair}.receiver_platform_index(i_contact)– the index of the receiver platform for contact i_contact, to distinguish multistatic pairs when
it is necessary to estimate (say) SNR.
9
obs data format• obs{i_scan}.meas(i_meas).time
– return time of ping from start of simulation (s)• obs{i_scan}.meas(i_meas).z(:)
– [x; y; Doppler] values of centroid of contact (measurement Cartesian space).• obs{i_scan}.meas(i_meas).R(:,:)
– covariance matrix for z.• obs{i_scan}.meas(i_meas).snr
– power of contact (dB).• obs{i_scan}.meas(i_meas).provenance
– zero if clutter, otherwise is index of target that return came from.• obs{i_scan}.meas(i_meas).truth(:,i_contact)
– [x; y] values of position of reflecting target at the time of reflection. If clutter, this is zeros(2,1).
• obs{i_scan}.meas(i_meas).source_platform_index(i_contact)– the index of the source platform, to distinguish multistatic pairs when it is
necessary to estimate (say) SNR.• obs{i_scan}.meas(i_meas).receiver_platform_index(i_contact)
– the index of the receiver platform, to distinguish multistatic pairs when it is necessary to estimate (say) SNR.
10
• dat{i_scan,i_pair}.header.svel– sound velocity (m/s)
• dat{i_scan,i_pair}.buoy.compass– heading of receiver, clockwise from east in degrees
• dat{i_scan,i_pair}.buoy.lat(1)– latitude of receiver at time of ping (obs & contact use time of reception)
• dat{i_scan,i_pair}.buoy.lon(1)– longitude of receiver at time of ping (obs & contact use time of reception)
• dat{i_scan,i_pair}.buoy.lat(2)– latitude of source at time of ping
• dat{i_scan,i_pair}.buoy.lon(2)– longitude of source at time of ping
• dat{i_scan,i_pair}.clust.range(i_contact)– zero for all contacts
• dat{i_scan,i_pair}.clust.mean(i_contact).range– the time in seconds between transmission of the ping and the reception of contact
number i_contact• dat{i_scan,i_pair}.clust.mean(i_contact).doppler
– the bistatic Doppler in m/s• dat{i_scan,i_pair}.clust.mean(i_contact).beam
– the angle, clockwise from east in degrees, of contact number i_contact
dat data format