В этом примере показано, как моделировать пассивную гидроакустическую систему. Стационарный подводный акустический маяк обнаруживают и локализуют буксируемой пассивной решеткой в мелководном канале. Акустический маяк передает импульс в 10 миллисекунд с частотой 37,5 килогерц каждую секунду и моделируется как изотропный проектор. Система локаторов буксирует пассивный массив под поверхностью, который моделируется как однородный линейный массив. Как только акустический сигнал маяка обнаружен, блок оценки направления прихода используется для определения местоположения маяка.
В этом примере акустический маяк расположен на дне мелководного канала, глубиной 200 метров. Пассивная решетка буксируется под поверхностью для определения местоположения маяка.

Сначала создайте многолучевой канал для передачи сигнала между маяковым радиомаяком и пассивной решеткой. Рассмотрим десять путей распространения, включая прямой путь и отражения от верхней и нижней поверхностей. Пути, созданные isopaths будет использоваться каналом многолучевого распространения, channel, для моделирования распространения сигнала.
propSpeed = 1520; channelDepth = 200; OperatingFrequency = 37.5e3; isopaths = phased.IsoSpeedUnderwaterPaths('ChannelDepth',channelDepth,... 'NumPathsSource','Property','NumPaths',10,'PropagationSpeed',propSpeed); channel = phased.MultipathChannel('OperatingFrequency',OperatingFrequency);
Акустический сигнал маяка
Определите форму сигнала, излучаемого акустическим маяком. Сигнал представляет собой прямоугольный импульс, имеющий интервал повторения в 1 секунду и ширину в 10 миллисекунд.
prf = 1; pulseWidth = 10e-3; pulseBandwidth = 1/pulseWidth; fs = 2*pulseBandwidth; wav = phased.RectangularWaveform('PRF',prf,'PulseWidth',pulseWidth,... 'SampleRate',fs); channel.SampleRate = fs;
Акустический маяк
Затем определяют акустический маяк, который расположен на 1 метр выше дна канала. Акустический маяк моделируется как изотропный проектор. Сигнал акустического маяка будет излучаться в дальнее поле.
projector = phased.IsotropicProjector('VoltageResponse',120); projRadiator = phased.Radiator('Sensor',projector,... 'PropagationSpeed',propSpeed,'OperatingFrequency',OperatingFrequency); beaconPlat = phased.Platform('InitialPosition',[5000; 2000; -199],... 'Velocity',[0; 0; 0]);
Пассивный буксируемый массив
Пассивная буксируемая матрица обнаруживает и локализует источник pings и моделируется как пятиэлементная линейная матрица с интервалом в половину длины волны. Пассивная матрица имеет скорость 1 м/с в направлении y. Ось массива ориентирована параллельно направлению перемещения.
hydrophone = phased.IsotropicHydrophone('VoltageSensitivity',-150); array = phased.ULA('Element',hydrophone,... 'NumElements',5,'ElementSpacing',propSpeed/OperatingFrequency/2,... 'ArrayAxis','y'); arrayCollector = phased.Collector('Sensor',array,... 'PropagationSpeed',propSpeed,'OperatingFrequency',OperatingFrequency); arrayPlat = phased.Platform('InitialPosition',[0; 0; -10],... 'Velocity',[0; 1; 0]);
Определите усилитель приемника для каждого гидрофонного элемента. Выберите коэффициент усиления 20 дБ и показатель шума 10 дБ.
rx = phased.ReceiverPreamp(... 'Gain',20,... 'NoiseFigure',10,... 'SampleRate',fs,... 'SeedSource','Property',... 'Seed',2007);
Активизируйте акустический маяк и передайте десять эхо-сигналов. После задержки распространения ping-сигналы появляются как пики в принятых сигналах матрицы.
x = wav(); numTransmits = 10; rxsig = zeros(size(x,1),5,numTransmits); for i = 1:numTransmits % Update array and acoustic beacon positions [pos_tx,vel_tx] = beaconPlat(1/prf); [pos_rx,vel_rx] = arrayPlat(1/prf); % Compute paths between the acoustic beacon and array [paths,dop,aloss,rcvang,srcang] = ... isopaths(pos_tx,pos_rx,vel_tx,vel_rx,1/prf); % Propagate the acoustic beacon waveform tsig = projRadiator(x,srcang); rsig = channel(tsig,paths,dop,aloss); % Collect the propagated signal rsig = arrayCollector(rsig,rcvang); % Store the received pulses rxsig(:,:,i) = abs(rx(rsig)); end
Постройте график последнего принятого импульса. Из-за множества путей распространения каждый ping представляет собой наложение множества импульсов.
t = (0:length(x)-1)'/fs; plot(t,rxsig(:,end)) xlabel('Time (s)'); ylabel('Signal Amplitude (V)')

Оценить направление прихода акустического маяка относительно матрицы. Создайте объект оценки MUSIC, задав в качестве выхода сигнал одного источника и направление поступления. Используйте сетку углов сканирования с интервалом 0,1 градуса.
musicspatialspect = phased.MUSICEstimator('SensorArray',array,... 'PropagationSpeed',propSpeed,'OperatingFrequency',... OperatingFrequency,'ScanAngles',-90:0.1:90,'DOAOutputPort',true,... 'NumSignalsSource','Property','NumSignals',1);
Затем соберите команды ping еще для 500 интервалов повторения. Оцените направление поступления для каждого интервала повторения и сравните оценки с истинным направлением поступления.
numTransmits = 500; angPassive = zeros(numTransmits,1); angAct = zeros(numTransmits,1); for i = 1:numTransmits % Update array and acoustic beacon positions [pos_tx,vel_tx] = beaconPlat(1/prf); [pos_rx,vel_rx] = arrayPlat(1/prf); % Compute paths between acoustic beacon and the array [paths,dop,aloss,rcvang,srcang] = ... isopaths(pos_tx,pos_rx,vel_tx,vel_rx,1/prf); angAct(i) = rcvang(1,1); % Propagate the acoustic beacon waveform tsig = projRadiator(x,srcang); rsig = channel(tsig,paths,dop,aloss); % Collect the propagated signal rsig = arrayCollector(rsig,rcvang); rxsig = rx(rsig); % Estimate the direction of arrival [~,angPassive(i)] = musicspatialspect(rxsig); end
Постройте график расчетных углов прихода и истинных направлений прихода для каждого интервала повторения импульсов.
plot([angPassive angAct]) xlabel('Pulse Number') ylabel('Arrival angle (degrees)') legend('Estimated DOA','Actual DOA')

Предполагаемые и фактические направления прибытия согласуются в пределах менее одного градуса.
В этом примере передача акустических сигналов связи между маяковым радиомаяком и пассивной решеткой моделируется в мелководном канале. Каждый пинг был получен по десяти акустическим дорожкам. Направление прихода маяка оценивали относительно пассивной матрицы для каждого принятого ping и сравнивали с истинным направлением прихода. Направление прибытия может быть использовано для определения местоположения и восстановления маяка.
Урик, Роберт. Принципы подводного звука. Лос-Альтос, Калифорния: Peninsula Publishing, 1983.