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

Для реализации измерения SPL:
Создать splMeter и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
SPL = splMeter создает объект System, SPL, который выполняет измерение SPL.
SPL = splMeter( задает каждое свойство Name,Value)Name к указанному Value. Неопределенные свойства имеют значения по умолчанию.
SPL = splMeter('FrequencyWeighting','C-weighting','SampleRate',12000) создает объект System, SPL, которая выполняет С-взвешивание и работает на частоте 12 кГц.Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
Bandwidth - Ширина областей анализа'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
FrequencyRange - Частотный диапазон набора фильтров (Гц)[22 22050] (по умолчанию) | двухэлементный вектор строк положительных монотонно возрастающих значенийЧастотный диапазон набора фильтров в Гц, определяемый как двухэлементный вектор строки положительных монотонно возрастающих значений. Полосы частот, центрированные выше SampleRate/ 2 исключены.
Настраиваемый: Нет
Чтобы включить это свойство, установите Bandwidth кому '1 octave', '2/3 octave', или '1/3 octave'.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
OctaveFilterOrder - Порядок октавного фильтра2 (по умолчанию) | четное целое числоПорядок октавного фильтра, заданного как чётное целое число.
Настраиваемый: Нет
Чтобы включить это свойство, установите Bandwidth кому '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 используется для указания коэффициента фильтра нижних частот.
'Fast' – 1/8
'Slow' – 1
Настраиваемый: Да
Типы данных: char | string
PressureReference - Опорное давление для расчетов дБ (Па)2e-5 (по умолчанию) | положительный скалярОпорное давление для вычислений дБ в Па, указанное как положительный скаляр.
Настраиваемый: Да
Типы данных: single | double
TimeInterval - Временной интервал для измерения (измерений) уровня отчетности1 (по умолчанию) | положительный скалярВременной интервал (в секундах) для сообщения эквивалентно-непрерывных, пиковых и максимальных взвешенных по времени уровней звука, заданных как положительное скалярное целое число.
Настраиваемый: Нет
Типы данных: single | double
CalibrationFactor - Градуировочный коэффициент, умноженный на входГрадуировочный коэффициент скаляра (моновхода) или вектора (многоканального входа), умноженный на вход.
Для установки коэффициента калибровки с помощью эталонного тонального сигнала используйте команду calibrate.
Настраиваемый: Нет
Типы данных: single | double
SampleRate - Частота входных выборок (Гц)44100 (по умолчанию) | положительный скалярЧастота входных выборок в Гц, заданная как положительный скаляр.
Настраиваемый: Нет
Типы данных: single | double
audioIn - Вход звука в измеритель SPLВход звука в измеритель SPL, заданный как вектор столбца или матрица. Столбцы матрицы обрабатываются как независимые аудиоканалы.
Типы данных: single | double
Lt - Взвешенный по времени уровень звука (дБ)Взвешенный по времени уровень звука в дБ, возвращаемый в виде вектора столбца, матрицы или массива 3-D того же типа, что и 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 - Эквивалентно-непрерывный уровень звука (дБ)Эквивалентно-непрерывный уровень звука в дБ, возвращаемый в виде вектора столбца, матрицы или массива 3-D того же типа, что и 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 - Пиковый уровень звука (дБ)Пиковый уровень звука в дБ, возвращаемый в виде вектора столбца, матрицы или массива 3-D того же типа, что и 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 - Максимальный взвешенный по времени уровень звука (дБ)Максимальный взвешенный по времени уровень звука в дБ, возвращаемый в виде вектора столбца, матрицы или массива 3-D того же типа, что и 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
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
calibrate | Калибровка измерительного прибора с использованием калибровочного тона с известным уровнем |
getCenterFrequencies | Центральные частоты фильтров |
Используйте splMeter Система object™ для измерения взвешенного по шкале А уровня звукового давления потокового звукового сигнала. Укажите двухсекундный временной интервал для отчетов и быстрое взвешивание времени. Визуализация измерений SPL с помощью timescope объект.
Создать dsp.AudioFileReader объект для чтения в аудиофайле по кадрам. Создание audioDeviceWriter объект для прослушивания звукового сигнала. Создать timescope объект для визуализации измерений SPL. Создание splMeter для измерения уровня звукового давления в аудиофайле. Используйте калибровочный коэффициент по умолчанию, равный 1.
source = dsp.AudioFileReader('Ambiance-16-44p1-mono-12secs.wav'); fs = source.SampleRate; player = audioDeviceWriter('SampleRate',fs); scope = timescope('SampleRate',fs, ... 'TimeSpanOverrunAction','Scroll', ... 'TimeSpanSource','Property','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 октавы.
Создать 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
CalibrationFactor свойство может быть установлено непосредственно или с помощью calibrate функция, которая сравнивает известный уровень с полученными данными. Известный уровень определяют с помощью физического калибратора.
Применяется взвешивание частоты A-, C- или Z. Взвешивание частоты реализуется с помощью weightingFilter Системный объект.
При указании Bandwidth свойство как '1 octave', '2/3 octave' или '1/3 octave'затем вычисления SPL применяются к каждой октавной или дробно-октавной полосе. Эти полосы анализа определяются после взвешивания частоты.
Взвешенный по времени уровень звука определяется как отношение взвешенного по времени среднего квадратного давления звука корня к эталонному давлению звука, преобразованному в дБ. То есть
(y2) po2}
h (y2) можно интерпретировать как свертку y2 с фильтром с импульсной характеристикой − tstart. y - выходной сигнал частотно-взвешивающего фильтра. Импульсная характеристика соответствует фильтру нижних частот 1 Используя импульсную инвариантность, дискретный фильтр можно интерпретировать как,
(start× fs) z − 1.
startзадается весовым коэффициентом времени как 0,125 (если TimeWeighting имеет значение 'Fast') или 1 (если TimeWeighting имеет значение'Slow').
fs - частота выборки, указанная SampleRate собственность.
Эквивалентно-непрерывный уровень звука также называется средним по времени уровнем звука. Оно определяется как отношение среднеквадратичного звукового давления к эталонному звуковому давлению, преобразованному в дБ. То есть
значения (y )/po)
где
y - выходной сигнал частотно-взвешивающего фильтра.
po - опорное звуковое давление, определяемое PressureReference собственность.
Пиковый уровень звука определяется как отношение пикового давления звука к эталонному давлению звука, преобразованному в дБ. То есть
| )/po)
где
y - выходной сигнал частотно-взвешивающего фильтра.
po - опорное звуковое давление, определяемое PressureReference собственность.
Максимальный взвешенный по времени уровень звука определяется как наибольший взвешенный по времени уровень звука в пределах указанного интервала времени.
[1] Харрис, Сирил М. Справочник по акустическим измерениям и управлению шумом. 3-й ред. Американский институт физики, 1998.
[2] Международная электротехническая комиссия. Электроакустика - Измерители уровня звука - Часть 1: Технические характеристики. МЭК 61672-1: 2013.
[3] Американский национальный институт стандартов. ANSI S1.4: Технические требования к уровнемерам звука. 1983.
Примечания и ограничения по использованию:
Системные объекты в генерации кода MATLAB (кодер MATLAB)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.