|
发表于 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. |
|