之前的帖子曾经说过如何完成DSD编码和解码的简单流程,今天就详细探讨一下如何深入的解码DSD文件。
DSD是比特流信号,这样的信号无法在数字系统得以描述,因为在调整层的非线性噪声太大了,同时,直接对比特流信号进行处理需要消耗过多的资源。
例如,采用FIR滤波器进行滤波,则过渡带宽度与FIR的阶数是线性关系,因此DSD的信号速率为64*44.1k,那么如果要对CD音质的信号处理的滤波器修改使得其
对比特流信号的滤波水平则需要将滤波器阶数抬升64倍。然而,不幸的是,这种做法对计算量提升则是64*64 平方倍了。 很可怕吧?
来个直观的理解:
假如44.1K的FIR低通滤波器为128阶,那么对SACD信号同等性能的滤波器的阶数就为128*64,FIR处理的计算量则为2.2844M*128*64 MAC 达到GHz水平了。
一般来说,为了使得比特流信号得以被数字系统重用,需要提升他的精度,而过采样则保证了其提升精度的基本原理。另外,过高的采样速率要降下来,虽然可以获得
高采样速率的数字信号,但是这是没必要的,其中包含了许多冗余信息,对于数字系统的处理也会带来压力。
好了,到这里其实就基本明晰了,但是注意到之前的帖子中,曾经说过,这些比特流是包含有很强的噪声的,只不过其经过调制以后,将噪声功率强行推到了信号基带以外。
图形如下:
| /-------------------------------
| / 噪声带
|-------/
|信号基带
|——————————————————————————————
故而调制器本身对于噪声而言仿佛就像是一个高通滤波器,在比特流信号中,如果将其转换到频域,就是信号基带与噪声带相分离的两个频段。我们可以将位于噪声段的部分通过一个
数字滤波器将其滤除,然后得到信号(浮点)就是基本含有原信号的数字序列了。接下来对于这个数字序列,将其进行抽取,抽取到合适的采样频率中。抽取的方法很多,有sinc抽取
cubic抽取等。等过段时间我提交上来我写的测试代码。
FAQ:
1。为什么要对滤波后的数字序列进行抽取呢?难道获得到高频率的采样信号不好吗?
数字信号的频域和时域具有一一对应关系,采样率的变化只是信号在频域的延拓周期不同,因此,数字域的采样率高低脱离信号本身就无意义了。前面所分析的采样率对于噪声的影响是对于量化系统而言,不是对数字系统而言的。该道理同样适用于编码系统。
2.DSD真的比PCM好吗?
这点曾经思考过,个人觉得从信息角度而言不一定会。DSD是基于delta-sigma技术的,该技术的出现并不是光为了音频系统的,更多的是降低设计人员在模拟层和数字层的设计难度,降低设计成本,用低廉的价格获取更高的精度。没有delta-sigma,就不会有现在满大街仍都扔不掉的
电子称。可以认为delta-sigma实际上是人们对于技术瓶颈的一种妥协手段。DSD文件庞大,比同等无损编码的CD文件体积大8倍。这8倍的信息中,实际上包含了整个量化系统的噪声信息。不过动态也还是不错的。不考虑模拟层,上120db是没问题的。
3.DOP
全称DSD OVER PCM,因为MAC系统只支持PCM信息而导致的另外一种妥协手段,将DSD封装成PCM数据包,传递给目标设备,进行播放。不过,这对传输带宽的要求还是比较高的。一般是按照176.4K 24bit传送。 接近600KB/S。