我的Bilibili频道:香芋派Taro
我的个人博客:taropie0224.github.io
我的公众号:香芋派的烘焙坊
我的音频技术交流群:1136403177
我的个人微信:JazzyTaroPie

Hard Clipping

就是基于一个阈值摁切,比如大于0.5就算是1,小于-0.5就算是-1

Soft Clipping

Cubic Distortion

1
2
// a: 0~1
out[sample] = in[sample] - a * (1/3) * in[sample]^3

例:

输入为sin,a = 1:

POPO20221215-145933

Arctan Distortion

1
out[sample] = (2/pi) * arctan(in[sample] * alpha)

例:

输入为sin,alpha = 0.5:

POPO20221215-142838

Alpha = 2:

POPO20221215-142854

Alpha = 5:

POPO20221215-142906

Alpha = 10:

POPO20221215-142926

Bit Reduction

通过降比特率的方式来实现失真

1
2
3
4
5
// 定义目标比特率
nBits = 8
ampValues = 2 ^ (nBits - 1)

out[sample] = ceil(ampValue * in[sample]) * (1 / ampValue)