exponenta event banner

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

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

Подводная среда

Между источником звука и мишенью в мелководной среде имеется множество путей распространения. В этом примере предполагается пять путей в канале глубиной 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);

Цели Sonar

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

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);

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

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);

Моделирование системы Sonar

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

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])

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

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

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

Конфигурация Bellhop

В этом примере канал имеет глубину 5000 метров. Источник расположен на глубине 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);

Моделирование Bellhop

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

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')

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

Резюме

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

Ссылка

Урик, Роберт. Принципы подводного звука. Лос-Альтос, Калифорния: Peninsula Publishing, 1983.