% Put data from experiment into arrays cal1 = [ 0 5.72 0.5 5.84 1 5.92 2 6.24 4 6.64 8 7.28 9 7.44 ]; cal2=[ 0 5.68 0.5 5.76 1 5.84 2 6.16 4 6.56 8 7.28 9 7.52 ]; cal3 = [ 0 5.64 0.5 5.76 1 5.88 2 6.16 4 6.6 6 6.84 8 7.12 10 7.32 ]; cal4 = [ 0 5 0.5 5.12 1 5.21 2 5.44 4 5.88 6 6.28 8 6.64 10 6.88 ]; data1 = [ 0 5.72 0.27 5.52 0.27 5.6 0.5 5.2 0.5 5.36 0.75 5.28 0.75 5.28 1 5.04 1 5.04 ]; data2 = [ 0 5.8 0.1 5.72 0.2 5.64 0.3 5.52 0.4 5.44 0.5 5.4 0.6 5.36 0.7 5.28 0.8 5.28 0.9 5.12 1 4.96 1.1 4.96 1.2 4.96 1.3 4.88 1.4 4.64 1.5 4.64 ]; data3 = [ 0 5.76 0.11 5.68 0.2 5.56 0.3 5.56 0.4 5.52 0.5 5.36 0.6 5.32 0.69 5.28 0.8 5.16 0.9 5.08 0.99 5 1.1 4.92 1.2 4.92 1.31 4.8 1.4 4.88 1.5 4.76 ]; figure(3); x = data1(:,1); y = data1(:,2); scatter(x,y); hold on; x = data2(:,1); y = data2(:,2); scatter(x,y,'r'); x = data3(:,1); y = data3(:,2); scatter(x,y,'k'); hold off; title('Scatter plot of 3 distance data sets'); figure(4); x = cal1(:,1); y = cal1(:,2); scatter(x,y); hold on; x = cal2(:,1); y = cal2(:,2); scatter(x,y,'r'); x = cal3(:,1); y = cal3(:,2); scatter(x,y,'k'); x = cal4(:,1); y = cal4(:,2); scatter(x,y,'g'); hold off; title('Scatter plot of 4 time (calibration) data sets'); % Calculate volts/second for the calibration data for i=2:7 % Data point, minus zero point, divided by time delay cal1(i,2) = ( cal1(i,2)-cal1(1,2) )/cal1(i,1); cal2(i,2) = ( cal2(i,2)-cal2(1,2) )/cal2(i,1); end % Cals from second day were slightly different for i=2:8 % Data point, minus zero point, divided by time delay cal3(i,2) = ( cal3(i,2)-cal3(1,2) )/cal3(i,1); cal4(i,2) = ( cal4(i,2)-cal4(1,2) )/cal4(i,1); end % Make it easier to deal with this data cal1 = cal1(2:7,2); cal2 = cal2(2:7,2); cal3 = cal3(2:8,2); cal4 = cal4(2:8,2); cal(1:6) = cal1; cal(7:12)=cal2; cal(13:19)=cal3; cal(20:26) = cal4; % Average the calibration data for final calibration value calFinal = mean(cal); calDev = std(cal); figure(1); plot(cal); axis tight; title(sprintf('Calibration data in volts/nanosecond, mean = %.4f, std = %.4f', calFinal, calDev)); % Calculate volts/meter for the range data % Data from day 1 for i=2:9 % Data point, minus zero point, divided by time delay data1(i,2) = ( data1(i,2)-data1(1,2) )/data1(i,1); end % Data from day 2 for i=2:16 % Data point, minus zero point, divided by time delay data2(i,2) = ( data2(i,2)-data2(1,2) )/data2(i,1); data3(i,2) = ( data3(i,2)-data3(1,2) )/data3(i,1); end %Make it easier to deal with data(1:8) = data1(2:9,2); data(9:23) = data2(2:16,2); data(24:38) = data3(2:16,2); data = abs(data); % Get rid of irrelevant negative sol = data * calFinal; % Find mean, standard error, and plot final data and error sol = calFinal ./ data; sol = sol .* 1E9; figure(2); plot(sol); SOL = mean(sol); title(sprintf('Speed of light data in m/s, mean = %.2E, std = %.2E', SOL, std(sol))); axis tight;