EETOP 创芯网论坛 (原名:电子顶级开发网)

标题: 请问关于频率合成器的sigma-delta调制器 [打印本页]

作者: kool    时间: 2008-10-24 09:16
标题: 请问关于频率合成器的sigma-delta调制器
sigma-delta调制器的dither 是加在调制器输入信号的低位还是在每个累加器都要加上一个低位的随机信号呢?
硬件上如何产生这个随机信号?
作者: depend135    时间: 2008-10-24 10:21
加在调制器的输入就可以了,不过是不是加在最低位还得通过仿真来确定,用线性反馈移位寄存器(LFSR)可以产生伪随机数列
作者: kool    时间: 2008-10-24 11:15


   
原帖由 depend135 于 2008-10-24 10:21 发表
加在调制器的输入就可以了,不过是不是加在最低位还得通过仿真来确定,用线性反馈移位寄存器(LFSR)可以产生伪随机数列



那如果我输入为16位的数,那么该产生哪两个随机码与输入相加呢?是16位的1,-1的补码吗? 如果这样的话在调制器的输入端是不是还需要一个16位的加法器呢?
还有如果PLL的分频比为整数,也就是调制器的输入该为0。那么这个dither会不会对影响到调制器的输出呢? 因为输入为0的话,调制器的瞬时输入是为-1和1。
作者: depend135    时间: 2008-10-24 22:51
伪随机数应该就0和1吧,如果-1和1的话应该也可以吧,不过这时你在输入端作的计算就是有符号数(dither)与无符号(调制器原输入)数的计算了,调制器的输入是要加一个加法器。
通常当调制器输入接近0和1时,噪声整形效果会变得很差,当分频比为整数时,我想,是不是就不用sigma delta modulator了?直接把分频比固定好了,你觉得呢?
作者: bobbygang    时间: 2008-12-3 13:08
最近也一直在研究用于频率合成器的SDM,主要有两个问题
我现在主要在仿池保勇“使用三位三阶SDM的集成1GHz小数频率合成器”这篇论文里的那个前馈数字SDM,环境是MATLAB,我是用自己编译的函数模仿数字电路进行仿真的,输入一个小数,然后经过不断除2的自己编译的函数模块转换成0110这样的24-28位(仿真时位数是定的,一般用28)的序列,数据形式是1×n数组,然后移位或者加法都是对数组的各个元素进行操作,最后对数组的前几位进行操作,转换成十进制,输出看波形,并求其平均与输入进行比较,
现在主要有两个问题,
一是对这篇论文的那个SDM框图的理解问题:
1.他所谓的3位量化器输出为什么只有0,1,2,3四种情况,我仿真的结果如果是三位的话输出会有4出现,而且3的出现概率也不像他所谓的“仅有极个别点”,反倒是2位量化,确实只有0,1,2,3(不过2位确实本来就不会有4以上出现。。。),3的概率也确实很小,不知道哪里错了,而且3位量化输出平均值与输入差别很大,而2位的就与输入很接近

2.他的框图里左移,右移操作都是保持最高位不变,如果这些模块的输入恒是正数,左移右移最高位不应该保持不变吧,所以我理解这里的最高位是符号位,换言之,不仅反馈路径里有补码操作,在前馈路径里也是有负数出现的,那为什么不直接都是补码操作,而要在反馈路径里特别写明“转换为补码”?
而且在2阶的输出那块,框图里是把它左移的结果和右移的结果相加,这样的话不是等于乘以系数2.5了吗,但参考文献里是乘以1.5啊,不懂。

我不知道是我的模块编译有问题还是对这篇文章的理解有问题导致了我仿真结果与论文结果不符,特发此问。

二是对这个数字SDM应该怎么仿其性能?以前我仿过一段时间的SDM-ADC但那时输入都是正弦波,可以通过FFT,加窗操作来计算SNR,现在输入是个不变的数字DC值,这SNR我怎么计算?

另外还有一个问题就是,我一直不知道,多比特的SDM输出是怎么控制N/N+1这样只有两个选择模式的分频器的,相关资料我在IEEE找了半天找不到,都是一个框图,SDM模块直接连入N/N+1模块,怎么控制的都不说的,1BIT,多BIT都这样,我就没搞懂多BIT有那么多不同输出电平,怎么控制这样一个2模式的模块的?

[ 本帖最后由 bobbygang 于 2008-12-3 13:13 编辑 ]
作者: gaom9    时间: 2008-12-27 22:28
我最近也在仿真“三位三阶SDM的集成1GHz小数频率合成器”里面的DSM框图,也是对里面的各个节点的数值类型有疑问,特别是使用左移操作来实现乘2的操作时,要是完全保证总线宽度为24bit,那些当数据类型为有符号数的,将会现溢出的现象,数据将会失真,从其框图来看,好像里面的每个节点用的都是有符号数,仿真了很久Verilog代码,输出结果都不对,我的输出结果是存在-4,-3,-2,-1的,而不像论文里面所说的那样,用MASH111的结构来实现的话,结果就是对的,比较郁闷。
另外对于上面说的多bit输出来控制N/N+1的除法器,据我了解,多bit输出要求有多模的除法器,2模的输出器只能实现1阶,或者单bit输出的调制形式。

对于“三位三阶SDM的集成1GHz小数频率合成器”这篇文章,我的最大疑问就是在verilog中各个节点的数据类型该如何定义,输入的数据应该是要求无符号数吧?反馈的信号呢,是有符号数还是无符号数?请问有人能正确仿真那个结构吗?

还有想问下输入的dither是用来做什么的,看了一些文章,部分在输入里面加入了dither,但部分是没有的,请大家指教。

作者: bobbygang    时间: 2008-12-29 17:25
又做了一段的SDM建模,这次SDM只用了MATLAB自带模块,量化也是函数型的理想量化,现在与论文挺符合的,输出是0,1,2,3,3基本很少出现,所以之前提出的3个问题前两个还是没解决,倒是第三个问题,多bit输出控制N/N+1那个,我现在是这样做的:在整数分频器中的分频器中,常这样做,用DMD实现,也就是Prescaler再加PS Counter,我现在就是用这多模的输出去控制S的量,
如采用16/17的Prescaler,来实现181.624这样一个分频比,不看小数,整数分频比为181,如果是整数分频器用PS结构实现,Nfinal=PN+S,所以181=11×16+5,P是11,S是5,现在小数分频器就是在PS计数的一个周期后,SDM输入0.624输出0,1,2,3中的一个值,给S Counter,这个值再加上原S的值,生成下一个周期新的S值,这样输出分频比结果就变成了PN+S+0,PN+S+1,PN+S+2,PN+S+3,中的一个,平均值理论上最后就是181.624,我仿了一下,误差还是很小的,不过,现在又有一个新问题,众所周知,PS Counter中S的值不能比P大,即P>=S,但现在S会随SDM输出值变化,那 取值就有新的定义域了P>=S+3,这样原整数的分频比就会有很多分频比不能覆盖到,我也想过在每次技术的周期去判断SDM输出是否会使S超过P,但这样的话机制太过复杂了,应该不是这样做的,所以还在苦恼中
作者: depend135    时间: 2008-12-31 11:47
最近在忙做别的模块,所以这部分还未认真地写代码实现,我只能说一下自己的看法.
1、关于移位溢出的问题。的确除了输入以外,SDM里各节点都是有符号数,你通过在simulink里面仿真也可以看出内部节点数值是有正有负的,但是只要你保证你的位数足够让你乘2,除2后还能表示出来,就可以放心大胆的左右移了,左移时连符号位一起移,右移时保持符号位,剩下的右移,例如,你有4位,你就不能对-4进行左移,因为4位最多能表示出-7,例如你现在是-3,补码表示是1101,左移一位是1010,这就是-6的补码啊,所以,不管正负数,左移后,结果都是正确的,对于除2的话,符号位保留,其它右移就好了。
    还有希望你注意一下量化器和量化器反馈信号作减法时的代码实现,反馈信号是有符号数。
2、不管用MASH111还是single loop三阶结构,都得用多模除法器,你不可能就放一个两模的,多模分频器可以有两种,一个是N/N+1加promgrammable divider加swallow的结构,这种结构你不能直接把SDM输出拿来控制,因为它们的控制位不是二进制控制的,要加上编码器,另一种结构是div2/3串联的结构,这种可以直接二进制控制,可以看看C. S. Vaucher的文章。
3、dither是用来防止SDM输出出现spur引入的,由于用在fractionFS中的SDM的输入是定值,其输出噪声整形效果将丧失,加dither能解决这个问题,dither就是一个伪随机数列.dither还是-1,1来加好了,这样它的均值是0.
作者: bobbygang    时间: 2008-12-31 19:59
但是,除了可编程DIVIDER,多BIT SDM不能用N/N+1吗,我仿了下,我的方法还是可行的啊,误差很小的,我开始也是疑惑多bit是不是一定要Concentrater或者用可编程多模DIVIDER,但是老实说前者弊端很多,后者功耗和面积都会很大,而且对时序也有很高要求,很多文章都没涉及SDM输出控制DIVIDER的方法,于是我采用了这种方法,用SDM输出去改变S计数值,这也是老师启发我的,其实它的原理和多模DIVIDER有相似处,都是基于连续小区间整数分频去平均小数分频值的
作者: semileon    时间: 2008-12-31 20:06


   
原帖由 bobbygang 于 2008-12-29 17:25 发表
又做了一段的SDM建模,这次SDM只用了MATLAB自带模块,量化也是函数型的理想量化,现在与论文挺符合的,输出是0,1,2,3,3基本很少出现,所以之前提出的3个问题前两个还是没解决,倒是第三个问题,多bit输出控制N/N ...



所以你的设计里不能用16/17 prescaler,可以考虑8/9 prescaler.
作者: depend135    时间: 2009-1-1 10:27
其实N/N+1加PS counter的方法就是一种programmable divider,附件是samori一书中divider的一章,他主要是论述了N/N+1加PS counter这种divider,div2/3的串联的没怎么说,对于P,S的取值确定和p,s counter的结构都有说明。其实Egan的书已经写的挺详细的了,有的话就这就不用下了 ( , 下载次数: 511 )
作者: layes    时间: 2009-1-1 11:25
用FBclock比较好
作者: gaom9    时间: 2009-1-1 14:42
http://www.eetop.com.cn/bbs/viewthread.php?tid=142941&pid=1750553&page=1&extra=page%3D1#pid1750553

刚上传的两本相关的书籍
作者: bobbygang    时间: 2009-1-5 13:41
什么是FBCLOCK
作者: susky    时间: 2009-1-7 11:22
有没有更多些的资料?谢谢
作者: staringnight    时间: 2009-8-14 10:23
我没有加,dither, 会有什么问题吗?
作者: socdesign2008    时间: 2009-10-26 00:27
Thanks!!!!!
作者: mmic1978    时间: 2009-11-18 10:28
mark 一下, 继续学习
作者: bn0925    时间: 2009-11-24 19:38
good==
tk u
作者: chinhj    时间: 2010-1-15 14:38
谁能告诉我,小数分频中的模数改变的快慢与鉴相频率的关系是什么样的?是相等的吗?
作者: xxdtju    时间: 2010-1-15 16:26
好帖,顶
作者: lionhead    时间: 2010-2-25 12:58
Mark 一下,学习了!
作者: lionhead    时间: 2010-2-25 13:09
Egan的书是指什么啊?
作者: cedricwung    时间: 2010-2-25 13:35
1. dither是为了消除spur的,一般来说是加在SDM的LSB;
2.常见的做法是加 initial ‘1’,不会对分频比造成影响;
3. 可通过malab仿真FFT看到差别,多数情况下是不需要dither的。
作者: walking001    时间: 2010-2-26 12:33
受教了~
作者: jackal0716    时间: 2010-3-20 03:21
thanks al ot~~
作者: mainhand    时间: 2010-4-14 22:37
谢谢,帮顶起,不然没钱了
作者: fum0345    时间: 2010-5-26 20:34
谢谢,帮顶起,不然没钱了
作者: myhz    时间: 2010-5-27 08:57
加在调制器的输入就可以了
作者: franky_xiaofei    时间: 2010-6-28 14:22
受教了
作者: 2013571    时间: 2010-7-19 16:31
ding ~~~
作者: seawang    时间: 2010-7-20 15:02
不用MMD,个人觉得也值得研究一下
作者: zjk101    时间: 2011-3-24 15:16
divider.pdf (
作者: bn0925    时间: 2011-6-23 11:20
tks 4 sharing~
作者: diwutian    时间: 2011-7-6 16:26
kankan
作者: twofishes    时间: 2012-3-26 09:58
学习中,谢谢!
作者: 血徒    时间: 2012-4-11 10:53
dither用伪随机数序列就行吧
作者: 血徒    时间: 2012-4-11 10:54
SIGMA DELTA 对模拟的人很麻烦
作者: amhere    时间: 2012-4-27 11:01
回复 9# bobbygang


    靠谱
作者: amhere    时间: 2012-5-8 14:55
不错的东西
作者: leoaww    时间: 2014-3-5 15:18
好帖子,在研究,希望可以扩展讨论的深度!
作者: zjk001    时间: 2014-3-10 18:33
请问关于频率合成器的sigma-delta调
作者: jadelin    时间: 2014-3-11 16:33
mark!
作者: courageheart    时间: 2014-3-24 11:25
回复 41# leoaww
目前也在学习,遇到些问题,希望能跟你探讨下。charge pump、VCO等由模拟构造,而sigma-delta调制器和分频器则使用数字verilog来实现。在数字实现时遇到比较头疼的事,量化单元要怎么设置,量化输出几位比特位是怎么参考的,另外,分频器要怎么实现小数分频。
作者: jeffej    时间: 2015-3-7 08:09
请问关于频率合成器的sigma-delta调制器
作者: jeffej    时间: 2015-3-7 08:48
just learning, thanks !
作者: sachiel    时间: 2015-10-20 14:39
感謝分享
作者: tonytony_k    时间: 2016-11-17 19:51
谢楼主分享
作者: 曲奇先生0    时间: 2018-5-3 17:12
不知道还有没有人在做这个
作者: leibluefish    时间: 2018-7-31 17:34
学习了,thanks
作者: 春江随缘    时间: 2018-8-1 11:47
看看。。。。。。。
作者: Augustus98    时间: 2022-8-29 13:48


   
bobbygang 发表于 2008-12-3 13:08
最近也一直在研究用于频率合成器的SDM,主要有两个问题
我现在主要在仿池保勇“使用三位三阶SDM的集成1GHz ...


请问您现在有了解对于DC输入的SDM怎么去衡量它的性能嘛

作者: QQben    时间: 2022-9-29 13:46
谢谢分享
作者: 纵横    时间: 2022-11-13 20:40
有用simulink里面的psd模块对DSM进行过psd分析吗

作者: qinkun    时间: 2023-3-24 10:38


   
bobbygang 发表于 2008-12-29 17:25
又做了一段的SDM建模,这次SDM只用了MATLAB自带模块,量化也是函数型的理想量化,现在与论文挺符合的,输出 ...


SDM可以分享一下吗

作者: Arvinliu    时间: 2024-9-29 10:42
路过学习了
作者: 肥鸡跳墙    时间: 2024-10-21 17:13
可以,学习学习




欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5