phased.UnderwaterRadiatedNoise

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

Описание

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

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

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

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

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

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

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

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

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

Создание

Описание

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 Используя Системные объекты.

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

Пример: 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