Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #152. Fixes #172.
This PR implements wrap-safe transfer functions. After this PR, undersampled data will not create wrapped transfer functions, which should address many of the reconstruction artifacts we've seen.
Before (e.g. phase transfer function with transverse and axial wrapping):
After:
A prerequisite for this PR is a clear set of transverse and axial Nyquist sampling rates.
This PR redefines the
calculate_transfer_function
call so it should Just Work (™). The old calls have been renamed to_calculate_wrap_unsafe_transfer_function
. Better naming suggestions are welcome.This PR implements these fixes for all of the transfer functions in the main branch:
Similar behavior for vector-optics transfer functions will follow in the
vector-prototype
branch.Testing status I'm passing automated tests, and I've tested all of the example scripts with undersampled parameters to check for wrapping. @ziw-liu I would appreciate your help with testing on real data because your use cases helped us spot these artifacts.