有关于sigma-delta modulation
本来已经打了一大段了,没想到那个帖子已经被删了无法回复。删的也挺好,扯来扯去也不会有什么结果。只是我打了这么一大段字貌似要浪费了。不忍心浪费所以发上来给大家分享一下。其目的不是要大家继续争吵下去,只是想让大家少说话多做事。我个人也挺忙,所以发完了就跑,如果某帝某神或某总要继续争论下去的话,都恕我不奉陪了。首先,sigma delta modulation指的是一种数字调制的过程,其目标是产生一个pdm信号,如果不知道什么pdm信号的话可以去了解一下什么是pwm,有点类似。至于这个pdm信号,其实可以有多种方式可以计算得到,sdm是其中一种最通用和简单的方法。pdm用脉冲宽度来记录幅值,在经过LPF过后可以得到非常精准的幅值,如果有接触到高精度的可编程电压基准源就知道很多都是用pwm来实现的。
如果说的更概念化一些,这就是个时间换空间的手段,或者说是速度换精度的手段。在DAC和ADC中,有各种速度换精度和精度换速度的手段。想要两者兼顾就会大幅升高成本或者根本就是mission impossible。在这种速度换精度的游戏中,只要速度足够快,那就可以换取到更好的精度。前面讲到的高精度可编程电压基准源就是输出的直流电压,所以用PWM这种不太高效的方式也能换取到足够的精度。还有一种就是高精度万用表用的多斜积分ADC,也是其采样时间越长,精度越高,最高的8位半万用表就是用这种方式。当然,你还可以买到一些现成的高精度DAC和ADC芯片,我记得是delta-sigma的,精度可以达到20bit以上,但是带宽只有几十Hz而已。
话说回来,在这场速度换精度的游戏中,delta-sigma的时钟速度最高也就是几十兆而已,其中,四个时钟周期可以完成一个开关电容的动作。9018的时钟最高可以到100M,所以其性能也就自然高上一筹,AK449X系列的新芯片,其核心技术是可以只用两个时钟周期就可以完成一个开关电容的动作,所以其性能也自然而然的上了一个台阶。当然,纯粹的1bit早就是不够用了,现在的高性能delta-sigma芯片都是多bit,在这个地方,又玩了一把精度换速度的手段。
delta-sigma的工作方式比喻的形象一些,就是一个小个子在跑步,每一步很小,但速度很快。这就有点像我国的百米飞人苏炳添,他的频率可以秒杀博尔特,然而似乎最终结果还是被博尔特秒杀。当然如果腿长了一些过后也不可能保持如此快的频率,可能最终成绩还没有现在好,所以这就是权衡,设计中到处都是这种权衡,按下一个葫芦浮起一个瓢,你想要大长腿+苏炳添的速度?做梦。
晕,貌似跑题了。刚才说到跑步,delta-sigma就是这样的,当前的状态是基于前一个状态加上你这一个步子的长度,所以前面似乎穷总也有提到,delta-sigma方式是不会有DNL的困扰,因为每个周期你都一定的会走一步,这个步子的长度或者说幅度取决于那个时钟周期的宽度,当然,时钟周期不可能为负,所以就不会有DNL。但是这种方式也有问题,试想你往前走10步,再往后走10步,应该是回到了原点了吗?回答是“不”,因为你每一步的长度都不一样,而其误差是累积的,走的越多错的越多,当然,每一步的长度取决于时钟周期的宽度,这也解释了为什么delta-sigma对时钟要求很高。而R2R就没有这个问题,因为R2R的每一步都是从原点直接一步跨到目标点,也就是说其误差是不累积的。
我本人也是R2R的粉丝,因为从结构上来说,R2R是一个更纯粹的更理想的结构,有问题也可以直接暴露出来,而delta-sigma有种种的“花招”导致其在测传统的音频指标上有一定的优势,但那些传统音频指标本身就非常有局限性,根本无法揭露出很多深层次上的问题。工业级的芯片很少有delta-sigma的,大多是R2R或者其他的多比特结构。当然delta-sigma也有好处,其归根结底就是个纯数字芯片,成本极低。可能发烧友不会在意一个几百块的DAC芯片,但是你要让手机厂,电视机厂装个几百块的DAC芯片进去那不是要命的吗?
至于delta-sigma的瑕疵到底在哪里?是怎么藏起来的?我也没时间精力解释那么多。今天写这么多只是不想看到你们这样的吵下去。如果真有兴趣的话,还是花些时间自己去做,在做的过程中,会发现很多自己以前一直坚信的那些“秘籍”其实是然并卵。当然这些个“秘籍”本身也来自于网络论坛上的一些不负责任的观点,那些观点的出处本来就是一些喜欢YY的文科生折腾出来的东西,只是经过多重流传之后才成为了“古典秘籍”。这就有点象在周星驰在功夫里得到了一本老乞丐的“如来神掌”一样。本人也做淘宝,经常有人来旺旺找我,要指点我“武林秘籍”,甚至有人说“我就是不会做而已,所以才找你,你来按照我这个方法来做,肯定无敌”。其实他们也是好心啦,但的确是有点哭笑不得。
支持老褚 简单一句话,R2R好点,但是成本高。 :lol说的很客观。我坚决支持r-2r但是投向市场却做delta-sigma的解码。 本帖最后由 yeziwong 于 2015-12-5 14:04 编辑
说得挺好的,听明白人说话就是舒服。只有一点有一些不同意见,delta sigma的增量和时钟相关,但是不仅仅决定于时钟周期的长度,因为本身是基于采样的离散系统,所以增量是决定于在那个时钟周期内信号建立的情况。时钟快慢一方面影响信号settle,一方面影响的是OSR
这是我从芯片内部的结构出发的个人理解,不足的请指正。delta sigma modulation并不是一个很好理解的概念,不过一旦理解了就会变得很简单,在数字游戏的基础上,用速度换来了精度,就是这么简单。delta sigma因为是增量调制并且最后要经过低通滤波,所以很难在时域用一个一个数字去精确描述调制和低通最后到输出的过程。
yeziwong 发表于 2015-12-5 13:57 static/image/common/back.gif
说得挺好的,听明白人说话就是舒服。只有一点有一些不同意见,delta sigma的增量和时钟相关,但是不仅仅决定 ...
不是说取决于时钟周期的长度,而是取决于时钟周期长度的变化,也就是jitter。delta-sigma的核心是一个积分器,我网上随便找了一张图就可以理解了,其是对一个电容的充放电所造成的结果,时间长短决定了充放电的电量大小,充放电的电量大小决定了信号的变化幅值。当然,DAC芯片里的积分器不是用运放来做的,这里只是举个例子而已。不管时钟周期是长是短,只要其保持恒定不变,那就没有问题,怕的是一脚短一脚长。不患寡而患不均也。
所以,对于音频所用的时钟来讲,绝对精度是没有太大意义的,有意义的只是其周期与周期之间变化的相对量,也就是jitter。
R2R也会受到jitter的影响,不过这个影响相对西格玛结构的解码少很多。
R2R DAC的采样时钟越高,jitter对模拟信号输出的质量影响越大。 擦,怎么感觉文科生又被黑了……
咱作为一个文科生,才不管啥架构呢,好听就行 还是不要解释的好,要抬杠的继续抬杠,看不懂的继续看不懂,反而会引出更多的疑问,比如什么4只钟2只钟,还有数据占空比的影响,越搞越浆糊就是。。。。 JeffZhu 发表于 2015-12-5 14:43
不是说取决于时钟周期的长度,而是取决于时钟周期长度的变化,也就是jitter。delta-sigma的核心是一个积分 ...
关于jitter如何影响积分结果,是这样的:
1 在具体的芯片实现当中,积分器的电阻并不是一个真正的电阻,电阻的实现具体是T形结构的开关电容网络,当然也有连续时间delta sigma用的电阻就是真正的电阻,但是他不应用于音频,所以这里不去讨论。
2 开关电容网络等效的电阻,他的电阻值是T/C,T是开关电容工作的时钟周期,C是电容值,如果T偏离了理想值,等效于电阻值的变化,电阻值的变化引起的就是整个调制器噪声整形函数的变化,数学上可以证明,噪声整形函数对于这个电阻的变化非常不敏感,即使变化百分之十以上,对于整个噪声整形函数影响也可以忽略不计。所以说,dsm对于时钟绝对精度不敏感是正确的。
3 开关电容做的电阻工作在两相非交叠时钟下,前半个时钟周期是信号采样,把信号以电荷的形式存在电容上,后半个周期是信号积分,就是把采样电容上的电荷转移到反馈电容上,完成积分过程。信号积分过程有运放参与,运放的高增益保证了积分精度,运放的建立过程保证了积分的速度,如果在这半个时钟周期内,运放的建立不完全,那么就会导致积分的精度出问题。
4 离散时间dsm的jitter对于积分过程的影响实际上就是在影响运放的建立过程,如果相邻两个周期的差别过大,那么在相邻的积分周期内,运放建立的精度有差别,导致了积分精度的差别,这才是jitter影响真正的过程。
5 从设计的角度来说,完全可以通过加大功耗来避免这个影响,举个例子,如果要求运放建立时间是5ns,那么完全可以通过加大电流来设计一个建立时间是2.5ns的运放,留足余量。但是没有人会这样去设计,因为低功耗设计是现在所有的公司都在追求的。 顶jeff,这个是真正的大拿,不是那些个伪高手 yeziwong 发表于 2015-12-5 16:28 static/image/common/back.gif
关于jitter如何影响积分结果,是这样的:
1 在具体的芯片实现当中,积分器的电阻并不是一个真正的电阻, ...
穷总说的很正确。不过有一些是需要指出的,首先,DAC中是没有运放的,直接以开关电容完成,当然其中也会有settling time的要求,所以不能无限制的提高速度就是了。其次,时钟周期的变化并不是完全白噪声,白噪声的那一段地板量都很低,一般不用太过于关注,当然,白噪声的jitter引起的是白噪声的量化误差。而更因关注的是1/f噪声。而且在实际的系统中,如果你去做一个鉴相器观察(确切来说是聆听)喂给DAC的时钟的相位噪声时,会发现其中居然会有音乐。还有一个有趣的现象就是把DSD信号直接当成PCM来放,居然在很大的噪声背景中也能有音乐。这些都是很有趣的现象,也说明了数字处理和模拟的结果直接存在的微妙的关系。而数字处理的侧重点和对声音影响的关系,这也只掌握在少数有经验的设计师手中。
关于这方面就不继续讨论下去了,一方面紫坛也不是技术论坛,另一方面小弟也没有穷总那么穷,还要努力赚钱养家,闲暇时间的确有点少。再说最近屡受被抄袭的困扰,不免也起了一些藏私的小算盘。哎,中国人,就是这样的。 本帖最后由 yeziwong 于 2015-12-5 18:16 编辑
JeffZhu 发表于 2015-12-5 17:11
穷总说的很正确。不过有一些是需要指出的,首先,DAC中是没有运放的,直接以开关电容完成,当然其中也会有 ...
之前是根据Jeff贴的积分器的图做出的对于jitter影响的说明,无论ad还是da,积分过程都是信号建立过程,是一样的,一个是运放建立,一个是开关电容建立,所以ad和da的调制模型是一样的,jitter影响了信号建立过程,加上采样噪声对于采样电容值有要求以及开关本身的电阻,所以不可能无限制提高采样率。
至于jitter的能量分布,这个说起来比较复杂,对于数据转换器来说,更需要关注的是两个周期的差别,也就是cycle to cycle jitter, 这个jitrer对于不同的时钟源有着不同的能量分布。如果时钟是晶振产生,那么jitter能量大多在高频,如果时钟是pll产生,那么jitter能量在pll带宽处达到峰值,然后两端衰减,其中带宽外的衰减由vco本身决定,带宽内的衰减由pll的loop filter决定,无论那种时钟,在极高频都是白噪声,并且能量很低。
具体设计时,根据不同的时钟源,会有不同的噪声关注的频段,这一点Jeff应该更有经验。
我也曾经试着把dop信号当成pcm去解码,结果是没声音,然后前级音量开到很大,会有一些音乐,我的理解是dop高8位是一个标志位,低位才是有用的信号,这个倒真的没有仔细研究过。 难得有这样认真的讨论! 坚决支持! 学习了! 谢谢! 好帖子