发烧论坛

注册

 

发新话题 回复该主题

jitter产生与消除的理解[基准时钟对音质的影响][转载] [复制链接]

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

什么是jitter? 

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

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的失真(边带)信号。



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



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


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的数值是简单估算出来的,不是实测结果。


第二类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,基本原理都是利用一个反馈环和一个可变频率的振荡器来跟踪输入的时钟,输出一个更加稳定纯净的时钟信号。 



PLL的VCO一般使用压控晶振VCXO来实现。PLL的环路,尤其是滤波器设计是关键所在,滤波器会滤掉输入时钟中的高频jitter,但是滤波器设计得截至频率太低又不能有效地锁定输入信号。所以很多高级的机器都采用两个PLL串联,来获得更低的jitter。但是PLL本身就会带来一定的jitter,当设计不良时更甚。所以PLL在消除jitter方面效果是有限的。 
ASRC(Asynchronous Sample Rate Converter-异步采样频率转换器),通过对输入的数据重新采样,实现采样频率的转换(升频),同时能够有效地消除输入时钟里的jitter。


ASRC的基本原理就是使用本地时钟源的参考时钟输入,对输入的信号数据进行重新采样(resampling),由于采样所使用的时钟是低jitter的本地时钟源,就实现了对外部时钟的隔离,避免来自外部的jitter影响输出时钟。AD和TI目前都生产一些高性能的ASRC芯片。象以低jitter闻名的Bechmark DAC-1就是使用了ASRC技术。 
ASRC在时钟的隔离和jitter消除方面的效果,找不到详细的多数据。根据AD1896的原理图显示,这款ASRC芯片在内有有一个数字PLL,不知道会带来怎样的影响。由于异步重采样本身的精度是有限的,这就使ASRC带来一定的失真,所以使用ASRC来消除jitter也是有代价的。现在的ASRC芯片失真指标已经到达了-140db左右,看起来是不错,不过我没有尝试过。 
DDS(Direct Digital Synthesis-直接数字频率合成)。DDS通过完全数字的方法,通过累加器和波形查表的方式,直接生成高度稳定的频率信号。由DDS技术实现的时钟发生器示意图如下: 


DDS最大的优点,就是可以实现高稳定性的信号和高度灵活的频率变化,其输出波形的jitter接近于参考时钟源,而频率变化的刻度可以精确到10的负3次方HZ。AD公司的AD9852 DDS芯片,在40Mhz时钟输出时,jitter仅为12ps。 
通过DDS技术和先进先出缓冲器FIFO,就可以实现高性能的时钟恢复。下图描述了一个基于DDS+FIFO的时钟恢复方案。


数据首先进入异步FIFO,通过接收芯片恢复出写时钟,然后由DDS生成读时钟,从FIFO中读取。FIFO的指针信息定期控制DDS的频率。这种结构可以在很大程度上隔绝内外时钟的耦合,有效地把DDS频率控制器作用频率以上的jitter过滤掉。目前在专业领域,包括ApogeeDigital 的AD16X,DA16X,Bigben等设备使用了基于DDS的时钟系统,获得了相当多的好评。 
FIFO完全隔离,是我自己想出的方案,目前还不知道有哪个厂商这样实现产品。FIFO完全隔离的原理很简单,就是使用大的FIFO(数Mbits),完全隔离外部和内部这两个时钟域,内外时钟没有任何关联。用很大的FIFO目的是让输入信号首先将FIFO填充到半满,然后再开始读取。用大的FIFO容量,来抵消内外时钟的绝对值差别。对于CD音乐重播,需要延迟1-2秒,不过这并不是什么大问题。



本地的时钟源采用OCXO的固定频率晶振,使用直接分频的方式生成解码所需的字时钟和位时钟。用74HC系列的低速逻辑器件进行分频的确会引入比OCXO还大的jitter,所以可以考虑使用AD95xx的超高速(1.6Ghz)专用时钟分配器芯片来进行分频(需要级联)。这样的分频器引入的jitter不会超过1ps。 
FIFO完全隔离的方案可以实现时钟额度完全隔离,并且不会对信号造成失真。但是它的局限性在于无法接受来自外部的同步信号,只能作为master工作。这对于家用的HIFI解码器不是问题,如果用在专业领域是会有一定限制。此外,如果同时要支持44.1K和48K倍频的采样频率,需要两个OCXO,成本也是高昂的。

分享 转发
TOP
2#

先顶一下!!!
TOP
3#

顶起来,明天看。
TOP
4#

时钟问题是一个很复杂的基础问题,同步接口也是专业设备的必备接口。
TOP
5#

宣判了很多玩法的死刑. 去年底也是因为这个原因, 我坚决选择了合并CD机
逗你玩儿
TOP
6#

顶起来,慢慢看。楼上都是夜猫子。
TOP
7#

JITTER是个很老很专业的问题了,JITTER越小声音越好,这没人敢反对,但究竟要多小才能不为耳朵所察觉呢???

没人提过这个“阀值”!!!

有一段时间大家乱玩晶振,就是为了减小这个JITTER,但现在不太流行了,其实玩过的大侠心里都明白,有用,但不是仙丹灵药,也就好那么一点点而已。

老浦东玩什么都很投入,我联系了工厂,叫他们百里挑一、千里挑一,那还不容易,出高价呗,我买了一大批1PPM的,3PPM的上去试听,还是这句话,有差别,但没大差别!!!

也玩过锁相环IC来配,也还是那句话。

所以把JITTER说成是CD机声音不好的罪魁祸首,我觉得是理论家的说法。
TOP
8#

是否也可以这样理解,JITTER要在极高级的系统里才需要极讲究。
TOP
9#

专业性很强文章。。。
CLK发烧信号线!
淘宝: http://shop35466467.taobao.com
TOP
10#

同意老浦东说法,指标不是越高越好,指标高价格自然贵,人耳已分辨不出的高指标有什么用?只能成为商家的宣传。
晶振重要,合理的电路同样重要。不明白为什么转盘和DAC时钟非要同步,异步不是很好吗?去掉了转盘jitter对DAC时钟的影响。
TOP
发新话题 回复该主题