1,能解释一下三个图到底是什么东西么?
Edit, 为了核实我又摆出来了一下(写原帖之前也试了一下)。流程如下:
MOscillator(或任意生成干净sine的) -> 两个AW:BitShiftGain分别-16bit再-7bit -> AW: TPDFDither -> 两个AW:BitShiftGain共升回来23bit ->Voxengo Span ->监听输出。Voxengo结果,同样音量的sine,很大的噪音(高频peak甚至超过sine的音量),很明显的DC Offset(约-27dB)。
然后我把BitShiftGain调成-8 +8的时候,噪音小了,DC消失了。
我又加了个JSFX: Bit Reduction/Dither(reaper用户)。Resolution调到1,Dither Type调到Triangular,同样就一个Peak加上形状一样的底噪,不过用这个没有DC Offset。(看来得给Chris留言了)
唯一出现谐波的时候是开始用Airwindows其他的NoiseShaping Dither插件。用DoublePaul的时候只是普通的noiseshaping;Highgloss有很多2nd order谐波;Naturalize还有一些1st order;NodeDither入介绍没有谐波但有comb filter;NotJustAnotherDither有很多很多很多小泛音;PaulDither没有任何谐波,高频弧度缓慢;SpatializeDither有谐波,1/2 order都有,比Naturalize更明显;TapeDither==NodeDither;VinylDither有一点点谐波。
结论是:说有谐波的都是开了NoiseShaping。这跟Dither是两个相关但不同的概念。普通基础Dither是TPDF(两个噪音的average),没有谐波;Noise-Shaping是为了母带染色用的,一些算法会有谐波。
2,我说的扬声器的问题是说,数字方波是不可能在事实上出现的,扬声器播放的纯方波是类似于fournier series的n个sine的组合。如果尝试播放数字方波(phase > pi ? 1 : -1;)则会出现aliasing,其实也是n个sine,只不过其中一部分非谐波。播放的时候听感上的确像方波,但并不是与数字方波对等的。
3,音质方面同位深的情况下int的确比float好,主要是64位可记载数据更多。32位浮点对应的24位定点倒不一定。不过按这个逻辑,64位浮点对应的其实应该是48位定点。
本帖最后由 jaganshi 于 19-5-3 17:47 编辑