Gerchberg–Saxton Phase Retrieval

Run a bounded one-dimensional Gerchberg–Saxton phase-retrieval iteration.

Description

Gerchberg–Saxton phase retrieval alternates amplitude constraints in two Fourier-related planes.

Gerchberg–Saxton phase retrieval alternates amplitude constraints in two Fourier-related planes. Here the data are one-dimensional amplitudes and initial source phase is zero.1

Run a bounded one-dimensional Gerchberg–Saxton phase-retrieval iteration.

When to use Gerchberg–Saxton Phase Retrieval

Use this tool to run a bounded one-dimensional Gerchberg–Saxton phase-retrieval iteration.

Prepare the optical measurements, geometry, fitted coefficients or caller-selected thresholds requested. Confirm wavelength, radius/diameter, pulse-width, angle and unit conventions before running the calculation.

How to use Gerchberg–Saxton Phase Retrieval and understand its results

  1. Prepare the optical measurements, geometry, fitted coefficients or caller-selected thresholds requested. Confirm wavelength, radius/diameter, pulse-width, angle and unit conventions before running the calculation.
  2. Enter sourceAmplitude, targetAmplitude, iterations using the field table and calculation rules, then run the tool.
  3. Read sourcePhaseRadians, finalTargetAmplitude. The explanation below defines the units, signs, ordering and any flags or placeholder values.
  4. If the tool reports an input issue, correct the values and run it again. Apply the stated assumptions when interpreting a successfully returned result.
Input fieldMeaningValue type; see rules belowRequirement
sourceAmplitudeSource-plane amplitudeslist of numberRequired
targetAmplitudeTarget-plane amplitudeslist of numberRequired
iterationsIteration countinteger; minimum: 1; maximum: 100Required

Enter nonempty aligned nonnegative source/target amplitudes and integer iterations 1–100. Use direct DFT and inverse DFT divided by n, repeatedly enforce target amplitude and restore source amplitude. Return source phase and final target amplitude.

phase←arg(IDFT(targetAmplitude×exp(i arg(DFT(sourceAmplitude×exp(i phase))))))

Units, indexing, boundary conditions and exceptional cases are defined in the calculation rules above.

Output fieldMeaningValue type
sourcePhaseRadiansRetrieved source phase (rad)list of number
finalTargetAmplitudeFinal target-plane amplitudeslist of number
json
{
  "input": {
    "sourceAmplitude": [
      1,
      1
    ],
    "targetAmplitude": [
      2,
      0
    ],
    "iterations": 1
  },
  "output": {
    "sourcePhaseRadians": [
      0,
      0
    ],
    "finalTargetAmplitude": [
      2,
      1.2246467991473532e-16
    ]
  }
}

Limitations and assumptions

No convergence criterion or uniqueness guarantee is provided. All-zero amplitudes are accepted. Cost scales as iterations×n², so use short scoped arrays.

Numeric inputs must be finite. Follow the calculation-specific rules for overflow, underflow and exceptional cases. Lists are limited to 100,000 entries; the rules above may require smaller limits. Missing required fields, extra fields, wrong value types and violations of the calculation rules are input errors.

Alternative or Complementary methods

Use THz Waveform Spectrum: Compute a direct discrete magnitude spectrum from a THz time-domain waveform. For a complementary task, use Optical Phased-Array Steering: Calculate phased-array beam steering from wavelength, element spacing, and adjacent phase shift.

References

  1. Gerchberg–Saxton Phase Retrieval — tool.io

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies