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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3882|回复: 3

【求助】SAR ADC测试matlab程序

[复制链接]
发表于 2018-6-13 20:15:27 | 显示全部楼层 |阅读模式

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

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

x
data_adc=importdata('rlc2_6.txt');
N=8192/2;
dynamic_data=data_adc(1:N,6);
data_size=size(dynamic_data);
N=max(data_size);
% sample_number=input('输入采样点数:');
% if sample_number>N
%      display('样本数据数量不够,请检查')
% else data=dynamic_data(1:sample_number);
%     N=sample_number;//N
% F_samples=input('输入采样频率:');
F_samples=100e6;
Mean_code=mean(dynamic_data);
V=dynamic_data-Mean_code;
V=V.*hanning(N);
dout_spect=fft(V);
dout_dB=20*log10(abs(dout_spect));
max_dB=max(dout_dB(1:N/2));
x=(0:N/2-1).*F_samples/N;
y=dout_dB(1:N/2)-max_dB;
figure(1)
plot(x,y);
axis([0,F_samples/2,-120,0]);
grid off;
title('FFT图');
xlabel('模拟输入频率(Hz)');
ylabel('幅值(dB)');%fft
F_in=find(dout_dB(1:N/2)==max_dB);%find the point corresponding max_dB
span=max(round(N/200),2);
spanh=2;
spectp=(abs(dout_spect)).*(abs(dout_spect));
Pdc=sum(spectp(1:span));
Ps=sum(spectp(F_in-span:F_in+span));
F_harmonic=[];
P_harmonic=[];
for har_number=1:10
    tone=rem((har_number*(F_in-1)+1)/N,1);
    if tone>0.5  
        tone=1-tone;
    end
F_harmonic=[F_harmonic tone];
har_peak=max(spectp(round(tone*N)-spanh:round(tone*N)+spanh));
har_bin=find(spectp(round(tone*N)-spanh:round(tone*N)+spanh)==har_peak);
har_bin=har_bin+round(tone*N)-spanh-1;
P_harmonic=[P_harmonic sum(spectp(har_bin-1:har_bin+1))];
end
disp(F_harmonic);
disp(P_harmonic);
Pd=sum(P_harmonic(2:5));
Pn=sum(spectp(1:N/2))-Pdc-Ps-Pd;
format;
SNR=10*log10(Ps/Pn);
SINAD=10*log10(Ps/(Pn+Pd));
SFDR=10*log10(P_harmonic(1)/max(P_harmonic(2:10)));
THD=10*log10(Pd/P_harmonic(1));
ENOB=(SINAD-1.76)/6.02;
A=[SNR,SINAD,SFDR,THD,ENOB]
% xlswrite('D:\major_design9.1\PD_adjust_filter6_sopc530_add3M\data\data.xlsx',A,'sheet2','B6:F6');

程序是下载的,为什么会有’索引超出矩阵维度‘的错误。
 楼主| 发表于 2018-6-13 20:24:53 | 显示全部楼层
.csv格式的数据要经过什么处理才能导入matlab处理吗==
发表于 2018-9-29 16:18:11 | 显示全部楼层
回复 2# wutong56tg


   应该是数据和你定义的矩阵不匹配
发表于 2019-3-16 21:50:28 | 显示全部楼层
har_peak=max(spectp(round(tone*N)-spanh:round(tone*N)+spanh));

楼主,应该是这一句吧?今天我也在看这一段程序,发现也是有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-8 19:44 , Processed in 0.017540 second(s), 6 queries , Gzip On, Redis On.

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