上次聊失真和听感问题的关系的时候,曾经聊过一个二次谐波失真生成器,第一版的算法并不太好,我更新了一下算法,发一个新的版本上来。
首先,这个问题为什么重要?因为二次谐波是音响界的一个流传已久的传说,很多有一定的道理的(比如胆机音质说)都来自此。和很多神话不一样的是,二次谐波有它的乐理方面的依据(八度音相似说)。
著名的功放界大神Nelson Pass曾经专门制作过一个模拟元件的二次谐波失真器。但是我可以负责的说,我这个失真器DSP比他做的还好,因为我的DSP
只生成二次谐波,而Pass的失真器则会生成比较少量的高次谐波。
同时,我这个失真器可以指定数字信号满幅值下的谐波量。比如你指定20%的二次谐波失真,那么数字信号满幅值下的失真度就是20%(二次失真)。注意二次谐波是非线性失真,因此实际失真度和数字电平大小有关,你指定的只是最大的失真度。
截图。在这里,我设置失真度为20%,这时你在频谱图可以看到失真分量只有二次失真,同时二次失真的分量比基频低14db,也就是20%。
使用方法:
把foo_2nd_dist.dll拷贝到Foobar安装目录的components目录下,重启Foobar,会看到DSP增加了一个叫"2nd Harmonics DSP"的插件。把它拖到激活的DSP列表中即可。如截图所示。
下载地址:
链接:
https://pan.baidu.com/s/1MMB2zwyjKpTzeogChTXdgA
提取码:ea4e
另外说一句,实际失真度和电平大小的关系是什么?非常简单,如果数字电平是0.25(1/4,也就是-12db SPL),那么失真度就是满电平的1/4。
如果你的音乐文件的平均电平是0.25,那么即便你指定了20%的最大失真度,平均失真度也只有5%。
----------------------------------------------------------------------------------------
因为Nelson Pass提到过失真的相位问题(没错,失真也是有相位的,正相和反向听起来不完全一样),因此我又加入了正相和反向的设置。截图可见,两种失真产生的波形不一样,听起来低频的纯音也不一样,我想可能是因为某一种相位和喇叭的失真是叠加关系,而另一种是抵消的关系。我这里用的喇叭是一个全频喇叭。