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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1457|回复: 2

[求助] ADC动态参数测试程序问题

[复制链接]
发表于 2020-6-30 18:47:46 | 显示全部楼层 |阅读模式

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

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

x
最近想要测试ADC的动态参数,对于matlab程序上有一些疑问,想请教一下


fin=find(Dout_dB(1:numpt/2)==maxdB);

span = 5;
spanh = 2;

spectP = (abs(Dout_spect)).*(abs(Dout_spect));
Pdc = sum(spectP(1:spanh));

Ps = sum(spectP(fin-span:fin+span));

Fh = [];
Ph = [];

for har_num=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;
AM=(max(code)-min(code))/2^numbit;
AMdB=20*log10(AM);
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:7)));
HD=10*log10(Ph(1:10)/Ph(1));
ENOB=(SINAD-1.76)/6.02;
ENOBfs=(SINAD-AMdB-1.76)/6.02;



上面是从网上找到的计算动态参数的程序,想问一下程序里面的span和spanh代表的是什么意思,还有寻找1-10次谐波时的tone又是什么意思
发表于 2020-7-7 11:43:20 | 显示全部楼层
span是积分信号频谱的宽度,spanh是其一般,因为实际频谱的信号和谐波不会是一根线的,而是最高峰两侧都要能量。

后面那段循环是求谐波的频率,如果频率超过采样频率的一般,就会混叠到0~fs/2里面
发表于 2020-8-3 21:00:46 | 显示全部楼层
小白想问一下,Pn=sum(spectP(1:numpt/2))-Pdc-Ps-Pd;  Pn是负数是怎么回事,我的Pdc,Ps,Pd都是一个数量级的,跟sum(spectP(1:numpt/2))差不多大小。想问一下,我是哪里搞错了。期待各位大佬的回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-26 14:11 , Processed in 0.019221 second(s), 6 queries , Gzip On, Redis On.

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