微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > sigma delta ADC求帮助

sigma delta ADC求帮助

时间:10-02 整理:3721RD 点击:
最近我在做一个sigma delta ADc 的项目,,我目前在负责后面的数字滤波器部分。准备采用cic+补偿+半带的组合。遇到些问题,希望有做过的朋友帮助一下:
1.在设计滤波器时使用matlab的fdatoo设计的滤波器可以用吗,需不需要自己另外写m程序?
2.在用fdatool量化的时候,fraction bits指的是什么啊?比如我要做一个1bit输入,16bit输出的,怎么考虑fraction的问题,不是没有小数部分吗?
3.我用fdatool生成一个cic滤波器,在量化的时候选全精度,但是在matlab中仿真的时候还是会有溢出,,该这么解决溢出问题啊?

希望知道的朋友给点帮助啊,,

哎呀,都是我要问的问题,之前也发过类似的帖子,没有得到明确的回答,希望有牛人来指点一下!

第一个问题,我觉得是不用的,用FDAtool的就可以了,如果你想写成.m也可以把模型导成.m形式的程序。

你也在做sd的ADC吗,,不知道那个溢出的问题怎么解决啊,,如果在matlab里有溢出问题,,生成vhdl之后,在modelsim里估计也会有问题啊

这个我也不懂,我也发现即使用全精度的也会溢出。我之前查到过一篇文献是在CIC的每级之间加寄存器,能够防止溢出。但是我不知道在simulink中寄存器的model是哪个,你知道吗?就是在library browser里有吗?

我印象中cic的溢出是不影响精度的,当然前提是采用补码运算和内部寄存器长度足够。相关文章应该是很早就有理论分析的,我看到的是80年代初,70年代末。

我表示我也看到了那个论文,,但是也没有找到寄存器。另外即使simulink中有寄存器,生成新的电路模型之后怎么生成vhdl,

那么我怎么设置补码预算啊?是默认就是补码吧,我没有看到关于补码之类的选项啊。内部寄存器长度的话,如果我采用计算输出长度的那个公式得到的记过当做中间级寄存器的长度应该是足够的吧,还有什么其他方法确定寄存器的长度吗?

请问在matlab中如何实现补码运算?是不是将“0”转换成“01”,将“1”转换成“11”,这样调制器的输出位就由一位变成了两位,然后再用权重相加的方式转换成一位输出给CIC滤波器?
另外,在MATLAB中的word length 和fraction length分别指的是什么?为什么fraction length可以比word length还长?

太细节的内容我也记不住了。看你们问的问题,我觉得应该都能在matlab的帮助中找到。一部分概念应该是在fixed point toolsbox里。fraction length应该指小数点后的位数,word length指总长度。前者大后者小就相当于1.234只存了34两个数。

我是这么理解的,wordlength就是总的字长,因为是定点数,所以只要规定fraction的长度就可以确定小数点的位置了。如果设置的fraction的长度比wordlength长,就在前面补0。比如,wordlength是3,fractionlength是5,实际表示的数就是0.00xxx,不知道对不对,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top