phased.UnderwaterRadiatedNoise

Излучите акустический шум от подводного или поверхностного источника звука

Описание

Поэтапное. Система UnderwaterRadiatedNoise object™ создает источник подводного излученного акустического шума. Источник шума может или быть на поверхности моря или под водой. Излученный шум состоит из двух компонентов: широкополосный шум и тональный шум. Широкополосный шум заполняет целую пропускную способность операционной системы, в то время как тональный шум происходит на дискретных частотах в пропускной способности. В общем случае интенсивность излученного шума зависит от шумового спектра и исходной диаграммы направленности. Объект позволяет вам задать

  • Спектральная форма и уровни широкополосного шума.

  • Частоты и уровни тонов.

  • Диаграмма направленности источника шума.

Чтобы распространить шум с источника на получатель, используйте этот объект с phased.IsoSpeedUnderwaterPaths и phased.MultipathChannel объекты.

Сгенерировать излученный подводный шум:

  1. Создайте phased.UnderwaterRadiatedNoise объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

noiseradiator = phased.UnderwaterRadiatedNoise создает подводный излученный источник шума со значениями свойств по умолчанию.

noiseradiator = phased.UnderwaterRadiatedNoise(Name,Value) создает подводный излученный источник шума с каждым свойством Name установите на заданный Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN). Заключите каждое имя свойства в одинарные кавычки.

Пример: noiseradiator = phased.UnderwaterRadiatedNoise('TonalLevels',[4700 4900 5150],'SampleRate',500,'OperatingFrequency',5000) создает источник шума с тонами в 4,7, 4.9, и 5,15 кГц. Частота дискретизации установлена в 0,5 кГц, и рабочая частота составляет 5 кГц. Уровни широкополосного шума установлены в значения по умолчанию.

Свойства

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

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Количество выходных выборок шума, заданных как положительное целое число.

Пример: 500

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

Частота дискретизации, заданная как положительная скалярная величина. Частота дискретизации вместе с рабочей частотой определяет операционный диапазон частот. Смотрите Диапазоны частот Ввода и вывода для определения операционного диапазона частот. Модули находятся в Гц.

Пример: 2.0e3

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

Сигнал рабочая частота, заданная как положительная скалярная величина. Рабочая частота определяет центр операционного диапазона частот. Смотрите Диапазоны частот Ввода и вывода для определения операционного диапазона частот. Модули находятся в Гц.

Пример: 15.0e3

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

Излученные тональные частоты, заданные как вектор неотрицательных значений. Тональные частоты должны лечь в операционном диапазоне частот. Проигнорированы тональные частоты вне этой полосы. Длина TonalFrequencies вектор должен совпадать с длиной TonalLevels вектор. Модули находятся в Гц. Смотрите Диапазоны частот Ввода и вывода для определения операционного диапазона частот.

Пример: [14900 15010 15200]

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

Излученный тональный уровень шума, заданный как вектор положительных значений. Модули находятся в дБ//1μPa. Длина TonalLevels вектор должен совпадать с длиной TonalFrequencies вектор.

Пример: [50 20 170]

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

Уровень спектра широкополосного шума, заданный как вектор действительных значений. Этот вектор задает шумовой спектр на однородно расположенных с интервалами частотах в полосе операционной системы. Модули находятся в дБ/Гц//1μPa.

Пример: [140 145 145 130]

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

Углы азимута исходных записей диаграммы направленности, заданных как вектор длины-P. Это свойство задает углы азимута столбцов исходной диаграммы направленности, свойства DirectionalPattern. P должен быть больше 2. Модули в градусах.

Пример: [140 145 145 130]

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

Углы вертикального изменения исходных записей диаграммы направленности, заданных как вектор длины-Q. Это свойство задает углы вертикального изменения строк исходной диаграммы направленности, DirectionalPattern. Q должен быть больше 2. Модули в градусах.

Пример: [-45 -30 0 45 30]

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

Исходная диаграмма направленности, заданная как матрица с действительным знаком или массив. Модули находятся в дБ. Допустимые размерности шаблона:

Размерности диаграммы направленности

РазмерностиПриложение
Q-by-P матрицаЗадает направленный шаблон как функцию углов вертикального изменения Q и углов азимута P. Тот же шаблон используется во всех частотах.
Q-by-P-by-K массивЗадает направленный шаблон как функцию углов вертикального изменения Q, углов азимута P и частот K. Если K = 1, направленный шаблон эквивалентен Q-by-P матрица.
1 P K массивомЗадает направленный шаблон как функцию углов азимута P и частот K. Эти размерности применяются, когда существует только один угол вертикального изменения.
K-by-P матрица

  • Q является длиной вектора, заданного свойством ElevationAngles.

  • P является длиной вектора, заданного свойством AzimuthAngles.

  • K является количеством частот, заданных свойством FrequencyVector.

Матрица и спецификации массивов

ПриложениеРазмерности диаграммы направленности
Один источник и направления излучения M заданы в ang аргумент объектной функции.Задайте одну матрицу диаграммы направленности или массив для всех углов излучения.
Источники M с тем же шаблоном и направлениями излучения M заданы в ang аргумент объектной функции.Задайте одну матрицу диаграммы направленности или массив для всех углов излучения.
Источники M с отдельными диаграммами направленности и направлениями излучения M заданы в ang аргумент объектной функции.Диаграммы направленности M в массиве ячеек. Все шаблоны должны иметь те же размеры и типы. Количество шаблонов должно совпадать с количеством исходящих углов.

Пример: [1,3;5,-10]

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

Частоты диаграммы направленности, заданные как положительный, 1 с действительным знаком K вектором. Вектор задает частоты, на которых заданы значения свойств DirectionalPattern. Элементы вектора должны быть в строго увеличивающемся порядке, и частоты должны лечь в операционном диапазоне частот. Смотрите Диапазоны частот Ввода и вывода для определения операционного диапазона частот. Модули находятся в Гц.

Пример: 1e6

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

Источник seed генератора случайных чисел, заданный как 'Auto' или 'Property'. Случайные числа используются, чтобы сгенерировать шум. Когда вы устанавливаете это свойство на 'Auto', случайные числа сгенерированы с помощью генератора случайных чисел MATLAB по умолчанию. Когда вы устанавливаете это свойство на 'Property', объект использует частный генератор случайных чисел с seed, заданным Seed свойство.

Чтобы использовать этот объект с программным обеспечением Parallel Computing Toolbox, установите это свойство на 'Auto'.

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

Seed генератора случайных чисел, заданный как неотрицательное целое число меньше чем 232.

Пример: 10223

Зависимости

Чтобы включить это свойство, установите свойство SeedSource на 'Property'.

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

Использование

Синтаксис

Описание

пример

y = radiatednoise(ang) возвращает шум, y, излученный в направлении, ang.

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

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

Шумовые направления излучения, заданные как 2 с действительным знаком M матрицей. Каждый столбец ang задает направление излучения соответствующего шумового сигнала в форме [AzimuthAngle;ElevationAngle]. Когда ang представляет несколько углов, свойство DirectionalPattern может содержать один шаблон или шаблоны M. В этом случае, каждый столбец ang соответствует одному из шаблонов. Если существует только один шаблон, то несколько шумовых сигналов сгенерированы с помощью того же исходного шаблона. Модули в градусах.

Пример: [0 20; 35 -10]

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

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

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

Излученный шум, заданный как M с комплексным знаком-by-N матрица. M является количеством углов, заданных в ang аргумент. N является количеством выборок, заданных NumSamples свойство. Излученный шум находится в основополосном диапазоне [-fs/2 fs/2]. fs представляет частоту дискретизации, установленную свойством SampleRate. Шумовые модули находятся в Па.

Типы данных: double
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

reset возразите, что функция сбрасывает состояние генератора случайных чисел, когда свойство SeedSource установлено to 'Property'.

Примеры

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

Сгенерируйте излученный шум от надводного судна. Гидролокатор рабочая частота составляет 5,0 кГц и уровень выборки, составляет 1,0 кГц. По определению полоса широкополосного шума лежит в полосе от 4,5 кГц до 5,5 кГц. Кроме того, существуют тональные шумы в 4,6, 5.2, и 5,4 кГц.

shippos = [0;0;0];
rcvpos = [100;0;-50];

Вычислите шумовой угол передачи с поставки на получатель.

[~,ang] = rangeangle(rcvpos,shippos)
ang = 2×1

         0
  -26.5651

Создайте phased.UnderwaterRadiatedNoise Система object™ наличие диаграммы направленности, которая зависит только от угла вертикального изменения. Вычислите шум, излученный в направлении получателя. Создайте 10 000 выборок шума, излученного к цели.

azang = [-180:180];
elang = [-80:80];
pattern = mag2db(repmat(cosd(elang)',1,numel(azang)));
fs = 1000;
noiseradiator = phased.UnderwaterRadiatedNoise('NumSamples',10000, ...
    'SampleRate',fs,'TonalFrequencies',[4600 5200 5400],'TonalLevels',[200,200,200], ...
    'BroadbandLevels',[180 180 190 190 190 188 185],'AzimuthAngles',azang, ...
    'ElevationAngles',elang,'DirectionalPattern',pattern, ...
    'OperatingFrequency',5e3,'SeedSource','Property','Seed',2781);

Сгенерируйте 10 000 выборок шума.

y = noiseradiator(ang);

Постройте шумовую степень спектральная плотность (psd). Преобразуйте psd в интенсивность, на которую ссылаются к 1uPa.

[psd,fr] = pwelch(y,[],[],[],noiseradiator.SampleRate,'psd','centered');
plot(fr,10*log10(psd*1e12));
title('Power Spectral Density')
xlabel('frequency (Hz)')
ylabel('PSD //dB/Hz/1uPa')
grid

Три тона появляются по широкополосному спектру.

Сгенерируйте излученный шум от подводного транспортного средства. Примите, что шумовая диаграмма направленности зависит от частоты. Гидролокатор рабочая частота составляет 5,0 кГц и уровень выборки, составляет 1,0 кГц. По определению полоса широкополосного шума от 4,5 кГц до 5,5 кГц. Кроме того, существуют тональные шумы в 4,6, 5.2, и 5,3 кГц. Задайте диаграмму направленности на трех частотах в этой полосе. Все три шаблона являются множителями основного шаблона. Частоты диаграмм направленности составляют 4,6 кГц, 5,0 кГц и 5,3 кГц.

Во-первых, задайте положения получателя и источник.

srcpos = [0;50;-20];
rcvpos = [100;0;-50];

Вычислите шумовой угол передачи с транспортного средства на получатель.

[~,ang] = rangeangle(rcvpos,srcpos)
ang = 2×1

  -26.5651
  -15.0203

Создайте phased.UnderwaterRadiatedNoise Система object™ с диаграммой направленности, которая зависит только угол азимута и частота. Вычислите шум, излученный в направлении получателя. Создайте 10 000 выборок шума, излученного от транспортного средства.

azang = [-180:180];
elang = [-90:90];
fc = 5000.0;

Поместите диаграмму направленности в 3D массив.

basepattern = repmat(10*cosd(azang).^2,numel(elang),1);
pattern(:,:,1) = 0.5*basepattern;
pattern(:,:,2) = basepattern;
pattern(:,:,3) = 0.6*basepattern;
patterndb = mag2db(pattern);
noiseradiator = phased.UnderwaterRadiatedNoise('NumSamples',10000, ...
    'SampleRate',1e3,'TonalFrequencies',[4600,5200 5300], ...
    'TonalLevels',[200,210,200],'BroadbandLevels',[180 180 190 190 190 180 170], ...
    'AzimuthAngles',azang,'ElevationAngles',elang, ...
    'FrequencyVector',[4600,5000,5300],'DirectionalPattern',pattern, ...
    'OperatingFrequency',5e3,'SeedSource','Property','Seed',2081);

Сгенерируйте 10 000 выборок шума.

y = noiseradiator(ang);

Постройте шумовую степень спектральная плотность (psd). Преобразуйте psd в интенсивность, на которую ссылаются к 1uPa.

[psd,fr] = pwelch(y,[],[],[],noiseradiator.SampleRate,'psd','centered');
plot(fr,10*log10(psd*1e12));
title('Power Spectral Density')
xlabel('frequency (Hz)')
ylabel('PSD //dB/Hz/1uPa')
grid

Три тона появляются по широкополосному спектру.

Сгенерируйте излученный шум от двух подводные транспортные средства. Примите, что шумовая диаграмма направленности отличается для каждого. Гидролокатор рабочая частота составляет 5,0 кГц и уровень выборки, составляет 1,0 кГц. По определению полоса широкополосного шума от 4,5 кГц до 5,5 кГц. Кроме того, существуют тональные шумы в 4,6, 5.2, и 5,3 кГц. Частоты диаграмм направленности составляют 4,6 кГц, 5,0 кГц и 5,3 кГц.

Во-первых, задайте положения получателя и источник.

srcpos1 = [0;50;-20];
srcpos2 = [200;50;-80];
rcvpos = [100;0;-50];

Вычислите шумовой угол передачи с транспортного средства на получатель.

[~,ang1] = rangeangle(rcvpos,srcpos1);
[~,ang2] = rangeangle(rcvpos,srcpos2);

Создайте phased.UnderwaterRadiatedNoise Система object™ с диаграммой направленности, которая зависит только угол азимута и частота. Вычислите шум, излученный в направлении получателя. Создайте 10 000 выборок шума, излученного от транспортного средства.

azang = [-180:180];
elang = [-90:90];
fc = 5000.0;

Поместите диаграмму направленности в 3D массив.

pattern1 = repmat(10*cosd(azang).^2,numel(elang),1);
pattern2 = ones(181,361);
pattern1db = mag2db(pattern1);
pattern2db = mag2db(pattern2);
noiseradiator = phased.UnderwaterRadiatedNoise('NumSamples',10000, ...
    'SampleRate',1e3,'TonalFrequencies',[4600,5200 5300], ...
    'TonalLevels',[200,210,200],'BroadbandLevels',[180 180 190 190 190 180 170], ...
    'AzimuthAngles',azang,'ElevationAngles',elang, ...
    'FrequencyVector',[4600,5000,5300],'DirectionalPattern',{pattern1,pattern2}, ...
    'OperatingFrequency',5e3,'SeedSource','Property','Seed',2081);

Сгенерируйте 10 000 выборок шума.

y = noiseradiator([ang1,ang2]);

Постройте шумовую степень спектральная плотность (psd). Преобразуйте psd в интенсивность, на которую ссылаются к 1uPa.

[psd,fr] = pwelch(y,[],[],[],noiseradiator.SampleRate,'psd','centered');
plot(fr,10*log10(psd*1e12));
title('Power Spectral Density')
xlabel('frequency (Hz)')
ylabel('PSD //dB/Hz/1uPa')
grid

Три тона появляются по широкополосному спектру.

Больше о

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

Ссылки

[1] Urick, R.J. Принципы подводного звукового, 3-го выпуска. Нью-Йорк: Peninsula Publishing, 1996.

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

Введенный в R2017b