解码完的short int类型的PCM音频在经过EQ处理后要进行限幅,防止破音、爆音现象,就像Foobar2000里的高级限幅器一样,有谁知道它的原理是什么,或者实现的方法?
我曾经做过一个,大概过程如下:
首先对解码后的Buffer(short int类型,保存PCM16样本)进行遍历,找出绝对值大于25000的第一个样本,然后从这个样本开始进行类似线性淡出操作,每处理一个样本乘数(初始化为0.9999)减去0.0011,直到乘数小于0.4999,这样处理完的数据基本在13000左右,在处理过程中如果发现下一个该处理的样本小于13500,则进行类似线形淡入操作,乘数依次累加0.0011,直到0.9999为止,但处理后的音频听起来很怪,根本不像Foobar处理过的!
有谁知道该如何解决这个问题!
谢谢了~
原理:
有两个脉宽调制器,输出脉冲信号的频率为152kHz,其脉冲宽度受到音频信号的控制。当音频信号的均方根(整流)值变大时,脉冲宽度变窄;变小时,脉冲宽度变宽;当均方根值低于一定值时,脉冲宽度保持为一个定值。这两个脉宽调制器一个用于峰值压缩,另一个则用于自适应预加重。脉宽调制器就如同一个开关控制着音频信号的通断,当开关是接通时,衰减量为0:断开时,衰减量为无穷大。由于开关频率(152kHz)远远高于音频信号的最高频率(抽样定理fs≥fΩmax),所以,信号的衰减量(压缩量)将正比于开关的断开时间。
方法:
首先将“POS.PEAKS”(电位器R153)控制逆时针方向调满,再顺时针调节“OUTPUT LEVEL”,监视发射机的调制度,调幅表指示90~95%的正峰调制,进而顺时针调节“POS.PEAKS”电位器,使调幅表指示100%~130%正峰调制,一般调在+125%为宜。
参考知识1
最权威的答案
http://www.51base.com/electron/adhibition/wireless/2007092685382.shtml本回答被提问者采纳