This is the MATLAB implementation of the paper Resolution Limit of Single-Photon LiDAR - CVPR 2024, by Stanley H. Chan, Hashan K. Weerasooriya, Weijian Zhang, Pamela Abshire and Istvan Gyongy and Robert K. Henderson.
Click on the corresponding link to
- Read the Paper and Supplementary Material
- The static fan timestamp dataset will be made available upon request
- This code has been tested on MATLAB 2023a
- Figure02_matched_filter.m Visualize the matched filter output.
- Figure03_space_time.m Visualize the effective return pulse due to obervating $\lambda(x,t)$ through $N$ pixels and pulse broadening due to slanting surfaces.
- Figure05_1D_mse.m Display the simulated and MSE calculation theroretical MSE calculation for the 1D case.
- Figure06_1D_variance.m Highlight the significance of the spatial term $c^2 \sigma_x^2$ in variance calculation.
- Figure07_2D_mse.m Display the simulated and MSE calculation theroretical MSE calculation for the 2D case.
- Figure08_******.m Visualize the variation of the ML estimation for different spatial resolution and calculated and theoreteical MSE variation for the real 2D data.
- Figure11_tau.m Display the ground truth time of arrival function for the 1D case.
- Figure12/13_bias_example.m Show the limitations of the approximations for the bias term under different ground truth time of arrival function variations-smooth, stepwise, noisy.
- Figure14_bias_update.m Show how the updated theoretical estimate of the bias varies with noisy ground truth.
- Figure16_sampling.m Demonstrate how to use the inverse CDF to generate time stamps under different pulse shapes.
- Figure17_18_sampling.m Visualize the likelihood functions original likelihood and derivative of the original likelihood for any arbitrary pulse including Gaussian.
- Figure19_noise_floor.m Demonstrate that the MSE thoretical bound still holds for non zero noise floor instances.
- Figure20_pile_up_1D.m Show the variation of time stamp histogram under pile-up effect.
- Figure21_pile_up_MSE.m Display the MSE comparison in the presence of pile-up effect.
- Figure22_2D_bias.m Demonstrate how the bias term varies in the 2D case.
- Figure23_2D_bias.m Demonstrate how the variance term changes in the 2D case.
- real_check_alpha0.m Calculate the total pulse energy $\alpha_0$ for the static fan real dataset.
- real_check_sigma_t.m Calculate the pulse variance $\sigma_t$ for the static fan real dataset.
- real_preprocess.m Preprocess the timestamp data for the static fan real dataset.
- generate_time_stamps.m Generate $M$ random timestamps following the provided pulse function $\lambda(t)$.
- myLikelihood.m Calculate negative log likelihood values for given set of time stamps when the pulse is Gaussian.
- myLikelihood_dt.m Calculate the derivative of the negative log likelihood at given set of time stamps when the pulse is Gaussian.
- myLikelihood_general.m Calculate the derivative of the negative log likelihood values for given set of time stamps for any given arbitrary pulse.
- myLikelihood_general_dt.m Calculate the derivative of the negative log likelihood at given set of time stamps and for any given arbitrary pulse.
If you find this paper to be valuable for your research, kindly consider citing our work.
@misc{chan2024resolution,
title={Resolution Limit of Single-Photon LiDAR},
author={Stanley H. Chan and Hashan K. Weerasooriya and Weijian Zhang and Pamela Abshire and Istvan Gyongy and Robert K. Henderson},
year={2024},
eprint={2403.17719},
archivePrefix={arXiv},
primaryClass={eess.SP}
}
Please email hweeraso@purdue.edu if you have any difficulty replicating the results.