Обнаружение подводных целей с помощью активной гидроакустической системы

Этот пример показывает, как симулировать активный моностатический гидроакустический сценарий с двумя целями. Гидроакустическая система состоит из массива изотропных проекторов и единственного гидрофонного элемента. Массив проекторов имеет сферическую форму. Сигналы обратного рассеяния принимаются гидрофоном. Принятые сигналы включают в себя как прямые, так и многолучевые вклады.

Подводное окружение

Несколько путей распространения присутствуют между источником звука и мишенью в мелководном окружении. В этом примере пять путей приняты в канале глубиной 100 метров и постоянной скоростью звука 1520 м/с. Используйте нижнюю потерю 0,5 дБ в порядок, чтобы выделить эффекты нескольких путей.

Определите свойства подводного окружения, включая глубину канала, количество путей распространения, скорость распространения и нижние потери.

numPaths = 5;
propSpeed = 1520;
channelDepth = 100;

isopath{1} = phased.IsoSpeedUnderwaterPaths(...
          'ChannelDepth',channelDepth,...
          'NumPathsSource','Property',...
          'NumPaths',numPaths,...
          'PropagationSpeed',propSpeed,...
          'BottomLoss',0.5,...
          'TwoWayPropagation',true);

isopath{2} = phased.IsoSpeedUnderwaterPaths(...
          'ChannelDepth',channelDepth,...
          'NumPathsSource','Property',...
          'NumPaths',numPaths,...
          'PropagationSpeed',propSpeed,...
          'BottomLoss',0.5,...
          'TwoWayPropagation',true);

Затем создайте многолучевой канал для каждого целевого объекта. Многолучевой канал распространяет форму волны вдоль нескольких путей. Этот двухэтапный процесс аналогичен разработке фильтра и использованию результирующих коэффициентов для фильтрации сигнала.

fc = 20e3;   % Operating frequency (Hz)

channel{1} = phased.MultipathChannel(...
          'OperatingFrequency',fc);

channel{2} = phased.MultipathChannel(...
          'OperatingFrequency',fc);

Гидроакустические цели

Сценарий имеет две цели. Первая цель является более отдаленной, но имеет большую прочность цели, а вторая - ближе, но имеет меньшую прочность цели. Обе цели являются изотропными и стационарными относительно гидроакустической системы.

tgt{1} = phased.BackscatterSonarTarget(...
    'TSPattern',-5*ones(181,361));

tgt{2} = phased.BackscatterSonarTarget(...
    'TSPattern',-15*ones(181,361));

tgtplat{1} = phased.Platform(...
    'InitialPosition',[500; 1000; -70],'Velocity',[0; 0; 0]);

tgtplat{2} = phased.Platform(...
    'InitialPosition',[500; 0; -40],'Velocity',[0; 0; 0]);

Целевые положения вместе со свойствами канала определяют подводные пути, по которым распространяются сигналы. Постройте график путей между гидроакустической системой и каждой целью. Обратите внимание, что z-координата определяет глубину, с нулем, соответствующим верхней поверхности канала, и расстояние в плоскости x-y строится как область значений между источником и целью.

helperPlotPaths([0;0;-60],[500 500; 1000 0; -70 -40], ...
  channelDepth,numPaths)

Передатчик и приемник

Переданная Форма Волны

Затем задайте прямоугольную форму волны для передачи к целям. Максимальная целевая область значений и желаемое разрешение области значений определяют свойства формы волны.

maxRange = 5000;                         % Maximum unambiguous range
rangeRes = 10;                           % Required range resolution
prf = propSpeed/(2*maxRange);            % Pulse repetition frequency
pulse_width = 2*rangeRes/propSpeed;      % Pulse width
pulse_bw = 1/pulse_width;                % Pulse bandwidth
fs = 2*pulse_bw;                         % Sampling rate
wav = phased.RectangularWaveform(...
    'PulseWidth',pulse_width,...
    'PRF',prf,...
    'SampleRate',fs);

Обновите скорость дискретизации многолучевого канала со скоростью выборки переданной формы волны.

channel{1}.SampleRate = fs;
channel{2}.SampleRate = fs;

Передатчик

Передатчик состоит из полусферического массива изотропных элементов с обратной перегородкой. Передатчик расположен на 60 метров ниже поверхности. Создайте массив и просмотрите геометрию массива.

plat = phased.Platform(...
    'InitialPosition',[0; 0; -60],...
    'Velocity',[0; 0; 0]);

proj = phased.IsotropicProjector(...
    'FrequencyRange',[0 30e3],'VoltageResponse',80,'BackBaffled',true);

[ElementPosition,ElementNormal] = helperSphericalProjector(8,fc,propSpeed);

projArray = phased.ConformalArray(...
    'ElementPosition',ElementPosition,...
    'ElementNormal',ElementNormal,'Element',proj);

viewArray(projArray,'ShowNormals',true);

Просмотрите шаблон в нулевых степенях по повышению. Направленность показывает peaks в азимуте, соответствующем азимутальному положению элементов массива.

pattern(projArray,fc,-180:180,0,'CoordinateSystem','polar',...
      'PropagationSpeed',propSpeed);

Приемник

Приемник состоит из гидрофона и усилителя. Гидрофон является одним изотропным элементом и имеет частотную область значений от 0 до 30 кГц, который содержит рабочую частоту многолучевого канала. Задайте чувствительность напряжения гидрофона как -140 дБ.

hydro = phased.IsotropicHydrophone(...
    'FrequencyRange',[0 30e3],'VoltageSensitivity',-140);

Тепловой шум присутствует в принимаемом сигнале. Предположим, что приемник имеет 20 дБ усиления и рисунок шума в 10 дБ.

rx = phased.ReceiverPreamp(...
    'Gain',20,...
    'NoiseFigure',10,...
    'SampleRate',fs,...
    'SeedSource','Property',...
    'Seed',2007);

Излучатель и коллектор

В активной гидроакустической системе акустическая волна распространяется на цель, рассеивается мишенью и принимается гидрофоном. Излучатель генерирует пространственную зависимость распространенной волны из-за геометрии массива. Аналогично, коллектор объединяет обратные рассеянные сигналы, принимаемые гидрофонным элементом от цели дальнего поля.

radiator = phased.Radiator('Sensor',projArray,'OperatingFrequency',...
 fc,'PropagationSpeed',propSpeed);

collector = phased.Collector('Sensor',hydro,'OperatingFrequency',fc,...
  'PropagationSpeed',propSpeed);

Системная симуляция

Затем передайте прямоугольную форму волны в течение десяти интервалов повторения и моделируйте сигнал, принятый в гидрофоне для каждой передачи.

x = wav();    % Generate pulse
xmits = 10;
rx_pulses = zeros(size(x,1),xmits);
t = (0:size(x,1)-1)/fs;

for j = 1:xmits

    % Update target and sonar position
    [sonar_pos,sonar_vel] = plat(1/prf);

    for i = 1:2 %Loop over targets
       [tgt_pos,tgt_vel] = tgtplat{i}(1/prf);

      % Compute transmission paths using the method of images. Paths are
      % updated according to the CoherenceTime property.
      [paths,dop,aloss,tgtAng,srcAng] = isopath{i}(...
            sonar_pos,tgt_pos,...
            sonar_vel,tgt_vel,1/prf);

      % Compute the radiated signals. Steer the array towards the target.
      tsig = radiator(x,srcAng);

      % Propagate radiated signals through the channel.
      tsig = channel{i}(tsig,paths,dop,aloss);

      % Target
      tsig = tgt{i}(tsig,tgtAng);

      % Collector
      rsig = collector(tsig,srcAng);
      rx_pulses(:,j) = rx_pulses(:,j) + ...
               rx(rsig);
    end
end

Постройте график величины некогерентного интегрирования принятых сигналов, чтобы определить местоположение возвратов двух целей.

figure
rx_pulses = pulsint(rx_pulses,'noncoherent');
plot(t,abs(rx_pulses))
grid on
xlabel('Time (s)')
ylabel('Amplitude (V)')
title('Integrated Received Pulses')

Цели, которые разделены на относительно большие расстояния, появляются как отдельные возвраты. Изменение масштаба при первом возврате.

xlim([0.55 0.85])

Целевой возврат является суперпозицией импульсов из нескольких путей распространения, что приводит к нескольким пикам для каждой цели. Полученный peaks могут быть неверно истолкованы как дополнительные цели.

Активный гидролокатор с Bellhop

В предыдущем разделе скорость звука была постоянной как функция от глубины канала. Напротив, программа трассировки лучей, подобная Bellhop, может генерировать акустические пути для пространственно изменяющихся профилей скорости звука. Можно использовать информацию о пути, сгенерированную Bellhop, для распространения сигналов через многолучевой канал. Симулируйте передачу между изотропным проектором и изотропным гидрофоном в окружении без цели с профилем скорости звука 'Munk'. Информация о пути содержится в файле прибытия Bellhop (MunkB_eigenray_Arr.arr).

Строение Bellhop

В этом примере глубина канала составляет 5 000 метров. Источник расположен на глубине 1000 метров и приемник расположен на глубине 800 метров. Их разделяют 100 километров по области значений. Импортируйте и постройте график путей, вычисленных Bellhop.

[paths,dop,aloss,rcvAng,srcAng] = helperBellhopArrivals(fc,6,false);
helperPlotPaths('MunkB_eigenray')

Для этого сценария существуют два прямых пути без отражений интерфейса и восемь путей с отражениями на верхней и нижней поверхностях. Скорость звука в канале самая низкая на глубине приблизительно 1250 метров, и увеличивается к верхней и нижней части канала, максимум до 1550 метров/секунду.

Создайте новый канал и приемник для использования с данными от Bellhop.

release(collector)
channelBellhop = phased.MultipathChannel(...
          'SampleRate',fs,...
          'OperatingFrequency',fc);

rx = phased.ReceiverPreamp(...
    'Gain',10,...
    'NoiseFigure',10,...
    'SampleRate',fs,...
    'SeedSource','Property',...
    'Seed',2007);

Задайте импульс для нового строения задачи.

maxRange = 150000;                        % Maximum unambiguous range
prf = propSpeed/(maxRange);               % Pulse repetition frequency
pulse_width = 0.02;
wav = phased.RectangularWaveform(...
    'PulseWidth',pulse_width,...
    'PRF',prf,...
    'SampleRate',fs);

Симуляция Белльхопа

Затем моделируйте передачу десяти импульсов от передатчика к приемнику.

x = repmat(wav(),1,size(paths,2));
xmits = 10;
rx_pulses = zeros(size(x,1),xmits);
t = (0:size(x,1)-1)/fs;

for j = 1:xmits

      % Projector
      tsig = x.*proj(fc,srcAng)';

      % Propagate radiated signals through the channel.
      tsig = channelBellhop(tsig,paths,dop,aloss);

      % Collector
      rsig = collector(tsig,rcvAng);
      rx_pulses(:,j) = rx_pulses(:,j) + ...
               rx(rsig);
end

Постройте график некогерентного интегрирования переданных импульсов.

figure
rx_pulses = pulsint(rx_pulses,'noncoherent');
plot(t,abs(rx_pulses))
grid on
xlim([66 70])
xlabel('Time (s)')
ylabel('Amplitude (V)')
title('Integrated Received Pulses')

Переданные импульсы появляются как peaks в отклике. Обратите внимание, что два прямых пути, которые не имеют отражений интерфейса, приходят первыми и имеют самую высокую амплитуду. При сравнении принятых импульсов прямого пути второй импульс, который должен прибыть, имеет более высокую амплитуду из этих двух, что указывает на более короткое расстояние распространения. Более длительное время задержки для более короткого пути может быть объяснено тем, что он распространяется через самую медленную часть канала. Остальные импульсы имеют уменьшенную амплитуду по сравнению с прямыми путями из-за нескольких отражений на дне канала, каждый из которых способствует потере.

Сводные данные

В этом примере акустические импульсы передавались и принимались в мелководных и глубоководных окружениях. Используя прямоугольную форму волны, активная гидроакустическая система обнаружила две хорошо разделенные цели на мелководье. Наличие нескольких путей было очевидно в принятом сигнале. Затем импульсы передавались между проектором и гидрофоном на глубокой воде с профилем скорости звука 'Munk' с помощью путей, сгенерированных Bellhop. Было отмечено влияние пространственно изменяющейся скорости звука.

Ссылка

Урик, Роберт. Принципы подводного звука. Los Altos, Калифорния: Peninsue Publishing, 1983.