loudnessMeter
符合标准的响度测量
描述
的loudnessMeter
系统对象™根据EBU R 128和ITU-R BS.1770-4标准计算音频信号的响度、响度范围和真峰值。
实现响度测量:
创建
loudnessMeter
对象并设置其属性。调用带有参数的对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?
创建
描述
loudMtr = loudnessMeter
创建一个System对象,loudMtr
,它在每个输入通道上独立执行响度测量。
音量计(
设置每个属性名称,值
)的名字
到指定的价值
.未指定的属性有默认值。
例子:loudMtr = loudnessMeter('ChannelWeights',[1.2, 0.8],'SampleRate',12000)
创建一个System对象,loudMtr
,信道权重分别为1.2和0.8,采样率为12 kHz。
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
函数解锁它们。
如果属性是可调,您可以随时更改其值。
有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统.
ChannelWeights
- - - - - -对每个输入通道进行线性加权
[1,1,1,1.41, 1.41]
(默认)|非负行向量
对每个输入通道进行线性加权,指定为非负值的行向量。行向量中的元素数量必须等于或大于输入通道的数量。向量中的多余值将被忽略。
缺省通道权重采用ITU-R BS.1170-4标准。要使用默认通道权重,将输入信号通道指定为一个矩阵,顺序为:[左、右、中、左环绕、右环绕]。
作为最佳实践,请指定ChannelWeights
属性按顺序排列:[左,右,中,左环绕,右环绕]。
可调:是的
数据类型:单
|双
UseRelativeScale
- - - - - -使用相对刻度测量响度
假
(默认)|真正的
使用相对刻度测量响度,指定为一个逻辑标量。
假
—响度测量是绝对的,以响度单位全刻度(LUFS)返回。真正的
—响度测量是相对于TargetLoudness
值,并以响度单位(LU)返回。
可调:没有
数据类型:逻辑
TargetLoudness
- - - - - -相对标度(LUFS)目标响度
-23年
(默认)|真正的标量
LUFS中相对尺度的目标响度水平,指定为实标量。
例如,如果TargetLoudness
为-23 LUFS,则-23 LUFS的响度值报告为0 LU。
可调:是的
依赖关系
若要启用此属性,请设置UseRelativeScale
来真正的
.
数据类型:单
|双
SampleRate
- - - - - -输入采样率(Hz)
44100
(默认)|积极的标量
以Hz为单位的输入采样速率,指定为正标量。
可调:是的
数据类型:单
|双
使用
描述
输入参数
audioIn
- - - - - -音频输入到响度计
矩阵
音频输入到响度计,指定为一个矩阵。矩阵的列被视为独立的音频通道。
请注意
如果使用默认值ChannelWeights
的loudnessMeter
,作为最佳实践,请按以下顺序指定输入通道:[左,右,中,左环绕,右环绕]。
数据类型:单
|双
输出参数
短暂的
瞬间响度(LUFS)
列向量
瞬时响度,以响度单位相对于全刻度(LUFS),作为列向量返回,具有相同的行数audioIn
.
默认情况下,响度测量在LUFS中返回。如果你设置UseRelativeScale
财产真正的
,响度测量以响度单位(LU)返回。
数据类型:单
|双
短期的
-短期响度(LUFS)
列向量
以响度单位相对于全尺度(LUFS)的短期响度,作为列向量返回,具有相同的行数audioIn
.
默认情况下,响度测量在LUFS中返回。如果你设置UseRelativeScale
财产真正的
,响度测量以响度单位(LU)返回。
数据类型:单
|双
集成
-综合响度(LUFS)
列向量
以响度单位相对于全尺度(LUFS)的综合响度,返回为具有相同行数的列向量audioIn
.
默认情况下,响度测量在LUFS中返回。如果你设置UseRelativeScale
财产真正的
,响度测量以响度单位(LU)返回。
数据类型:单
|双
范围
-音量范围(LU)
列向量
以响度单位(LU)表示的响度范围,作为具有相同行数的列向量返回audioIn
.
数据类型:单
|双
峰
-真峰响度(dB-TP)
标量
dB-TP中的真峰值响度,作为具有相同行数的列向量返回audioIn
.
数据类型:单
|双
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj
,使用以下语法:
发行版(obj)
例子
音频信号的响度
创建一个dsp。AudioFileReader
读取音频文件的系统对象™。创建一个loudnesMeter
系统对象。使用音频文件的采样率作为采样率loudnessMeter
.
fileReader = dsp。AudioFileReader (“RockDrums-44p1-stereo-11secs.mp3”);音量计(“SampleRate”, fileReader.SampleRate);
在音频流循环中读入音频文件。使用响度计来测定音频信号的瞬时响度、短期响度和综合响度。缓存响度测量以进行分析。
瞬间= [];shortTerm = [];积分= [];而~isDone(fileReader) x = fileReader();[m,s,i] = loudMtr(x);moment =[瞬间的;m];shortTerm =[短期;s];积分=[积分;i];结束发行版(fileReader)
绘制音频信号的瞬时、短期和综合响度。
T = linspace(0,11,长度(瞬间));情节(t,[短暂的、短期的、集成])标题(“响度测量”)传说(“瞬间”,“短期”,“集成”)包含(的时间(秒)) ylabel (“LUFS”)
绘制音频流的瞬时响度和响度范围
创建一个音频文件阅读器和一个音频设备写入器。
fileReader = dsp。AudioFileReader (“FunkyDrums-44p1-stereo-25secs.mp3”,...“SamplesPerFrame”, 1024);fs = fileReader.SampleRate;deviceWriter = audioDeviceWriter(“SampleRate”fs);
创建一个时间范围来可视化你的音频流循环。
timeScope = timeScope (“NumInputPorts”2,...“SampleRate”fs,...“TimeSpanOverrunAction”,“滚动”,...“LayoutDimensions”(2, 1),...“TimeSpanSource”,“属性”,“时间间隔”5,...“BufferLength”5 * fs);范围的顶部子图timeScope。Title =“短暂的响度”;timeScope。YLabel =“LUFS”;timeScope。YLimits = [- 40,0];作用域的底部子图timeScope。ActiveDisplay = 2;timeScope。Title =“响度范围”;timeScope。YLabel =“陆”;timeScope。YLimits = [-1, 2];
创建一个响度计。使用输入文件的采样率作为响度计的采样率。调用可视化
为你的音量计打开一个“ebu模式”的可视化。
音量计(“SampleRate”fs);可视化(loudMtr)
在音频流循环中:
阅读你的音频文件。
计算瞬时响度和响度范围。
在你的时间范围内想象瞬时响度和响度范围。
播放音频信号。
“ebu模式”响度表可视化自动更新时,它是打开的。作为最佳实践,在循环完成后释放文件读取器和设备写入器。
而~isDone(fileReader) audioIn = fileReader();[momentaryloutness,~,~,LRA] = loudMtr(audioIn);timeScope (momentaryLoudness LRA);deviceWriter (audioIn);结束发布(fileReader)发布(deviceWriter)
响度测量相对标度
创建一个音频文件阅读器来读取音频文件。创建一个音频设备写入器来写入音频文件到您的音频设备。使用文件读取器的采样率作为设备写入器的采样率。
fileReader = dsp。AudioFileReader (“Counting-16-44p1-mono-15secs.wav”,...“SamplesPerFrame”, 1024);fs = fileReader.SampleRate;deviceWriter = audioDeviceWriter(“SampleRate”fs);
创建一个响度计,目标响度设置为默认值-23年
LUFS。打开“ebu模式”响度计可视化。
音量计(“UseRelativeScale”,真正的);可视化(loudMtr)
创建一个时间范围来可视化您的音频信号及其测量的相对瞬时和短期响度。
Scope = timescope(...“NumInputPorts”3,...“SampleRate”fs,...“TimeSpanOverrunAction”,“滚动”,...“TimeSpanSource”,“属性”,“时间间隔”5,...“BufferLength”5 * fs,...“标题”,“音频信号、瞬时响度和短时响度”,...“ChannelNames”, {音频信号的,“短暂的响度”,“短期响度”},...“YLimits”(-16年,16),...“YLabel”,'振幅/单位',...“ShowLegend”,真正的);
在音频流循环中,收听并可视化音频信号。
而~isDone(fileReader) x = fileReader();[短暂的,短期的]= loudMtr(x);范围(x,瞬时,短期)deviceWriter (x);结束发布(deviceWriter)发布(fileReader)
算法
的loudnessMeter
系统对象用于计算音频信号的瞬时响度、短时响度、综合响度、响度范围(LRA)和真峰值。您可以指定用于响度测量的任意数量的通道和非默认通道权重。的loudnessMeter
的一般情况下,给出了算法n具有默认通道权重的通道。
响度测量
输入通道,x,通过k加权weightingFilter
.k加权滤波器塑造频谱以反映感知的响度。
k加权通道,y,每段0.4秒,重叠0.3秒。如果尚未收集到所需数量的样本,则
loudnessMeter
系统对象返回瞬时和综合响度的最后计算值。如果已经收集到足够多的样本,则计算k加权信道每段的幂(均方):国会议员我是瞬间的力量吗我段。
w为样本中的段长度。
短暂的喧嚣,毫升,以LUFS计算每个段:
Gc是通道的权重吗c.
毫升瞬间的喧嚣由你还
loudnessMeter
系统对象。它也用于内部计算综合响度(步骤3-6)。的集成响度测量考虑自你的音量计的最后一次重置的音频信号。为了计算综合响度,瞬时功率通过一个门控系统。gate系统在低声音时暂停测量,比如电影中的沉默时间。
使用相应的瞬时响度段计算对瞬时功率段进行门控:
国会议员j缓存,直到
loudnessMeter
重置。瞬时功率子集,国会议员j,通过相对阈值门。
计算相对阈值Γ:
lc是通道的平均瞬时功率吗c:
瞬时功率子集,国会议员j,使用相对阈值Γ进行门控:
在每次调用您的
loudnessMeter
对象。的缓存值国会议员j根据Γ的更新值再次进行门控。瞬时功率段取平均值:
综合响度在LUFS中通过平均瞬时功率计算,P,通过计算响度系统:
k加权通道,y,分成3秒段,重叠2.9秒。如果尚未收集到所需数量的样本,则
loudnessMeter
系统对象返回短期响度和响度范围的最后计算值。如果已经收集到足够多的样本,则计算每个k加权通道的幂(均方):sP我是短期的力量吗我信道的第几段。
w为样本中的段长度。
短期的喧嚣,sL,以LUFS计算每个段:
Gc是通道的权重吗c.
sL你的短期还响吗
loudnessMeter
系统对象。它也用于内部计算响度范围(步骤3-5)。使用绝对阈值对短期响度进行门控:
sLj缓存,直到
loudnessMeter
重置。短期响度子集,sLj通过一个相对阈值门。
门控短期响度被转换回线性,然后取平均值:
相对阈值,K,计算为:
短期响度子集,sLj,使用相对门限进行门控:
相对阈值,K,在每次调用您的
loudnessMeter
对象。的缓存值sLj是否根据更新的值再次门控K.短期响度子集,sLk,已排序。响度范围计算为分布的第10到95百分位之间,并以响度单位(LU)返回。
True-Peak
的true-peak测量只考虑呼叫响度计的当前输入帧。
信号被过采样到至少192千赫。为了优化处理,输入采样率决定了精确的过采样。输入采样率低于750hz不考虑。
输入采样率(kHz) Upsample因素 [0.75, 1.5) 256 [1.5, 3) 128 (3、6) 64 (6、12) 32 [12、24) 16 [24、48) 8 [48, 96) 4 (96192) 2 (192年,∞) 不是必需的 过采样信号,一个,通过半多相长度为12、阻带衰减为80 dB的低通滤波器。滤波器设计采用
designMultirateFIR
.滤波后的信号,b,被修正并转换为dB TP尺度:
真峰被确定为转换后信号的最大值,c.
参考文献
[1]国际电信联盟;无线电通信部门。测量音频程序响度和音频真峰值电平的算法。ITU-R BS.1770-4。2015.
[2]欧洲广播联盟。音频信号的响度归一化和允许的最大电平。Ebu r 128。2014.
[3]欧洲广播联盟。音量测量:“EBU模式”的测量,以补充EBU R 128音量正常化。EBU R 128 Tech 3341。2014.
[4]欧洲广播联盟。响度范围:对EBU r128响度归一化的补充措施。EBU R 128 Tech 3342。2016.
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
在R2016b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。