% main.m % Main routine to exercise Bayesian Blocks Routines % Data files: photon_times.dat % background_dat % Function files: find_change.m -- locate changepoints % make_segments.m -- construct blocks % show_blocks -- plot blocks % block_pulses.m global prior_ratio data_bins prior_ratio = 500; % larger values (>1) make segmention harder fprintf(1,'prior ratio: %12.8g\n', prior_ratio ) if ~exist('xx') % Load and bin data load photon_times.dat load background.dat % num_photons = length(photon_times)-1; % photon_times = photon_times(1:num_photons); num_bins = 256; % MatLab Histogram requires array specifying bin centers t_min = min( photon_times ); t_max = max( photon_times ); t_range = t_max - t_min; dt_bin = t_range / num_bins; mid_first = t_min + ( dt_bin / 2 ); mid_last = t_max - ( dt_bin / 2 ); data_bins = linspace( mid_first, mid_last, num_bins ); xx = hist( photon_times, data_bins ); end if ~exist('t_seg') [ n_seg, x_seg_vec ] = make_segments( photon_times ); t_seg = photon_times( n_seg ); or23 = ones( size( t_seg ) ); fprintf(1,'Number of blocks: %4.0f\n', length( t_seg ) ) end show_blocks( photon_times, t_seg, x_seg_vec, n_seg ) ylabel('KC/s -- TTE') ylabel('TTE')