为了让大家搞明白数字音源在整体的前后端传输转码中,除了常规的一些对音质、失真影响影响的相关问题,这里通过网络搜索的一些资料给大家重点重点介绍转换中不可躲避的一个bug(Jitter),并阐述产生的原因。

数字音频的基本原理就是把连续的模拟信号在离散的时间点上进行采样(Sampling),进而形成数字化的信息。时间是信号数字化的最重要的因素之一,采样和重放的时间准确度在很大程度上决定了模拟-数字转换(ADC)以及数字-模拟转换(DAC)的质量。

什么是jitter?

时间准确度可以分为两类:长期准确度和短期准确度。长期准确度是指时钟频率偏离绝对值的多少,一般用ppm(百万分之多少)来表示。石英晶体振荡器可以很容易地达到几十ppm到1个ppm以下的准确度。长期准确度对声音不会造成可闻的影响。短期准确度也就是抖动(jitter),它是一种时钟相位瞬态的变化,如图所示:

音频的码流采样精度(不要说数字音源不管什么前端没区别)(1)

Jitter的测量一般使用真实时钟信号抖动的时间来衡量,一般用到的单位是ps(10的负12次方秒)或ns(10的负9次方秒)。测试的指标还可以详细分为周期抖动(Period jitter)和绝对抖动(Absolute jitter)。

Jitter的影响

Jitter制造出数字音频信号的失真。一个简单的固定频率正弦波jitter(频率是Fj)会在一个正弦波音频信号(频率是Fa)中加入两个失真信号,其频率分别是Fa-Fj和 Fa Fj。下图描述了一个10khz的音频信号在一个1khz jitter的作用下,生成了9khz和11khz的失真(边带)信号。

音频的码流采样精度(不要说数字音源不管什么前端没区别)(2)

如果这个jitter信号的频谱从1khz到4khz平均分布,那么就会造成一个更宽频谱的失真信号:

音频的码流采样精度(不要说数字音源不管什么前端没区别)(3)

上述的单频和广谱jitter是与音乐信号无关的。如果jitter与音乐信号相关,就会制造出很多的高次谐波失真。下图描述了一个2khz的信号,jitter被信号的MSB调制所带来的高次谐波失真。

音频的码流采样精度(不要说数字音源不管什么前端没区别)(4)

Jitter的频谱是一个非常复杂的问题。同样大小的jitter,如果频谱是不同的,则会对声音带来不一样的影响,但是关于这个话题,能找到的资料不是很多。

Jitter的大小

究竟多少Jitter才是我们能接受的呢?在上述的单频jitter模型中,jitter造成的失真大小为:

Rj=20log((3.1416*J*Fa)/2)

其中J是jitter的大小,单位是秒,Fa是音频信号的频率,计算出的Rj就是失真信号的分贝(db)。可以看出,音频信号的频率越高,jitter越大,则失真就越大,这就是jitter总会首先影响高频音质的原因。

例如一个20khz的音频信号,在1000ps的单频jitter作用下,失真的大小为:

Rj=20log((3.1416*J*Fa)/2)= 20log((3.1416*1000*10-12*20000)/2)= -90db.

请注意,这只是一个理想的单频jitter,如果是广谱的随机jitter或者与信号相关的jitter,失真还要更严重。

CD使用16bits/44.1k的PCM数字音频格式,1个LSB的分辨率是-96db,如果要求在20khz的时候jitter造成的失真不大于一个LSB,那么jitter造成的失真不能高于-96db,单频的jitter不能大于500ps。

如果是一个24bits的PCM数字音频格式,1个LSB的分辨率是-144db,如果要求在20khz的时候jitter造成的失真不大于一个LSB,那么jitter造成的失真不能高于-144db,单频的jitter不能大于1ps,如果把要求放宽到21bits的分辨率,jitter造成的失真不能高于-126db,要求jitter也不能大于7.9ps。这可以说是一个非常高的要求。

至于人耳能对多少ps的jitter有感知,是一个没有准确答案的问题。我想这应该与不同的人,不同的音乐内容,以及不同的jitter频谱都有关系吧。

Jitter的产生

Jitter的产生原因比较多,大概可以分为4类。

第一类,时钟振荡器本身的有jitter。这是石英晶体振荡器所固有的。在石英晶体振荡器技术领域,一般不使用多少个ps的jitter作为其参数,而是使用相位噪声(phase noise)曲线作为表示方法。相位噪声描述了振荡器产生的偏离主振荡频率的杂散频率能量。相位噪声可以与jitter之间有一定的换算关系,基本上可以认为它们两者是等同的。请注意,很多场合提到“某个晶振是多少ppm的”,这个多少ppm只是表征晶振的长期稳定性,与jitter或相位噪声无关。但所幸的是,一般来说长期稳定性好的晶振,短期稳定性也会很好,所以通常情况下,ppm数小的晶振,jitter很可能也会比较小。

不同种类的石英晶体振荡器差别很大,这与振荡器所用的晶体质量,振荡电路等有很大关系。通常的锁相环PLL电路里用到的压控振荡器VCXO,jitter值大约在数十ps,温度补偿晶振TCXO,jitter可以达到几个ps,恒温晶振OCXO是最理想的频率源,其jitter甚至可以达到1ps以下。TCXO和OCXO虽然jitter很小,但是振荡频率基本不可调整(或者调整范围极小),不能直接用于PLL电路。OCXO的jitter虽然很小,但是价格非常昂贵,尤其是最好的“SC切”晶体。一般等级的OCXO要数百到上千元左右,国际知名的C-MAC,Vextron等品牌高级的OCXO就更是贵到难以接受。据我所知,目前只有专业领域的Antelope OCX 时钟发生器使用了OCXO。

下图是一个几种振荡器的比较,其中jitter的数值是简单估算出来的,不是实测结果。

音频的码流采样精度(不要说数字音源不管什么前端没区别)(5)

第二类jitter是传输中产生的jitter。SPDIF或者AES-EBU这种数码音频格式没有使用单独的时钟通道来传递时钟信号,而是使用了自同步的双相位标志编码(biphase - mark - code )。时钟信号混在数据信号中传递,接受者(解码器)必须从数据中恢复出时钟。由于在传输过程中,不同的数据的延迟有所不同,就造成了相当大的jitter。解码器如果直接使用接收芯片从数据中恢复出的时钟虽然可以,但是达不到很好的效果。所以有必要进行精确的时钟恢复(clock recovery)。

第三类jitter是电路中的其它因素导致的jitter。例如射频/电磁干扰,震动,电源干扰等等。例如,如果数据接收处理和时钟部分的电源退耦不良,音频的数据内容就可能会干扰时钟,形成前文所述的“与音乐信号相关的jitter”。所以音频设备的屏蔽,布线,电源等方面是非常重要的。时钟电路的电源必须高度稳定,噪音很小,速度快,尽量不与其它器件混用,才能生成jitter尽可能小的时钟信号。

第四类jitter,就是介质读取过程中发生的jitter,主要由CD转盘或硬盘读取数据的不稳定性造成。这类jitter也可以视作是一种传输jitter,可以通过时钟恢复进行消除。

Jitter的消除

Jitter的消除是个很复杂的问题。前文所述的第一类jitter由于器件的限制,是无法消除的。第三类jitter可以由周边电路设计的改进和屏蔽来减小和消除。下文只重点描述第二类和第四类jitter的消除。为了方便起见,下文将其统称为jitter。

对于单体的CD机,传输jitter是很小的,但是由于单体CD机在电源,机壳屏蔽等方面的限制,可能会造成转盘部分对DAC部分的干扰。也许是考虑到了这一点,一般厂商的顶级型号还是会采用转盘+DAC的模式。

转盘+DAC这种组合,可以采用很多的辅助方法来消除jitter,比较常见是使用字时钟同步(Wordclock)的方法。Wordclock在专业音频领域应用非常广泛,主要是解决不同设备之间的同步问题。家用领域中,为数不多的DCS,Esoteric等品牌的转盘+解码器可以支持Wordclock,DAC作为Wordclock发生器,转盘作为Wordclock接收器。需要注意的是,如果使用DAC之外的外部时钟发生器产生Wordclock信号来同步DAC和转盘是一种存在争议的做法。因为DAC使用来自外部的时钟,就必然引入这个Wordclock时钟信号在传输,接收中带来的jitter。如果DAC内部的时钟已经非常好的话,有可能反而会增加DAC的jitter。其它还有一些类似的方法,总的思想就是将主时钟源放在DAC,由DAC的时钟去控制转盘。这些辅助方法很好,但是并不是一个普遍适用的方法,因为绝大多数的转盘不支持Wordclock或其它的时钟输入,或者消费者不愿意使用同一个厂家的转盘+解码器。

那么DAC如何仅仅通过SPDIF或AES的数码输入,来实现精确的时钟恢复或再造呢?目前我知道比较有代表性的的方法有4种:PLL,ASRC,DDS,FIFO完全隔离。

锁相环(PLL)方法的是最常用的时钟恢复方法,无论是普通的模拟PLL还是数字PLL,基本原理都是利用一个反馈环和一个可变频率的振荡器来跟踪输入的时钟,输出一个更加稳定纯净的时钟信号。

音频的码流采样精度(不要说数字音源不管什么前端没区别)(6)

PLL的VCO一般使用压控晶振VCXO来实现。PLL的环路,尤其是滤波器设计是关键所在,滤波器会滤掉输入时钟中的高频jitter,但是滤波器设计得截至频率太低又不能有效地锁定输入信号。所以很多高级的机器都采用两个PLL串联,来获得更低的jitter。但是PLL本身就会带来一定的jitter,当设计不良时更甚。所以PLL在消除jitter方面效果是有限的。

ASRC(Asynchronous Sample Rate Converter-异步采样频率转换器),通过对输入的数据重新采样,实现采样频率的转换(升频),同时能够有效地消除输入时钟里的jitter。

音频的码流采样精度(不要说数字音源不管什么前端没区别)(7)

ASRC的基本原理就是使用本地时钟源的参考时钟输入,对输入的信号数据进行重新采样(resampling),由于采样所使用的时钟是低jitter的本地时钟源,就实现了对外部时钟的隔离,避免来自外部的jitter影响输出时钟。AD和TI目前都生产一些高性能的ASRC芯片。象以低jitter闻名的Bechmark DAC-1就是使用了ASRC技术。

ASRC在时钟的隔离和jitter消除方面的效果,找不到详细的多数据。根据AD1896的原理图显示,这款ASRC芯片在内有有一个数字PLL,不知道会带来怎样的影响。由于异步重采样本身的精度是有限的,这就使ASRC带来一定的失真,所以使用ASRC来消除jitter也是有代价的。

如有不对的地方,还望指正。

--

,