PRO nagc_test, SUM_I, SUM_Q ;Parameter offset_rbin = 25 nagc_step = 0.5 nagc_ini = 0.5 nagc_samples = 62 ;Processing stop_rbin = n_elements(SUM_I[0,*]) nagc_sig = complex(SUM_I,SUM_Q) nagc_sum = 20.*alog10(abs(total(nagc_sig[*,offset_rbin:stop_rbin-1],2))) nagc_c = -(lindgen(nagc_samples)*nagc_step) diff = nagc_sum - nagc_sum[0] - nagc_c ;stop ;accuracy accuracy_0_4 = where(abs(diff[0:3*2]) GT 0.3, num_fail) num_fail_acc = num_fail accuracy_4_8 = where(abs(diff[3.5*2:7*2]) GT 0.4, num_fail) num_fail_acc = num_fail_acc + num_fail accuracy_8_16 = where(abs(diff[7.5*2:15*2]) GT 0.5, num_fail) num_fail_acc = num_fail_acc + num_fail accuracy_16_32 = where(abs(diff[15.5*2:30.5*2]) GT 0.7, num_fail) num_fail_acc = num_fail_acc + num_fail IF (num_fail_acc GT 0) THEN print," NAGC ACCURACY FAIL", num_fail_acc ELSE print," NAGC ACCURACY OK" ;stop ;monotonicità mon = (nagc_sum-shift(nagc_sum,-1))[0:nagc_samples-2] mon_fail = where(mon LE 0., num_fail) IF (num_fail GT 0) THEN print, " NAGC MON_FAIL", num_fail ELSE print," NAGC MON OK" ;gmcplot, Y1=nagc_sum - nagc_sum[0], Y2=nagc_c, Y3=diff, xglob=lindgen(nagc_samples)*0.5+0.5 END PRO stc_test, SUM_I, SUM_Q, max_att, stc_tracking ;Parameter offset_rbin = 25 stc_step = 0.5 nagc_ini = 0.5 stc_samples = 256 att_to_ck = max_att ;Processing start_rbin = 20 stop_rbin = start_rbin + stc_samples stc_sig = 20.*alog10(abs(fft(complex(SUM_I,SUM_Q),dim=1))) stc_to_analyze = stc_sig[64,start_rbin:stop_rbin-1] print, "attenuazione primo campione", stc_to_analyze[0] stc_to_analyze = (stc_to_analyze[2*lindgen(stc_samples/2)] + stc_to_analyze[2*lindgen(stc_samples/2)+1])/2 stc_c = -(lindgen(stc_samples/2)*stc_step) diff = stc_to_analyze - stc_to_analyze[0] - stc_c ;accuracy att_stc = diff[0:9.5*2] accuracy_0_10 = where(abs(att_stc) GT 0.75+1.0, num_fail) num_fail_acc = num_fail IF num_fail GT 0 THEN print, abs((att_stc)[accuracy_0_10]), 0.75+1, stc_c[accuracy_0_10] att_stc = diff[10*2:19.5*2] accuracy_10_20 = where(abs(att_stc) GT 1.+2.5, num_fail) num_fail_acc = num_fail_acc + num_fail IF num_fail GT 0 THEN print, abs((att_stc)[accuracy_10_20]), 1.+1, stc_c[10*2+accuracy_10_20] att_stc = diff[20*2:att_to_ck*2-1] accuracy_20 = where(abs(att_stc) GT -0.05*stc_c[20*2:att_to_ck*2-1]+2.5, num_fail) num_fail_acc = num_fail_acc + num_fail IF num_fail GT 0 THEN print, abs((att_stc)[accuracy_20]), -0.05*stc_c[20*2+accuracy_20]+1.0, stc_c[20*2+accuracy_20] IF (num_fail_acc GT 0) THEN BEGIN print," ACCURACY FAIL", num_fail_acc ENDIF ELSE print," ACCURACY OK" ;monotonicità mon = (stc_to_analyze-shift(stc_to_analyze,-1))[0:att_to_ck*2-1] mon_fail = where(mon LE 0., num_fail) IF (num_fail GT 0) THEN print, " MON_FAIL", num_fail ELSE print, " MON_OK" ;, mon_fail*0.5 stc_tracking = stc_to_analyze - stc_to_analyze[0] ;gmcplot, Y1=stc_to_analyze - stc_to_analyze[0], Y2=stc_c, Y3=diff, xglob=0.5*lindgen(stc_samples/2) END