文档

splMeter系统对象

测量音频信号的声压级

描述

splMeter系统对象™计算声压级测量。对象返回以下的测量值:

  • 频率加权声级

  • 快速或缓慢的时间加权声音级别

  • 等效连续的声级

  • 最高声级

  • 最大声级

实施声压级计量:

  1. 创建splMeter对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?(MATLAB)。

创建

语法

SPL = splMeter
SPL = splMeter(名称,值)

描述

SPL = splMeter创建一个System对象,SPL,执行声压级测量。

SPL = splMeter(名称,值设置每个属性的名字到指定的价值.未指定的属性有默认值。

例子:SPL = splMeter('FrequencyWeighting','C-weighting','SampleRate',12000)创建一个System对象,SPL,它执行c加权,工作频率为12千赫。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计(MATLAB)。

应用于输入的频率加权,指定为“权重”“C-weighting”,或“Z-weighting”,其中z加权对应无加权。设计并实现了频率加权weightingFilter系统对象。

可调:没有

数据类型:字符|字符串

时间加权,以秒为单位,用于计算时间加权声级和最大时间加权声级,指定为“快”“慢”.的TimeWeighting属性用于指定低通滤波器的系数。

  • “快”- - - 1/8

  • “慢”- 1

看到时间加权声级欲知详情。

可调:是的

数据类型:字符|字符串

dB计算的参考压力,单位为Pa,指定为正标量。

可调:是的

数据类型:|

报告等效连续、峰值和最大时间加权声音级别的时间间隔(以秒为单位),指定为正标量整数。

可调:没有

数据类型:|

标量校准因子乘以输入。

若要使用参考音调设置校准因子,请使用校准

可调:没有

数据类型:|

输入采样率(以Hz为单位),指定为正标量。

可调:没有

数据类型:|

使用

语法

[Lt,Leq,Lpeak,Lmax] = SPL(audioIn)

描述

例子

LtLeqLpeakLmax= spl (audioIn返回时间加权(Lt)当前输入帧的声级,audioIn.该对象还返回等价的连续(Leq),峰值(Lpeak)和最大时间加权(Lmax)声级表的输入声级。

输入参数

全部展开

声压级仪表的音频输入,指定为列向量。

数据类型:|

输出参数

全部展开

以dB为单位的时间加权声音级别,作为相同大小和类型的列向量返回audioIn

数据类型:|

等效连续声级(以dB为单位),作为相同大小和类型的列向量返回audioIn

数据类型:|

峰值声级,以dB为单位,返回为相同大小和类型的列向量audioIn

数据类型:|

最大时间加权声级(以dB为单位),作为相同大小和类型的列向量返回audioIn

数据类型:|

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

校准 使用已知电平的校准音调校准仪表
克隆 创建重复的系统对象
isLocked 确定系统对象是否正在使用
释放 释放资源并允许更改System对象属性值和输入特征
重置 重置System对象的内部状态
一步 运行系统对象算法

例子

全部展开

使用splMeter系统对象™用于测量流音频信号的a加权声压级。为报告指定两秒的时间间隔和快速时间加权。可视化SPL测量使用dsp。TimeScope系统对象。

创建一个dsp。AudioFileReader对象逐帧读取音频文件。创建一个audioDeviceWriter对象监听音频信号。创建一个dsp。TimeScope对象来可视化声压级测量。创建一个splMeter测量音频文件的声压级。使用默认的校准因子1。

Source = dsp。AudioFileReader (“Ambiance-16-44p1-mono-12secs.wav”);fs = source.SampleRate;播放器= audioDeviceWriter(“SampleRate”fs);Scope = dsp。TimeScope (“SampleRate”fs,...“TimeSpanOverrunAction”“滚动”...“时间间隔”3,“ShowGrid”,真的,...“YLimits”(110),“AxesScaling”“汽车”...“ShowLegend”,真的,“BufferLength”4 * 3 * fs,...“ChannelNames”...“Lt_AF”“Leq_A”“Lpeak_A”“Lmax_AF”},...“名字”“声压级计”);SPL = splMeter(“TimeWeighting”“快”...“FrequencyWeighting”“权重”...“SampleRate”fs,...“TimeInterval”2);

在音频流循环中:

  1. 读取音频信号帧。

  2. 将音频信号播放到输出设备。

  3. 调用声压级表返回时间加权、等效连续、峰值和最大时间加权声级(以dB为单位)。

  4. 使用范围显示声音级别。

作为最佳实践,一旦完成就释放对象。

~isDone(source) x = source();球员(x);[Lt,Leq,Lpeak,Lmax] = SPL(x);范围(Lt, Leq、Lpeak Lmax])结束发布(源)发布(播放器)发布(SPL)发布(范围)

算法

全部展开

声压级的计算遵循[1].您可以指定属性值以符合标准[2]而且[3]

参考文献

西里尔·哈里斯,《声学测量与噪声控制手册》,美国物理学会,1998年第3版。

[2]国际电工委员会。电声学。声级计。第1部分:规范IEC 61672 - 1:2013。

美国国家标准协会。声级计规范。1983。

扩展功能

另请参阅

系统对象

功能

在R2018a中引入

这个话题有用吗?