这些都是比较基础和实用的东西,故做分享~
以前在实验室跑ADC动态性能仿真,会跑不少点,浪费了不少时间。主要是由于当时没有用相干采样的频率,而是直接选一个和采样频率比较互质的输入频率,然后再进行加窗处理防止频谱泄露,但是一般即使加了窗,也会有一些泄露,因此需要尽量多采样一些点,这样做的效率比较低,浪费了不少时间。
如果直接选用相干采样的频率,选取合适的点数不让谐波淹没在噪声中就OK,输出的结果不用加窗直接做FFT分析即可。
1)直接用cadence计算器
使用dft函数能够直接画出频谱图,由于采用了相干采样,因此直接选用矩形窗就OK,输出的信号是单频点的;
thd函数得出的结果实际上并不是“thd”一般所定义的,即所有谐波的总和,这里计算器得出的其实是SNDR的结果,而且已经自动剔除了直流分量的,具体可以查看cadence的ocean_ref文档,其中fundemental直接写0就Ok,这样它会自己去找最大的那个信号频点
2)通过matlab函数
用诸如Maxim的程序的话,若采用了相干采样这里就不要加窗了,结果应该和cadence直接计算的结果一致。
注意:如果采用table导出ADC结果的时候,是有个精度设置的,在table里头format->有效位数那里可以设置,导出的精度没有损失,结果才会和cadence直接计算的一致。
但是如果是实际测试,输入信号和时钟频率之间的关系就不好固定了,所以还是需要加窗函数的。