шаг

Системный объект: поэтапный. IsoSpeedUnderwaterPaths
Пакет: поэтапный

Создайте пути к распространению в изоскорости многопутевой звуковой канал

Синтаксис

pathmat = step(channel,srcpos,destpos,srcvel,destvel,T)
[pathmat,dop,aloss,destang,srcang] = step(channel,srcpos,destpos,srcvel,destvel,T)

Описание

Примечание

Вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

пример

pathmat = step(channel,srcpos,destpos,srcvel,destvel,T) возвращает матрицу путей к распространению, pathmat, для многопутевого подводного акустического канала. Матрица описывает один или двухстороннее распространение от исходного положения сигнала, srcpos, к целевой позиции сигнала, destpos. Скорость источника сигнала задана в srcvel, и скорость места назначения сигнала задана в destvel. T является временным интервалом шага.

Когда вы используете этот метод для одностороннего распространения, srcpos относится к источнику сигнала и destpos к получателю. Одностороннее моделирование распространения полезно для пассивного гидролокатора и подводных коммуникаций.

Когда вы используете этот метод для двухстороннего распространения, destpos теперь относится к отражающейся цели, не получателю гидролокатора. Двухсторонний путь состоит из одностороннего пути из источника, чтобы предназначаться и затем вдоль идентичного одностороннего пути с цели на получатель (который расположен с источником). Двухстороннее моделирование распространения полезно для активных систем гидролокатора.

пример

[pathmat,dop,aloss,destang,srcang] = step(channel,srcpos,destpos,srcvel,destvel,T) также возвращает Доплеровский фактор, dop, зависимую потерю поглощения частоты, aloss, углы падения получателя, destang и углы передачи srcang.

Когда вы используете этот метод для двухстороннего распространения, destang теперь относится к отражающейся цели, не получателю гидролокатора.

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства (MATLAB) и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать метод release, чтобы разблокировать объект.

Примечание

Вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Входные параметры

развернуть все

Изоскорость под водой образовывает канал пути, заданные как Системный объект phased.IsoSpeedUnderwaterPaths.

Пример: phased.IsoSpeedUnderwaterPaths

Источник сигнала гидролокатора, заданного как вектор-столбец 3 на 1 с действительным знаком. Модули положения являются метрами.

Пример: [1000;100;500]

Типы данных: double

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

Пример: [0;0;0]

Типы данных: double

Скорость источника сигнала, заданного как вектор-столбец 3 на 1 с действительным знаком. Скоростные единицы исчисляются в метрах в секунду.

Пример: [10;0;5]

Типы данных: double

Скорость места назначения сигнала, заданного как вектор-столбец 3 на 1 с действительным знаком. Скоростные единицы исчисляются в метрах в секунду.

Пример: [0;0;0]

Типы данных: double

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

Пример: 0.1

Типы данных: double

Выходные аргументы

развернуть все

Матрица путей к распространению, возвращенная как 3 с действительным знаком N матрицей. N является количеством путей в канале. Каждый столбец представляет путь. Когда вы устанавливаете NumPathsSource на 'Auto', N равняется 51. В этом случае любые столбцы, заполненные с NaN, не соответствуют найденным путям. Строки матрицы представляют:

СтрокаДанные
1Распространение задерживается для каждого пути. Модули находятся в секундах.
2Общий отражательный коэффициент для каждого пути. Модули являются безразмерными
3Распространение потери для каждого пути. Модули находятся в дБ.

За исключением прямого пути, пути состоят из переменной поверхности и нижних отражений. Потери для нескольких отражений умножаются. Нижняя потеря на отражение задана как свойство BottomLoss. Потерей в поверхности является –1, указывающий ни на какую потерю, но только фазовый переход на 180 °. Это вызвано тем, что водная воздухом интерфейсная поверхность является поверхностью релиза давления.

Типы данных: double

Доплеровский фактор, возвращенный как N с действительным знаком-by-1 вектор - строка, где N является количеством путей. Доплеровский фактор умножает переданную частоту, чтобы произвести переключенную Доплерами полученную частоту для каждого пути. Эффект Доплера задан как различие между переданной частотой и полученной частотой. Доплеровский фактор также задает сжатие времени или расширение сигнала. Модули являются безразмерными.

Типы данных: double

Зависимая частотой потеря поглощения, возвращенная как K с действительным знаком-by-(N+1) матрица. K является количеством частот, заданных в свойстве LossFrequencies. N является количеством возвращенных путей. Первый столбец aloss содержит частоты поглощения потерь в Гц. Вы задаете частоты с помощью свойства LossFrequencies. Остальные столбцы содержат потери поглощения для каждой частоты. Существует один столбец для каждого пути. Модули находятся в дБ.

Типы данных: double

Углы путей в месте назначения, возвращенном как 2 с действительным знаком N матрицей. Каждый столбец содержит направление полученного пути относительно целевой позиции азимута и повышения, [az;el]. Модули в градусах.

Типы данных: double

Углы путей из источника, возвращенного как 2 с действительным знаком N матрицей. Каждый столбец содержит направление переданного пути относительно исходной позиции азимута и повышения, [az;el]. Модули в градусах.

Типы данных: double

Примеры

развернуть все

Создайте подводный звуковой канал с 5 путями и отобразите матрицу пути к распространению. Примите, что источник является стационарным, и получатель проходит ось X к источнику на уровне 20 км/ч. Примите одностороннее распространение.

speed = -20*1000/3600;
numpaths = 5;
channelpaths = phased.IsoSpeedUnderwaterPaths('ChannelDepth',200,'BottomLoss',10, ...
    'NumPathsSource','Property','NumPaths',numpaths,'CoherenceTime',5);
tstep = 1;
srcpos = [0;0;-160];
rcvpos = [500;0;-50];
srcvel = [0;0;0];
rcvvel = [speed;0;0];
pathmat = channelpaths(srcpos,rcvpos,srcvel,rcvvel,tstep);
disp(pathmat)
    0.3356    0.3556    0.4687    0.3507    0.3791
    1.0000   -1.0000   -0.3162    0.3162   -0.3162
   54.1847   54.6850   57.0766   54.5652   55.2388

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

Создайте подводный звуковой канал с 7 путями и отобразите матрицу пути к распространению. Примите, что источник является стационарным, и цель проходит ось X к источнику на уровне 20 км/ч. Примите двухстороннее распространение.

speed = -20*1000/3600;
numpaths = 7;
channelpaths = phased.IsoSpeedUnderwaterPaths('ChannelDepth',200,'BottomLoss',10, ...
    'NumPathsSource','Property','NumPaths',numpaths,'CoherenceTime',5,...
    'TwoWayPropagation',true);
tstep = 1;
srcpos = [0;0;-160];
tgtpos = [500;0;-50];
srcvel = [0;0;0];
tgtvel = [speed;0;0];
[pathmat,dop,aloss,tgtangs,srcangs] = channelpaths(srcpos,tgtpos,srcvel,tgtvel,tstep);
disp(pathmat)
    0.6712    0.7112    0.9374    1.0354    0.7014    0.7581    1.0152
    1.0000    1.0000    0.1000    0.1000    0.1000    0.1000    0.0100
  108.3693  109.3699  114.1531  115.8772  109.1304  110.4775  115.5355

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

Создайте подводный звуковой канал и отобразите пути к распространению, которые найдены автоматически. Примите, что источник является стационарным, и получатель проходит ось X к источнику на уровне 20 км/ч. Примите двухстороннее распространение.

speed = -20*1000/3600;
channelpaths = phased.IsoSpeedUnderwaterPaths('ChannelDepth',200,'BottomLoss',5, ...
    'NumPathsSource','Auto','CoherenceTime',5,'TwoWayPropagation',true);
tstep = 1;
srcpos = [0;0;-160];
tgtpos = [500;0;-50];
srcvel = [0;0;0];
tgtpos = [speed;0;0];
[pathmat,dop,aloss,rcvangs,srcangs] = channelpaths(srcpos,tgtpos,srcvel,tgtpos,tstep);

Отобразите первые 7 столбцов pathmat. Некоторые столбцы заполнены |NaN|s.

disp(pathmat(:,1:7))
    0.2107    0.2107       NaN       NaN       NaN       NaN       NaN
    1.0000    1.0000       NaN       NaN       NaN       NaN       NaN
   88.1753   88.1753       NaN       NaN       NaN       NaN       NaN

Выберите индексы столбца допустимых путей из целой матрицы.

idx = find(~isnan(pathmat(1,:)))
idx = 1×4

     1     2    27    28

Отобразите допустимую информацию о путях.

validpaths = pathmat(:,idx)
validpaths = 3×4

    0.2107    0.2107    0.3159    0.3159
    1.0000    1.0000    0.3162    0.3162
   88.1753   88.1753   95.2131   95.2131

Первая строка содержит задержки в секундах. Вторая строка содержит отраженные коэффициенты нижней части потерь, и третья строка содержит распространяющиеся потери.

Введенный в R2017a