EDABOSS电子论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 516|回复: 3

[疑难求助] SAR ADC测试matlab程序

[复制链接]

8

主题

1

回帖

45

E币

技术员

Rank: 2

积分
17
发表于 2020-3-23 11:58:05 | 显示全部楼层 |阅读模式
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');

程序是下载的,为什么会有’索引超出矩阵维度‘的错误。
积分规则
回复

使用道具 举报

8

主题

1

回帖

45

E币

技术员

Rank: 2

积分
17
 楼主| 发表于 2020-3-23 11:58:24 | 显示全部楼层

.csv格式的数据要经过什么处理才能导入matlab处理吗==
回复 支持 反对

使用道具 举报

6

主题

1

回帖

39

E币

技术员

Rank: 2

积分
13
发表于 2020-3-24 08:57:05 | 显示全部楼层
应该是数据和你定义的矩阵不匹配
回复 支持 反对

使用道具 举报

11

主题

4

回帖

60

E币

技术员

Rank: 2

积分
26
发表于 2020-3-24 08:57:57 | 显示全部楼层
har_peak=max(spectp(round(tone*N)-spanh:round(tone*N)+spanh));

楼主,应该是这一句吧?今天我也在看这一段程序,发现也是有问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|EDABOSS电子论坛

GMT+8, 2024-4-26 01:09 , Processed in 0.042429 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表