160 likes | 356 Views
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. What is it?.
E N D
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
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
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, s=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
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’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
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
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)
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
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.
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.
dat data format • 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