二阶Sigma-delta modulator仿真问题
一开始先用Matlab验证功能,输出频谱在低频时的noise floor约为-120dB,
但是将元件改用成实际的OPA、Switch套用到Cadence spectre模拟时,
有Noise shaping的效果,但低频的noise floor变为-90dB,导致SNR变差!
想请问各位牛神低频的noise floor变差是什么原因造成的?还有要怎么改善这个问题?
MATLAB
Spectre
开关热噪声, 运放噪声都可以提高噪底。从两个频谱图来看,有3khz的奇次谐波,估计运放参数也不够吧。其他的到都差不多。
学习了
many questions regarding this.
1、single-bit还是multi-bit ?
2、仿真时是否加入了器件噪声?
3、matlab仿真时是否考虑了运放的非理想因素?gain,speed,slew rate。
4、CIFB结构,信号幅度会比较大,你的运放是否能handle大摆幅?
5、输入信号过大,导致modulator的overload?
6、各级系数设置是否合理?是否能承受一定的偏差?
FFT取的点数不一样,看到的底噪当然不一样,理想模型取点数比实际的多,底噪自然看上去低,你要算一下积分噪声看看差了多少,这才有意义。另外fs=1M,两个频谱截图位置都不对,fin也是不同的fin,除了底噪外,带外噪声翘的更厉害。我觉得你先看看代码有没有问题,其次是逐个用理想元件代替实际的元件,直到找到出问题的元件。分析的话,随便哪本书都有
谢谢分享,先下下来学习~
这个二阶Sigma-delta modulator是用single-bit quantizer,
opamp性能,Gain=75dB, Slew-rate=130V/us,Output swing=1.2V,
想要在MATLAB仿真加入积分器噪声,有一个参数noise1(1st int. output noise)不知道要如何估算?
若套用10uV到noise1,Noise floor上升到-110dB,但還有20dB的差距~
另外,SPECTRE的Transient setup,Tstop=25ms, Tstep=2us,这样设定的取样点数是否足够?
恳请各位大牛指点
有哪位大牛可以帮忙解答呢?
为什么PSD是负值呢,不应该是正数吗