step

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

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

Описание

Примечание

Вместо использования 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 теперь относится к отражающей цели, а не гидроакустическому приемнику.

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует нетронутые свойства и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете свойство nontunable или спецификацию входа, системный объект выдает ошибку. Чтобы изменить нетронутые свойства или входы, необходимо сначала вызвать 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

Допплеровский множитель, возвращенный как вектор-на 1 строку N, где 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