在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 34564|回复: 54

请问关于频率合成器的sigma-delta调制器

[复制链接]
发表于 2008-10-24 09:16:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
sigma-delta调制器的dither 是加在调制器输入信号的低位还是在每个累加器都要加上一个低位的随机信号呢?
硬件上如何产生这个随机信号?
发表于 2008-10-24 10:21:01 | 显示全部楼层
加在调制器的输入就可以了,不过是不是加在最低位还得通过仿真来确定,用线性反馈移位寄存器(LFSR)可以产生伪随机数列
 楼主| 发表于 2008-10-24 11:15:11 | 显示全部楼层


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



那如果我输入为16位的数,那么该产生哪两个随机码与输入相加呢?是16位的1,-1的补码吗? 如果这样的话在调制器的输入端是不是还需要一个16位的加法器呢?
还有如果PLL的分频比为整数,也就是调制器的输入该为0。那么这个dither会不会对影响到调制器的输出呢? 因为输入为0的话,调制器的瞬时输入是为-1和1。
发表于 2008-10-24 22:51:30 | 显示全部楼层
伪随机数应该就0和1吧,如果-1和1的话应该也可以吧,不过这时你在输入端作的计算就是有符号数(dither)与无符号(调制器原输入)数的计算了,调制器的输入是要加一个加法器。
通常当调制器输入接近0和1时,噪声整形效果会变得很差,当分频比为整数时,我想,是不是就不用sigma delta modulator了?直接把分频比固定好了,你觉得呢?
发表于 2008-12-3 13:08:22 | 显示全部楼层
最近也一直在研究用于频率合成器的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 编辑 ]
发表于 2008-12-27 22:28:18 | 显示全部楼层
我最近也在仿真“三位三阶SDM的集成1GHz小数频率合成器”里面的DSM框图,也是对里面的各个节点的数值类型有疑问,特别是使用左移操作来实现乘2的操作时,要是完全保证总线宽度为24bit,那些当数据类型为有符号数的,将会现溢出的现象,数据将会失真,从其框图来看,好像里面的每个节点用的都是有符号数,仿真了很久Verilog代码,输出结果都不对,我的输出结果是存在-4,-3,-2,-1的,而不像论文里面所说的那样,用MASH111的结构来实现的话,结果就是对的,比较郁闷。
另外对于上面说的多bit输出来控制N/N+1的除法器,据我了解,多bit输出要求有多模的除法器,2模的输出器只能实现1阶,或者单bit输出的调制形式。

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

还有想问下输入的dither是用来做什么的,看了一些文章,部分在输入里面加入了dither,但部分是没有的,请大家指教。
发表于 2008-12-29 17:25:26 | 显示全部楼层
又做了一段的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,但这样的话机制太过复杂了,应该不是这样做的,所以还在苦恼中
发表于 2008-12-31 11:47:52 | 显示全部楼层
最近在忙做别的模块,所以这部分还未认真地写代码实现,我只能说一下自己的看法.
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.
发表于 2008-12-31 19:59:05 | 显示全部楼层
但是,除了可编程DIVIDER,多BIT SDM不能用N/N+1吗,我仿了下,我的方法还是可行的啊,误差很小的,我开始也是疑惑多bit是不是一定要Concentrater或者用可编程多模DIVIDER,但是老实说前者弊端很多,后者功耗和面积都会很大,而且对时序也有很高要求,很多文章都没涉及SDM输出控制DIVIDER的方法,于是我采用了这种方法,用SDM输出去改变S计数值,这也是老师启发我的,其实它的原理和多模DIVIDER有相似处,都是基于连续小区间整数分频去平均小数分频值的
发表于 2008-12-31 20:06:07 | 显示全部楼层


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



所以你的设计里不能用16/17 prescaler,可以考虑8/9 prescaler.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-16 14:10 , Processed in 0.027960 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表