Skip to content

Change SAR backprojection range-bin center convention - #1226

Open
tbensonatl wants to merge 1 commit into
mainfrom
tbenson/sarbp-adjust-bin-offset-convention
Open

Change SAR backprojection range-bin center convention#1226
tbensonatl wants to merge 1 commit into
mainfrom
tbenson/sarbp-adjust-bin-offset-convention

Conversation

@tbensonatl

Copy link
Copy Markdown
Collaborator

Update sar_bp to follow the fftshift convention, placing zero differential range at floor(N/2) instead of the geometric midpoint (N-1)/2. For cases with an odd number of range bins, the two conventions already matched. For cases with an even number of range bins, the midpoint now matches the bin that held zero frequency from the perspective of the ifft.

Add even and odd-length unit test coverage for the complex zero differential range response.

Update sar_bp to follow the fftshift convention, placing zero differential range at
floor(N/2) instead of the geometric midpoint (N-1)/2. For cases with an odd number of
range bins, the two conventions already matched. For cases with an even number of range
bins, the midpoint now matches the bin that held zero frequency from the perspective of
the ifft.

Add even and odd-length unit test coverage for the complex zero differential range response.

Signed-off-by: Thomas Benson <tbenson@nvidia.com>
@tbensonatl tbensonatl self-assigned this Aug 14, 2026
@copy-pr-bot

copy-pr-bot Bot commented Aug 14, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR changes SAR backprojection to place zero differential range at floor(N/2), matching the FFT-shift convention, and updates the SARBP converter to serialize the physical frequency shifted into transform DC.

  • Aligns direct and phase-LUT backprojection paths on the new range-bin center.
  • Separates signal-center frequency from the range-profile phase-reference frequency.
  • Documents the convention and adds even/odd zero-range coverage.

Confidence Score: 5/5

The PR appears safe to merge, with the kernel, converter, documentation, and tests consistently implementing the FFT-shift range-bin convention.

The direct and phase-LUT paths use the same integer center, interpolation remains bounds-checked, and the converter’s transform direction and frequency-sign handling cancel correctly for both SGN conventions.

Important Files Changed

Filename Overview
include/matx/kernels/sar_bp.cuh Direct sampling and phase-LUT generation consistently adopt floor(N/2), with existing interpolation bounds preserved.
examples/sarbp/cphd_to_sarbp_input.py The converter distinguishes signal-center and phase-reference frequencies and derives range spacing from the raw FX sample grid; no concrete failure was established.
include/matx/operators/sar_bp.h Public parameter and range-profile documentation now states the FFT-shift and phase-reference contracts.
test/00_transform/SarBp.cu Tests cover even and odd profile lengths across direct and phase-LUT execution and update synthesized targets to the new convention.
docs_input/api/signalimage/radar/sar_bp.rst API documentation accurately describes zero differential range at floor(N/2).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  FX["Raw FX samples"] --> SHIFT["Shift raw bin floor(N/2) to transform DC"]
  SHIFT --> FFT{"CPHD SGN"}
  FFT -->|"-1"| IFFT["IFFT"]
  FFT -->|"+1"| FWD["FFT"]
  IFFT --> PROFILE["FFT-shifted range profile<br/>zero differential range at floor(N/2)"]
  FWD --> PROFILE
  REF["SC0 + floor(N/2) × SCSS"] --> HEADER["SARBP phase-reference frequency"]
  HEADER --> BP["SAR backprojection phase correction"]
  PROFILE --> BP
Loading

Reviews (1): Last reviewed commit: "Change SAR backprojection range-bin cent..." | Re-trigger Greptile

@tbensonatl

Copy link
Copy Markdown
Collaborator Author

/build

@coveralls

Copy link
Copy Markdown

Coverage Status

Coverage is 93.332%tbenson/sarbp-adjust-bin-offset-convention into main. No base build found for main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants