关于simulink仿真SD-ADC问题
时间:10-02
整理:3721RD
点击:
求助大神这是什么情况
,为什么是负的,怎样修改?
,为什么是负的,怎样修改?
算snr的输入频率的bin不对。比如你输入的频率是15kHz, 采样率是15KHz*64,FFT计算的点数是65536,那么你计算snr是信号所在的bin应该是15k/(64*15k)*65536=1024。但如果你在计算时输入的输入信号的bin不是1024,那么计算的结果就可能是负的。snr不对,最后算出来的ENOB自然也是错的。
多谢大神指导!还得请教大神,bin在哪设置!望不吝赐教
calculateSNR(data_point, bin)
你可以稍微看看understanding delta sigma converter的附录中将SDM工具箱原理的部分
大神我这个是建模仿真出来的我还是不知道你说的BIN在哪设置。
双击PSD吧= =
你是不是用Schreier的delta sigma工具箱嘛?如果是,你算SNR肯定要用calculateSNR这个函数。如果不是你可以说说你是咋个建模的,把程序贴出来看看嘛!
给你举个例子:我给sdm输入的信号是1.097656250000000e+04Hz,我的OSR是64,所以输入信号对应的bin点是281.如果我用来算snr的bin点不是281,而是250,那么算出来的结果就是如图所示的负值。我用的是SD toolbox中的PSD
这个我没用过。但是你看看你的采样率,你输入信号的频率是1khz左右,你的采样频率是960k。OSR也就是差不多是960,这个过采样率可能太大了,你可以调小一点试试。
还有如果你非要用960k这样的采样率,那么你计算snr时用的FFT点数最好是64*OSR,也就是60k个点,但你现在只用了16.384k个点。
请问你知道PSD的子模块是问什么会是这样的呢?
请教Schreier的delta sigma工具箱在哪里可以下载?这个工具箱和sdtools哪个比较好用?我想仿真得出功耗,应该怎么做?