在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 5824|回复: 13

[求助] 采样开关性能测试

[复制链接]
发表于 2021-10-8 14:58:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
自己测试的结果和论文的中结果不同,前面一段是谐波吗,为什么我的有好几组尖峰呢,这个是不是会影响我开关的性能呢?
对sar adc里面的采样开关进行动态性能测试:
代码如下:
adc_data=a'; %采样得出的数据形成的矩阵
numpt=1024;
fclk=1*1e7; %A/D转换器的采样频率f
adc_bit=15;
numbit=adc_bit;
doute=adc_data-mean(adc_data)


doutw=doute.*hanning(numpt)';
dout_spect=fft(doutw);
dout_dB=20*log10(abs(dout_spect));
maxdB=max(dout_dB(1:numpt/2));
x=((0:numpt/2-1).*fclk/numpt);
y1=dout_dB(1:numpt/2)-maxdB;
figure(1)
plot(x,y1);
grid off;
title('32768-Samples FFT spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');

fin=find(dout_dB(1:numpt/2)==maxdB);%找出幅度最大的频率点
%span=max(round(numpt/100),5);
span=5;
spanh=2;
spectp=(abs(dout_spect)).*(abs(dout_spect));%幅度的平方
Pdc=sum(spectp(1:span));
Ps=sum(spectp(fin-span:fin+span));%信号的幅度平方和
Fh=[];
Ph=[];
for har_num=1:10%寻找1至10次谐波分量
tone=rem((har_num*(fin-1)+1)/numpt,1);
if tone>0.5
tone=1-tone;
end
Fh=[Fh tone];
har_peak=max(spectp(round(tone*numpt)-spanh:round(tone*numpt)+spanh));
har_bin=find(spectp(round(tone*numpt)-spanh:round(tone*numpt)+spanh)==har_peak);
har_bin=har_bin+round(tone*numpt)-spanh-1;
Ph=[Ph sum(spectp(har_bin-1:har_bin+1))];
end
Pd=sum(Ph(2:5));
Pn=sum(spectp(1:numpt/2))-Pdc-Ps-Pd;

format;
SINAD=10*log10(Ps/(Pn+Pd));
SNR=10*log10(Ps/Pn);
THD=10*log10(Pd/Ph(1));
SFDR=10*log10(Ph(1)/max(Ph(2:10)));
HD=10*log10(Ph(1:10)/Ph(1));
ENOB=(SINAD-1.76)/6.02;

出来的结果如图
image.png
然后利用specture的程序测试
image.png
但是看到参考的文献中结果为
71545ce6ce70cf59644b22260278d66.png


发表于 2021-10-8 16:21:51 | 显示全部楼层
bootstrap switch吗
回复 支持 反对

使用道具 举报

发表于 2021-10-8 21:32:25 | 显示全部楼层
FFT点数是32768?hanning窗只加了1024,频谱泄露明显,凸起的谐波啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-9 14:31:03 | 显示全部楼层


   
geo24 发表于 2021-10-8 16:21
bootstrap switch吗


对的,自举开关
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-9 14:32:27 | 显示全部楼层


   
风也信子 发表于 2021-10-8 21:32
FFT点数是32768?hanning窗只加了1024,频谱泄露明显,凸起的谐波啦


没有,做的fft点数是1024,备注忘记改了,之前做过32768的测试,性能会提升不少,就是不知道问题所在
回复 支持 反对

使用道具 举报

发表于 2021-10-9 15:36:52 | 显示全部楼层
导出数据的时候记得小数点后多取几位 ,比如8位,应该会好不少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-11 09:19:05 | 显示全部楼层


   
geo24 发表于 2021-10-9 15:36
导出数据的时候记得小数点后多取几位 ,比如8位,应该会好不少


我整个周期1u,采样200n,800n保持,所以我取点的是取得800n对应的点。
回复 支持 反对

使用道具 举报

发表于 2021-10-11 11:41:25 | 显示全部楼层


   
vbstar 发表于 2021-10-11 09:19
我整个周期1u,采样200n,800n保持,所以我取点的是取得800n对应的点。


我知道 我的意思是你sample的点的精度,cadence默认是三位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-12 14:45:43 | 显示全部楼层


   
geo24 发表于 2021-10-11 11:41
我知道 我的意思是你sample的点的精度,cadence默认是三位


我是利用matlab计算,导出的csv文件,在表格里面把小数点调整到15位,可以看到后面是有数据的,这样子的精度应该是比较高的把。
回复 支持 反对

使用道具 举报

发表于 2021-10-12 18:52:53 | 显示全部楼层


   
vbstar 发表于 2021-10-12 14:45
我是利用matlab计算,导出的csv文件,在表格里面把小数点调整到15位,可以看到后面是有数据的,这样子的 ...


是这样的 如何 有改善吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-17 08:33 , Processed in 0.019053 second(s), 4 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表