Audio 创建音频电平表-信号标准化

Audio 创建音频电平表-信号标准化,audio,signal-processing,normalization,Audio,Signal Processing,Normalization,我有一个实时跟踪音频信号的程序。每一个处理过的样本我都能读出它的值,范围介于 我想创建(稍后显示)音频电平表。据我所知,要做到这一点,我需要将每个通道上的音频信号实时转换为dB,然后以某种图形形式的条形图显示每个通道上的dB值 我有点不知所措,怎么做应该很简单。只需从到(比如…[n-sample+1]/2)标准化,然后从每个即将到来的样本中计算20*log10,就可以了吗?您不能直接绘制信号,因为它总是在正负变化 因此,您需要平均每这么多个样本的信号强度 假设您以44.1kHz的频率采样,也许您

我有一个实时跟踪音频信号的程序。每一个处理过的样本我都能读出它的值,范围介于

我想创建(稍后显示)音频电平表。据我所知,要做到这一点,我需要将每个通道上的音频信号实时转换为dB,然后以某种图形形式的条形图显示每个通道上的dB值


我有点不知所措,怎么做应该很简单。只需从到(比如…[n-sample+1]/2)标准化,然后从每个即将到来的样本中计算20*log10,就可以了吗?

您不能直接绘制信号,因为它总是在正负变化

因此,您需要平均每这么多个样本的信号强度

假设您以44.1kHz的频率采样,也许您可以选择4410个采样,以便每秒更新显示10次

因此,您可以计算4410个样本的均方根值-参见

RMS值始终为正

然后,您可以将其转换为Db:

dBV=20 x log10(Vrms)


这假设您的最大信号-1至+1对应于-1至+1伏。如果没有,您将需要进行进一步调整

上述方程式的结果并非严格意义上的dBV,因为这是相对于1V信号的相对测量值。上面的方程式计算相对于满标度偏转的信号功率,在这种情况下,满标度偏转是剪辑点。音频电平表(尤其是数字音频)有时会显示峰值而不是RMS,在这种情况下,您需要为每个分析窗口计算
max(abs(X0)…abs(Xn-1))
。那么该如何工作呢?从例如最后4410个样本中计算X=max(abs(X0)…abs(Xn-1)),并每100ms在lvl仪表上显示20 X log10(X)?