Type Of Equipment |
Equipment Count and Notes |
Synthesized Signal Generator: HP/Agilent 8662/3A (10kHz to 1.28/2.56GHz, -139dBm to +13dBm) or HP/Agilent 8644A (252kHz to 1.030GHz, -140dBm to +20dBm) |
2 generators for single-channel ADC input and clock 3 generators for IMD test (single-channel ADC) or 3 generators for dual-channel ADC inputs and clock 4 generators for IMD test (dual-channel ADC) |
Logic Analyzer System: HP/Agilent 16500C mainframe (or similar) (1Gsps State Analyzer Card HP16517A optional and for ADCs with sampling speeds >100MHz only) |
1 Logic analyzer (in default configuration, allows to evaluate up to 4 channels for ADCs with up to 16-bit resolution) |
Band-Pass Filters: TTE's Q56/KC7 series for frequencies <100MHz>100MHz (Other suitable filter suppliers are Allen Avionics or K&L Microwave) |
1 Filter for single-channel ADC 2 Filters for simultaneous evaluation of a dual-channel ADC |
Power Combiner: Mini-Circuits 15542 ZSC-2-1W (or similar) |
1 Combiner (used for two-tone IMD evaluation only) |
RF FrequencyBalun/Transformer: MA/COM H-9-SMA (or similar) |
2 Baluns for single-channel ADC and clock 3 Baluns for dual-channel ADC and clock |
GPIB-Compatible Interface Card: National Instruments GPIB/IEEE®-488 Interface Card + driver and installation software (PC-/PCMCIA-card or GPIB-to-USB port adapter) |
1 Interface card Note: This card is recommended for fast data transfer between logic analyzer and computer; requires C-based software platform (e.g. LabWindows/CVI) to control the interface. Data can also be extracted from the logic analyzer with a floppy disk. |
Data Analysis Software: MATLAB from The Math Works Inc. or Measurement Studio with LabWindows/CVI from National Instruments |
1 License for each software package Note: LabWindows/CVI provides a C-based platform to control the interface between logic analyzer and PC |
%Source Code Sample MAX144X Family | ||||
%The following program code plots the FFT spectrum of a desired test tone. Test tone based on coherent sampling criteria, and | ||||
%computes SNR, SINAD, THD and SFDR. | ||||
%Copyright Au/Hofner, Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA94086 | ||||
%This program is believed to be accurate and reliable. This program may get altered without prior notification.; | ||||
disp('HP16500C LA 100/110 State Card'); | ||||
filename=input('Enter file name or press RETURN to accept data from LA via GPIB/HPIB): '); | ||||
if isempty(filename) | ||||
filename = 'listing'; | ||||
end | ||||
fid=fopen(filename,'r'); | ||||
numpt=input('Number of Points in FFT? '); | ||||
fclk=input('Sampling Frequency (MHz)? '); | ||||
numbit=input('ADC Resolution? '); | ||||
%Discard first 13 lines of the LA listing (LA header), as they don't contain valid data. | ||||
for i=1:13, | ||||
fgetl(fid); | ||||
end | ||||
[v1,count]=fscanf(fid,'%f',[2,numpt]); | ||||
fclose(fid); | ||||
v1=v1'; | ||||
code=v1(:,2); | ||||
%Warning: ADC output may be clipping - reduce input amplitude | ||||
if (max(code)==2numbit-1) | (min(code)==0) | ||||
disp('WARNING: ADC OUTPUT MAYBE CLIPPING - CHECK INPUT AMPLITUDE!'); | ||||
end | ||||
figure; | ||||
plot([1:numpt],code); | ||||
title('TIME DOMAIN') | ||||
xlabel('SAMPLES'); | ||||
ylabel('DIGITAL OUTPUT CODE'); | ||||
Dout=code-(2^numbit-1)/2; | %Re-center the digitized sinusoidal input | |||
Doutw=Dout; | ||||
Dout_spect=fft(Doutw); | ||||
Dout_dB=20×log10(abs(Dout_spect)); | ||||
figure; | ||||
maxdB=max(Dout_dB(1:numpt/2)); | ||||
plot([0:numpt/2-1].×fclk/numpt,Dout_dB(1:numpt/2)-maxdB); | ||||
grid on; | ||||
title('FFT PLOT'); | ||||
xlabel('ANALOG INPUT FREQUENCY (MHz)'); | ||||
ylabel('AMPLITUDE (dB)'); | ||||
a1=axis; axis([a1(1) a1(2) -100 a1(4)]); | ||||
fin=find(Dout_dB(1:numpt/2)==maxdB); | %Find the signal bin (DC represents bin=1) | |||
span=max(round(numpt/200),5); | %Determine span of input frequency on each side | |||
spanh=2; | %Search span for harmonic distortion components on each side | |||
spectP=(abs(Dout_spect)).× (abs(Dout_spect)); | %Determine power level | |||
Pdc=sum(spectP(1:span)); | %Determine DC offset power level | |||
Ps=sum(spectP(fin-span:fin+span)); | %Determine signal power level | |||
Fh=[]; | %Vector storing frequency and power components of signal and harmonics | |||
Ph=[]; | %HD1=signal, HD2=2nd harmonic, HD3=3rd harmonic, etc. | |||
%Find the harmonic frequencies/power within the FFT plot | ||||
for har_num=1:10 | ||||
tone=rem((har_num × (fin-1)+1)/numpt,1); | %Note: tones > fSAMPLE are aliased back | |||
if tone>0.5 | ||||
tone=1-tone; | ||||
end | ||||
Fh=[Fh tone]; | ||||
%For this method to work properly, make sure that the folded back high order harmonics do not overlap with DC and signal | ||||
%components or lower order harmonics. | ||||
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)); | %Total distortion power level | |||
Pn=sum(spectP(1:numpt/2))-Pdc-Ps-Pd; | %Extract noise power level | |||
format; | ||||
A=(max(code)-min(code))/2numbit | %Analog input amplitude in mV | |||
AdB=20×log10(A) | %Analog input amplitude in dB | |||
SNR=10×log10(Ps/Pn) | %SNR in dB | |||
SNR=10×log10(Ps/Pn) | %SINAD in dB | |||
SINAD=10×log10(Ps/(Pn+Pd)) | ||||
disp('THD - HD2 through HD5'); | ||||
THD=10×log10(Pd/Ph(1)) | %THD in dB | |||
SFDR=10×log10(Ph(1)/max(Ph(2:10))) | %SFDR in dB | |||
disp('SIGNAL AND HARMONIC POWER (dB)'); | ||||
HD=10×log10(Ph(1:10)/Ph(1)) | ||||
hold on; | ||||
plot(Fh(2)×fclk,0,'mo',Fh(3)×fclk,0,'cx',Fh(4)×fclk,0,'r+',Fh(5)×fclk,0,'g×',Fh(6)×fclk,0,'bs',Fh(7)×fclk,0,'bd',Fh(8)×fclk,0,'kv', | ||||
Fh(9)×fclk,0,'y^'); | ||||
legend('SIGNAL','HD2','HD3','HD4','HD5','HD6','HD7','HD8','HD9'); | ||||
hold off; |
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』