/* test driver for PDM analysis */ /* Stellingwerf - 2004 */ /* todo - 1. include sig in analysis - done 2. combine multiband data - ?? 3. filter out subharmonics - done -----------------------------*/ #---set data file, use .csv form--- $datfile = tucas.csv input $datfile #---read the data--- read_lab $datfile for_i = 1 100000 read_dat Xdat[i] Ydat[i] break_if eof end_i N = i-1 show_nl show_field "data read - " @N " points" query .. for_i = 1 N Sdat[i] = 0 end_i /*====standard test case in paper==== show_nl show_line "====sine wave test case====" //show_line "====sawtooth test case====" show_nl Per = 1 Tmax = 10 N = 50 seed ran seed 1 for_i = 1 N Xdat[i] = (i-1)*Tmax/N //Xdat[i] = Xdat[i]+floor(i/(N/3.)) // gaps Ran = 3*(ran2+ran2+ran2) Ydat[i] = sin(2*pi*Xdat[i]/Per)+Ran //Ydat[i] = Ydat[i]+sin(2*pi*Xdat[i]/0.75) // 2per //Ydat[i] = 2*fp(Xdat[i]/Per)-1+rang // saw Sdat[i] = Ran //Sdat[i] = 0 end_i set_per_params 100 0 2 //set_per_opts 0 0 0 1 // dist set_per_opts 0 1 1 1 // classical pdm2 exit ====================================*/ #---PDM ANALYSIS--- #---first do a broad search--- set_per_params 3 0 4. pdm2 invert query "rough cut done..." system "copy pdmplot.csv p1.csv" #---now look at the best candidate--- set_per_params 100 F_min[1]-.01 F_min[1]+.01 500 pdm2 invert system "copy pdmcurve.csv c1.csv" query "Best case done...." /*------------second period-----------*/ set_delim comma read_lab residuals.csv for_i = 1 N read_dat Xdat[i] Ydat[i] end_i query "residual data read..." #---PDM ANALYSIS--- #---first do a broad search--- set_per_params 3 0 4. 2 pdm2 invert query "rough cut done..." system "copy pdmplot.csv p1.csv" #---now look at the best candidate--- set_per_params 100 F_min[1]-.01 F_min[1]+.01 500 pdm2 invert system "copy pdmcurve.csv c1.csv" query "Best case done...."