好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ADC动态性能指标计算程序.docx

4页
  • 卖家[上传人]:飞***
  • 文档编号:39925254
  • 上传时间:2018-05-21
  • 文档格式:DOCX
  • 文档大小:17.30KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ADC 动态性能指标计算程序一直在用的 ADC动态性能指标计算程序,抽空重写了一下,主要是增强了程序的健壮性 上传一份到空间,以作备份 %“ADC_dynamic“ -Produced by Jerome Cool, 11.28.2010 %ADC 动态特性测试,包含 SINAD,ENOB,SNR,THD,SFDR,HD(1~9 次谐波功率) %输入信号为单音正弦,建议进行测量时施加信号幅度为-2dBFs~-1dBFsclear all; close all; clc; %--请使用者根据实际情况修改以下部分-- filePath='dyn_on\npost_2.csv'; %示波器产生的原始数据文件所在路径和文件名 dataType=1; %数据内容类型,1=编码结果,0=模拟电压(Volt) %注意!目前版本仅能处理普通二进制编码结果 fs=20; %ADC 采样频率(MHz) resolution=8; %ADC 设计比特数 startPoint=100; %用于进行 FFT 起始点编号 dataLen=0; %用于进行 FFT 的点数(应为 2 的幂次),设为 0 时自动选取 needWindow=0; %是否对数据加窗,1=是,0=否,默认为 hanning window%--------------------------------- %--个性化程序段,一般不用修改-- dataOrg=csvread(filePath,0,1); %读入原始 csv 文件内容%------------------------ clear filePath fileName; transpose=size(dataOrg); if transpose(1)dataLen fCenter=2*dataLen-fCenter; endspanL=max(fCenter-span,1);spanR=min(fCenter+span,dataLen); if rem(harIndex,2)==1 %根据谐波所在频率重新计算基频所在频率fCenterFact=find(dataSpect(spanL:spanR)==max(dataSpect(spanL:spanR)));fCenterFact=round(mean(fCenterFact));fCenterFact=spanL+fCenterFact-1;finCali=finCali+(fCenterFact-fCenter)/harIndex;elsefCenterFact=fCenter;endHarFreq(harIndex)=fCenterFact; %查找各次谐波所在频率HarPwr(harIndex)=sum(dataSpect(spanL:spanR).*dataSpect(spanL:spanR));dataSpect(spanL:spanR)=dataSpect(spanL:spanR).*0;dataSpectdB(spanL:spanR)=min(dataSpectdB);if harIndex==1 SFDR=-max(dataSpectdB); end end %各项指标计算if dataType==1signal_amp=20*log10(signal_amp/(2^resolution)); end noisePwr=sum(dataSpect.*dataSpect); SINAD=10*log10(HarPwr(1)/(noisePwr+sum(HarPwr(2:9)))); ENOB=(SINAD-1.76)/6.02; SNR=10*log10(HarPwr(1)/(noisePwr)); THD=10*log10(sum(HarPwr(2:9))/HarPwr(1)); HD=10*log10(HarPwr); HD=(HD-max(HD))'; HD=HD+3; hold on; HarFreq=(HarFreq-1)./dataLen.*(fs/2); plot(HarFreq(2),HD(2),'mo',HarFreq(3),HD(3),'cx',HarFreq(4),HD(4),'r+',HarFreq(5),HD(5), 'g*', ...HarFreq(6),HD(6),'bs',HarFreq(7),HD(7),'bd',HarFreq(8),HD(8),'kv',HarFreq(9),HD(9),'y^');legend('1st','2nd','3rd','4th','5th','6th','7th','8th','9th'); hold off; HD=HD-3; %各项指标显示--------------------------------figure; plot(HD); hold on; plot(HD,'*'); grid on; title('Harmonic Power'); axis([1 9 min(HD)-10 0]); xlabel('Harmonic count'); ylabel('AMPLITUDE (dB)'); hold off; dispstr=strcat('ADC Spec.: Resolution =',char(20),num2str(resolution),' bits, Sampling rate =',char(20),num2str(fs),' Msps.'); disp(dispstr); if dataType==1dispstr=strcat('Input signal amplitude =',char(20),num2str(signal_amp),' dBFs @ Frequency =',char(20),num2str(HarFreq(1)),' MHz.'); elsedispstr=strcat('Input signal amplitude =',char(20),num2str(signal_amp),' Vpp @ Frequency =',char(20),num2str(HarFreq(1)),' MHz.'); end disp(dispstr); disp('----Calculated Results----'); %dispstr=strcat('ENOB =',char(20),num2str(ENOB),' bits');%disp(dispstr); dispstr=strcat('SINAD =',char(20),num2str(SINAD),' dB'); disp(dispstr); dispstr=strcat('SNR =',char(20),num2str(SNR),' dB'); disp(dispstr); dispstr=strcat('SFDR =',char(20),num2str(SFDR),' dB'); disp(dispstr); dispstr=strcat('THD =',char(20),num2str(THD),' dB'); disp(dispstr); dispstr=strcat('HD(1st~9th) in dB =',char(20),num2str(HD)); disp(dispstr); clear dataType HarPwr dataLen dataSpect dataSpectdB span spanL spanR ans dispstr; clear fCenter fCenterFact fin finCali harIndex maxdB noisePwr signal_amp;。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.