value

Класс: tsSignature

Целевая сила под заданным углом и частотой

Описание

пример

tsval = value(tssig,az,el,freq) возвращает значение, tsval, из целевой силы, заданной целевым объектом подписи силы, tssig, вычисленный в азимуте az, вертикальное изменение el, и частота freq.

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

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

Целевая подпись силы, заданная как tsSignature объект.

Угол азимута, заданный как скаляр или длина-M вектор с действительным знаком. Модули в градусах. az, el, и freq аргументы должны иметь тот же размер. Можно, однако, задать один или два аргумента как скаляры, в этом случае аргументы расширены до длины-M.

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

Угол вертикального изменения, заданный как скаляр или длина-M вектор с действительным знаком. az, el, и freq аргументы должны иметь тот же размер. Можно, однако, задать один или два аргумента как скаляры, в этом случае аргументы расширены до длины-M. Модули в градусах.

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

Частота TS, заданная как положительная скалярная величина или вектор длины-M с положительными, действительными элементами. az, el, и freq аргументы должны иметь тот же размер. Можно, однако, задать один или два аргумента как скаляры, в этом случае аргументы расширены до длины-M. Модули находятся в Герц.

Пример: 20e3

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

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

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

Целевая сила, возвращенная как скалярный или вектор длины-M с действительным знаком. Модули находятся в dBsm.

Примеры

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

Задайте целевую силу (TS) твердого цилиндра 5 м длиной, погруженного в воду, и постройте значения TS вдоль сокращения азимута. Примите приближение короткой длины волны. Цилиндрический радиус составляет 2 м. Скорость звука составляет 1 520 м/с.

L = 5;
a = 2;

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

lambda = [0.12, .1];
c = 1520.0;
az = [-20:0.1:20];
el = [-10:0.1:10];
ts1 = ts_cylinder(L,a,az,el,lambda(1));
ts2 = ts_cylinder(L,a,az,el,lambda(2));
tsdb1 = 10*log10(ts1);
tsdb2 = 10*log10(ts2);
imagesc(az,el,tsdb1)
title('Target Strength')
xlabel('Azimuth (deg)')
ylabel('Elevation (deg)')
colorbar

Создайте tsSignature возразите и постройте сокращение вертикального изменения в 30 азимут.

tsdb(:,:,1) = tsdb1;
tsdb(:,:,2) = tsdb2;
freq = c./lambda;
tssig = tsSignature('Pattern',tsdb,'Azimuth',az,'Elevation',el,'Frequency',freq);
ts = value(tssig,30,el,freq(1));
plot(el,tsdb1)
grid
title('Elevation Profile of Target Strength')
xlabel('Elevation (deg)')
ylabel('TS (dBsm)')

function ts = ts_cylinder(L,a,az,el,lambda)
k = 2*pi/lambda;
beta = k*L*sind(el')*ones(size(az));
gamma = cosd(el')*ones(size(az));
ts = a*L^2*(sinc(beta).^2).*gamma.^2/2/lambda;
ts = max(ts,10^(-5));
end

function s = sinc(theta)
s = ones(size(theta));
idx = (abs(theta) <= 1e-2);
s(idx) = 1 - 1/6*(theta(idx)).^2;
s(~idx) = sin(theta(~idx))./theta(~idx);
end

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018b