Измерьте уровень звукового давления звукового сигнала
Система splMeter object™ вычисляет измерения уровня звукового давления. Объект возвращает измерения для:
взвешенные частотой уровни звука
быстро или медленные взвешенные временем уровни звука
эквивалентно-непрерывные уровни звука
пиковые уровни звука
максимальные уровни звука

Реализовывать измерение SPL:
Создайте объект splMeter и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
SPL = splMeterSPL = splMeter(Name,Value)SPL = splMeter создает Системный объект, SPL, который выполняет измерение SPL.
SPL = splMeter( наборы каждое свойство Name,Value)Name к заданному Value. Незаданные свойства имеют значения по умолчанию.
SPL = splMeter('FrequencyWeighting','C-weighting','SampleRate',12000) создает Системный объект, SPL, который выполняет C-взвешивание и действует на уровне 12 кГц.Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).
Пропускная способность Ширина аналитических полос'Full band' (значение по умолчанию) | '1 octave' | '2/3 octave' | '1/3 octave'Ширина аналитических полос, заданных как 'Full band', '1 octave', '2/3 octave' или '1/3 octave'. Если Bandwidth задан как 'Full band', метр SPL возвращает один набор измерений для целого диапазона частот. Если Bandwidth задан как '1 octave', '2/3 octave' или '1/3 octave', метр SPL возвращает один набор измерений на полосу дробной октавы или октаву.
Настраиваемый: нет
Типы данных: char | string
OctaveFilterOrder — Порядок фильтра октавы2 (значение по умолчанию) | даже целое числоПорядок фильтра октавы, заданного как ровное целое число.
Настраиваемый: нет
Чтобы включить это свойство, установите Пропускную способность на '1 octave', '2/3 octave' или '1/3 octave'.
Типы данных: single | double
FrequencyWeighting — Взвешивание частоты применяется к входному'A-weighting' (значение по умолчанию) | 'C-weighting' | 'Z-weighting' (никакое взвешивание)Взвешивание частоты применялось к входному, заданному как 'A-weighting', 'C-weighting' или 'Z-weighting', где Z-взвешивание не соответствует никакому взвешиванию. Взвешивание частоты разработано и реализовало использование Системного объекта weightingFilter.
Настраиваемый: нет
Типы данных: char | string
TimeWeighting — Взвешивание (взвешивания) времени'Fast' (значение по умолчанию) | 'Slow'Время взвесив, в секундах, для вычисления взвешенного временем уровня звука и максимума взвешенный временем уровень звука, заданный как 'Fast' или 'Slow'. Свойство TimeWeighting используется, чтобы задать коэффициент фильтра lowpass.
'Fast' – 1/8
'Slow' – 1
Настраиваемый: да
Типы данных: char | string
PressureReference — Ссылочное давление для вычислений дБ (Pa)2e-5 (значение по умолчанию) | положительная скалярная величинаСсылочное давление для вычислений дБ в Pa, заданном как положительная скалярная величина.
Настраиваемый: да
Типы данных: single | double
TimeInterval — Временной интервал для создания отчетов об измерениях (измерениях) уровня1 (значение по умолчанию) | положительная скалярная величинаВременной интервал, в секундах, чтобы сообщить об эквивалентно-непрерывных, пиковых, и максимальных взвешенных временем уровнях звука, заданных как положительное скалярное целое число.
Настраиваемый: нет
Типы данных: single | double
CalibrationFactor — Скалярный калибровочный фактор умножается на входСкалярный калибровочный фактор умножается на вход.
Чтобы установить калибровочный фактор использование ссылочного тона, используйте calibrate.
Настраиваемый: нет
Типы данных: single | double
SampleRate — Введите частоту дискретизации (Гц)44100 (значение по умолчанию) | положительная скалярная величинаВведите частоту дискретизации в Гц, заданном как положительная скалярная величина.
Настраиваемый: нет
Типы данных: single | double
[Lt,Leq,Lpeak,Lmax]
= SPL(audioIn)audioIn — Аудиовход к метру SPLАудиовход к метру SPL, заданному как вектор-столбец или матрица. Столбцы матрицы обработаны как независимые звуковые каналы.
Типы данных: single | double
< Взвешенный временем уровень звука (дБ)Взвешенный временем уровень звука в дБ, возвращенном как вектор-столбец, матрица или трехмерный массив тот же тип как audioIn.
Размер и интерпретация выходных параметров зависят от того, во что установлено свойство Bandwidth:
'Full band' (значение по умолчанию) – Lt, Leq, Lpeak и Lmax возвращены как вектор-столбцы или матрицы тот же размер как audioIn.
'1 octave', '2/3 octave' или '1/3 octave' – Lt, Leq, Lpeak и Lmax возвращены как L-by-B-by-C массивы.
L Количество строк в audioIn
B Количество полос октавы
C Количество столбцов в audioIn
Типы данных: single | double
Leq — Эквивалентно-непрерывный уровень звука (дБ)Эквивалентно-непрерывный уровень звука в дБ, возвращенном как вектор-столбец, матрица или трехмерный массив тот же тип как audioIn.
Размер и интерпретация выходных параметров зависят от того, во что установлено свойство Bandwidth:
'Full band' (значение по умолчанию) – Lt, Leq, Lpeak и Lmax возвращены как вектор-столбцы или матрицы тот же размер как audioIn.
'1 octave', '2/3 octave' или '1/3 octave' – Lt, Leq, Lpeak и Lmax возвращены как L-by-B-by-C массивы.
L Количество строк в audioIn
B Количество полос октавы
C Количество столбцов в audioIn
Типы данных: single | double
Lpeak — Пиковый уровень звука (дБ)Пиковый уровень звука в дБ, возвращенном как вектор-столбец, матрица или трехмерный массив тот же тип как audioIn.
Размер и интерпретация выходных параметров зависят от того, во что установлено свойство Bandwidth:
'Full band' (значение по умолчанию) – Lt, Leq, Lpeak и Lmax возвращены как вектор-столбцы или матрицы тот же размер как audioIn.
'1 octave', '2/3 octave' или '1/3 octave' – Lt, Leq, Lpeak и Lmax возвращены как L-by-B-by-C массивы.
L Количество строк в audioIn
B Количество полос октавы
C Количество столбцов в audioIn
Типы данных: single | double
Lmax — Максимум взвешенный временем уровень звука (дБ)Максимум взвешенный временем уровень звука в дБ, возвращенном как вектор-столбец, матрица или трехмерный массив тот же тип как audioIn.
Размер и интерпретация выходных параметров зависят от того, во что установлено свойство Bandwidth:
'Full band' (значение по умолчанию) – Lt, Leq, Lpeak и Lmax возвращены как вектор-столбцы или матрицы тот же размер как audioIn.
'1 octave', '2/3 octave' или '1/3 octave' – Lt, Leq, Lpeak и Lmax возвращены как L-by-B-by-C массивы.
L Количество строк в audioIn
B Количество полос октавы
C Количество столбцов в audioIn
Типы данных: single | double
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
calibrate | Калибруйте метр с помощью калибровочного тона с известным уровнем |
getCenterFrequencies | Центральные частоты фильтров |
Используйте Систему splMeter object™, чтобы измерить уровень звукового давления A-weighted сигнала передачи потокового аудио. Задайте двухсекундный временной интервал для создания отчетов и быстрого взвешивания времени. Визуализируйте измерения SPL с помощью Системного объекта dsp.TimeScope.
Создайте объект dsp.AudioFileReader читать в кадре звукового файла кадром. Создайте объект audioDeviceWriter слушать звуковой сигнал. Создайте объект dsp.TimeScope визуализировать измерения SPL. Создайте splMeter, чтобы измерить уровень звукового давления звукового файла. Используйте калибровочный фактор по умолчанию 1.
source = dsp.AudioFileReader('Ambiance-16-44p1-mono-12secs.wav'); fs = source.SampleRate; player = audioDeviceWriter('SampleRate',fs); scope = dsp.TimeScope('SampleRate',fs, ... 'TimeSpanOverrunAction','Scroll', ... 'TimeSpan',3,'ShowGrid',true, ... 'YLimits',[20 110],'AxesScaling','Auto', ... 'ShowLegend',true,'BufferLength',4*3*fs, ... 'ChannelNames', ... {'Lt_AF','Leq_A','Lpeak_A','Lmax_AF'}, ... 'Name','Sound Pressure Level Meter'); SPL = splMeter('TimeWeighting','Fast', ... 'FrequencyWeighting','A-weighting', ... 'SampleRate',fs, ... 'TimeInterval',2);
В цикле аудиопотока:
Читайте в кадре звукового сигнала.
Проигрывайте звуковой сигнал к своему устройству вывода.
Вызовите метр SPL, чтобы возвратить взвешенные временем, эквивалентно-непрерывные, пиковые, и максимальные взвешенные временем уровни звука в дБ.
Отобразите уровни звука с помощью осциллографа.
Как лучшая практика, выпустите свои объекты однажды завершенный.
while ~isDone(source) x = source(); player(x); [Lt,Leq,Lpeak,Lmax] = SPL(x); scope([Lt,Leq,Lpeak,Lmax]) end release(source) release(player) release(SPL) release(scope)

splMeter позволяет вам контролировать уровень звукового давления для полос дробной октавы и октавы. В этом примере вы контролируете эквивалентно-непрерывный уровень звукового давления 1/3-octave полос.
Создайте объект dsp.AudioFileReader читать в кадре звукового файла кадром. Создайте объект audioDeviceWriter, таким образом, можно слушать звуковой сигнал. Создайте splMeter, чтобы измерить уровень звукового давления октавы звукового файла. Используйте калибровочный фактор по умолчанию 1. Создайте объект dsp.ArrayPlot визуализировать эквивалентно-непрерывный SPL для каждой полосы октавы.
source = dsp.AudioFileReader('JetAirplane-16-11p025-mono-16secs.wav'); fs = source.SampleRate; player = audioDeviceWriter('SampleRate',fs); SPL = splMeter( ... 'Bandwidth','1/3 octave', ... 'SampleRate',fs); centerFrequencies = getCenterFrequencies(SPL); scope = dsp.ArrayPlot(... 'XDataMode','Custom', ... 'CustomXData',centerFrequencies, ... 'XLabel','Octave Band Center Frequencies (Hz)', ... 'YLabel','Equivalent-Continuous Sound Level (dB)', ... 'YLimits',[20 90], ... 'ShowGrid',true, ... 'Name','Sound Pressure Level Meter');
В цикле аудиопотока:
Читайте в кадре звукового сигнала.
Проигрывайте звуковой сигнал к своему устройству вывода.
Вызовите метр SPL, чтобы возвратить эквивалентно-непрерывный уровень звукового давления в дБ.
Отобразите уровни звука с помощью осциллографа. Обновите осциллограф только, когда эквивалентно-непрерывный уровень звукового давления изменится.
Как лучшая практика, выпустите свои объекты однажды завершенный.
LeqPrevious = zeros(size(centerFrequencies)); while ~isDone(source) x = source(); player(x); [~,Leq] = SPL(x); for i = 1:size(Leq,1) if LeqPrevious ~= Leq(i,:) scope(Leq(i,:)') LeqPrevious = Leq(i,:); end end end release(source) release(player) release(SPL) release(scope)

Вычисления уровня звукового давления следуют алгоритмам, описанным в [1]. Можно задать значения свойств, чтобы соответствовать стандартам [2] и [3].
Чтобы составлять эффекты экологического и устройства ввода данных в измерениях SPL, аудиовход умножается на калибровочный фактор:
Свойство CalibrationFactor может быть установлено непосредственно, или при помощи функции calibrate, которая сравнивает известный уровень с полученными данными. Известный уровень определяется с помощью физического калибратора.
A-, C-или взвешивание Z-частоты применяются. Взвешивание частоты реализовано с помощью Системного объекта weightingFilter.
Если вы задаете свойство Bandwidth как '1 octave', '2/3 octave' или '1/3 octave', то вычисления SPL применяются к каждой октаве или полосе дробной октавы. Эти аналитические полосы определяются после взвешивания частоты.
Взвешенный временем уровень звука задан как отношение взвешенного временем корневого среднеквадратического звукового давления к ссылочному звуковому давлению, преобразованному в дБ. Таким образом,
h (y 2) может быть интерпретирован как свертка y 2 с фильтром с импульсным ответом . y является вывод взвешивающего частоту фильтра. Импульсный ответ соответствует lowpass фильтру формы . Используя импульсную инвариантность, дискретный фильтр может быть интерпретирован как,
τ задан взвешивающим время коэффициентом как 0,125 (если TimeWeighting установлен в 'Fast'), или 1 (если TimeWeighting установлен to'Slow').
fs является частотой дискретизации, заданной свойством SampleRate.
Эквивалентно-непрерывный уровень звука также называется средним во времени уровнем звука. Это задано как отношение корневого среднеквадратического звукового давления к ссылочному звуковому давлению, преобразованному в дБ. Таким образом,
где
y является вывод взвешивающего частоту фильтра.
p o является ссылочным звуковым давлением, заданным свойством PressureReference.
Пиковый уровень звука задан как отношение пикового звукового давления к ссылочному звуковому давлению, преобразованному в дБ. Таким образом,
где
y является вывод взвешивающего частоту фильтра.
p o является ссылочным звуковым давлением, заданным свойством PressureReference.
Максимум взвешенный временем уровень звука задан как самый большой взвешенный временем уровень звука в установленном временном интервале.
[1] Харрис, Сирил М. Руководство Акустических Измерений и Шумового Управления. 3-й американский Институт редактора Физики, 1998.
[2] Международная электротехническая комиссия. Электроакустика - метры Уровня звука - Часть 1: Спецификации. 61672-1:2013 IEC.
[3] Американский национальный институт стандартов. ANSI S1.4: спецификация для метров уровня звука. 1983.
Указания и ограничения по применению:
Системные объекты в Генерации кода MATLAB (MATLAB Coder)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.