主要内容

splMeter

音频信号的测量声压级

描述

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

  • frequency-weighted噪音

  • 时间加权声音快或慢的水平

  • 等效连续声音水平

  • 声音峰值水平

  • 最大的噪音

执行SPL计量:

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

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

SPL = splMeter创建一个系统对象,SPL,执行SPL计量。

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

例子:SPL = splMeter (‘FrequencyWeighting’,‘C-weighting’,‘SampleRate’, 12000)创建一个系统对象,SPL,执行C-weighting和运营12 kHz。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

分析乐队,宽度指定为“完整的乐队”,1倍频程的,“2/3倍频程”,或1/3倍频程的。如果带宽被指定为“完整的乐队”,SPL计返回一组测量整个频带。如果带宽被指定为1倍频程的,“2/3倍频程”,或1/3倍频程的,SPL计返回一组测量每八度或fractional-octave乐队。

可调:没有

数据类型:字符|字符串

赫兹频率范围的过滤器银行指定为一个双元素行向量积极单调递增的值。以上频段为中心SampleRate/ 2被排除在外。

可调:没有

依赖关系

要启用这个特性,设置带宽1倍频程的,“2/3倍频程”,或1/3倍频程的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

倍频程滤波器的秩序,甚至指定为一个整数。

可调:没有

依赖关系

要启用这个特性,设置带宽1倍频程的,“2/3倍频程”,或1/3倍频程的

数据类型:|

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

可调:没有

数据类型:字符|字符串

时间加权,在几秒钟内,时间加权声级和最大的计算时间声级,指定为“快”“慢”。的TimeWeighting属性用于指定一个低通滤波器系数。

  • “快”- - - 1/8

  • “慢”- 1

可调:是的

数据类型:字符|字符串

参考压强Pa dB计算,指定为一个积极的标量。

可调:是的

数据类型:|

时间间隔,以秒为单位,连续报道,高峰,时间加权的声音和最大水平,指定为一个积极的标量整数。

可调:没有

数据类型:|

标量(单声道输入)或向量(多通道输入)校准系数乘以输入。

设置校准系数使用引用,使用校准

可调:没有

数据类型:|

输入采样率在赫兹,指定为一个积极的标量。

可调:没有

数据类型:|

使用

描述

例子

(Lt,Leq,Lpeak,Lmax)= SPL (audioIn)返回时间测量值(Lt)声级当前的输入框,audioIn。对象也返回等效连续(Leq),峰值(Lpeak),最大时间(Lmax)声音输入SPL计的水平。

输入参数

全部展开

音频输入SPL计,指定为一个列向量或矩阵。矩阵的列被视为独立的音频通道。

数据类型:|

输出参数

全部展开

时间在dB声级,返回为一个列向量,矩阵,或三维数组相同的类型audioIn

的大小和解释输出取决于带宽属性设置为:

  • “完整的乐队”(默认)Lt,Leq,Lpeak,Lmax返回列向量或矩阵大小一样吗audioIn

  • 1倍频程的,“2/3倍频程”,或1/3倍频程的- - -Lt,Leq,Lpeak,Lmax返回,l——- - - - - -B——- - - - - -C数组。

    • l的行数audioIn

    • B——八度乐队的数量

    • C——的列数audioIn

数据类型:|

等效连续声级在dB,返回为一个列向量,矩阵,或三维数组相同的类型audioIn

的大小和解释输出取决于带宽属性设置为:

  • “完整的乐队”(默认)Lt,Leq,Lpeak,Lmax返回列向量或矩阵大小一样吗audioIn

  • 1倍频程的,“2/3倍频程”,或1/3倍频程的- - -Lt,Leq,Lpeak,Lmax返回,l——- - - - - -B——- - - - - -C数组。

    • l的行数audioIn

    • B——八度乐队的数量

    • C——的列数audioIn

数据类型:|

峰声级在dB,返回为一个列向量,矩阵,或三维数组相同的类型audioIn

的大小和解释输出取决于带宽属性设置为:

  • “完整的乐队”(默认)Lt,Leq,Lpeak,Lmax返回列向量或矩阵大小一样吗audioIn

  • 1倍频程的,“2/3倍频程”,或1/3倍频程的- - -Lt,Leq,Lpeak,Lmax返回,l——- - - - - -B——- - - - - -C数组。

    • l的行数audioIn

    • B——八度乐队的数量

    • C——的列数audioIn

数据类型:|

最大时间声级在dB,返回为一个列向量,矩阵,或三维数组相同的类型audioIn

的大小和解释输出取决于带宽属性设置为:

  • “完整的乐队”(默认)Lt,Leq,Lpeak,Lmax返回列向量或矩阵大小一样吗audioIn

  • 1倍频程的,“2/3倍频程”,或1/3倍频程的- - -Lt,Leq,Lpeak,Lmax返回,l——- - - - - -B——- - - - - -C数组。

    • l的行数audioIn

    • B——八度乐队的数量

    • C——的列数audioIn

数据类型:|

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

校准 校准仪使用校准语气与已知的水平
getCenterFrequencies 中心频率的过滤器
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

使用splMeter系统对象™测量加权声压级的流媒体音频信号。为报告和快速time-weighting指定一百二十二间隔时间。可视化SPL测量使用timescope对象。

创建一个dsp.AudioFileReader对象逐帧读入一个音频文件。创建一个audioDeviceWriter对象听音频信号。创建一个timescope对象可视化SPL测量。创建一个splMeter测量声压级的音频文件。使用默认的校正因子为1。

源= dsp.AudioFileReader (“Ambiance-16-44p1-mono-12secs.wav”);fs = source.SampleRate;球员= audioDeviceWriter (“SampleRate”fs);范围= timescope (“SampleRate”fs,“TimeSpanOverrunAction”,“滚动”,“TimeSpanSource”,“属性”,“时间间隔”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. 叫SPL计返回时间,等效连续、峰值和最大时间噪音分贝。

  4. 使用范围显示良好的水平。

作为一项最佳实践,完成后释放你的对象。

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

splMeter使您能够监控对倍频程声压级和fractional-octave乐队。在本例中,您监控1/3-octave乐队的等效连续声压水平。

创建一个dsp.AudioFileReader对象逐帧读入一个音频文件。创建一个audioDeviceWriter对象,这样你就可以听音频信号。创建一个splMeter倍频程声压级测量的音频文件。使用默认的校正因子为1。创建一个dsp.ArrayPlot对象为每个倍频带等效连续SPL形象化。

源= dsp.AudioFileReader (“JetAirplane-16-11p025-mono-16secs.wav”);fs = source.SampleRate;球员= audioDeviceWriter (“SampleRate”fs);SPL = splMeter (“带宽”,1/3倍频程的,“SampleRate”fs);centerFrequencies = getCenterFrequencies (SPL);范围= dsp.ArrayPlot (“XDataMode”,“自定义”,“CustomXData”centerFrequencies,“包含”,“倍频带的中心频率(赫兹)”,“YLabel”,“等效连续声级(dB)”,“YLimits”(90),“ShowGrid”,真的,“名字”,“声压级计”);

在一个音频流循环:

  1. 在音频信号帧读取。

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

  3. 叫SPL计返回等效连续声压级在dB。

  4. 使用范围显示良好的水平。更新范围只有当等效连续声压级已经改变了。

作为一项最佳实践,完成后释放你的对象。

LeqPrevious = 0(大小(centerFrequencies));~结束(源)x =源();球员(x);[~,Leq] = SPL (x);i = 1:尺寸(Leq, 1)如果LeqPrevious ~ = Leq(我:)范围(Leq(我,:))LeqPrevious = Leq(我:);结束结束结束发布(源)发布(球员)发布(SPL)发布(范围)

算法

全部展开

声压级计算遵循所描述的算法[1]。您可以指定属性值符合标准[2][3]

引用

[1]哈里斯,西里尔M。手册的声学测量和噪声控制。3日。美国物理研究所,1998。

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

美国国家标准协会[3]。ANSI S1.4:规范声级米。1983。

扩展功能

介绍了R2018a