function out= rd_cti(fname) // read data files in .cti-format (HP/Agilent Network Analyzers) // // Author: P. Knott, FGAN-FHR // // changes: // 23.05.2006 function created fi= mopen(fname, "r"); nseg= 0; while ~meof(fi) s= mgetl(fi, 1); if length(s) > 3 select convstr(part(s, 1:4), "l") case "!dat" out.date= part(s, 7:length(s)); case "begi" nseg= nseg + 1; dat= mfscanf(-1, fi, "%f,%f\n"); out.dat(nseg).val= dat(:,1) + %i*dat(:,2); // real + j*imag case "cons" res= tokens(s); out.date= [res(5) "." res(4) "." res(3) ", " res(6) ":" res(7)]; case "data" nseg= nseg + 1; res= tokens(s, " "); out.dat(nseg).name= res(2); case "seg " res= tokens(s, " "); out.freq= linspace(eval(res(2)), eval(res(3)), eval(res(4))).'; nseg= 0; case "var_" dat= mfscanf(-1, fi, "%g\n"); out.freq= dat; s= mgetl(fi, 1); // skip "var_list_end" nseg= 0; end end end mclose(fi); endfunction