Matlab Code For Phase Shifting Holography

R
Rebekah Homenick-Walsh

Matlab Code For Phase Shifting Holography

**Mastering MATLAB Code for Phase Shifting Holography: A Practical Guide**

matlab code for phase shifting holography is a powerful tool for researchers and

engineers working in optical imaging, metrology, and wavefront analysis. Whether you’re

delving into digital holography for the first time or looking to refine your approach,

understanding how to implement phase shifting algorithms in MATLAB can significantly

enhance the accuracy and quality of reconstructed images. In this article, we'll explore

the fundamentals of phase shifting holography, walk through MATLAB code examples, and

share tips to optimize your holographic reconstructions.

Understanding Phase Shifting Holography

Before diving into MATLAB programming, it helps to grasp the core principles of phase

shifting holography. This technique involves capturing multiple interferograms

(holograms) of an object wavefront with known phase shifts introduced between each

capture. By analyzing these phase-shifted holograms, one can extract the phase

information of the object wave, which is critical for reconstructing three-dimensional

images or detailed surface profiles.

Unlike traditional holography, phase shifting adds a controlled phase delay—typically in

increments of 90° (π/2 radians)—between the reference and object beams. This controlled

manipulation allows for precise calculation of the phase distribution, reducing noise and

unwanted artifacts.

Why Use MATLAB for Phase Shifting Holography?

MATLAB is widely favored for optical signal processing because of its versatile matrix

manipulation capabilities, in-built image processing toolkits, and ease of visualization.

When handling phase shifting holography, MATLAB enables:

**Efficient handling of large datasets** of interferograms.

**Implementation of phase extraction algorithms**, such as the four-step or five-

step phase shifting methods.

**Visualizing phase maps and amplitude reconstructions** using powerful plotting

functions.

**Customization and integration** with other optical simulation or measurement

tools.

Basic Workflow of MATLAB Code for Phase Shifting Holography

Typically, MATLAB code designed for phase shifting holography follows these steps:

**Loading or capturing multiple holograms** with known phase shifts.

1.

**Preprocessing holograms** (e.g., background subtraction, normalization).

2.

**Applying phase extraction algorithms** to compute the wrapped phase.

3.

**Performing phase unwrapping** to retrieve continuous phase maps.

4.

**Reconstructing the object wavefront** from phase and amplitude data.

5.

**Visualizing the results** through images and 3D surface plots.

6.

Each stage is integral to producing high-quality holographic reconstructions.

Example: Four-Step Phase Shifting Algorithm in MATLAB

One of the most common methods to extract phase information is the four-step phase

shifting algorithm, which uses four holograms with phase shifts of 0°, 90°, 180°, and 270°.

The phase \(\phi\) at each pixel can be computed using the formula:

\[

\phi = \tan^{-1} \left( \frac{I_4 - I_2}{I_1 - I_3} \right)

\]

where \(I_1, I_2, I_3, I_4\) are the intensities of the four phase-shifted holograms.

Here’s a simple MATLAB snippet illustrating this calculation:

```matlab

% Load or simulate four phase-shifted holograms: I1, I2, I3, I4

% These should be matrices of the same size representing intensities

% Example loading images (replace with your actual data)

I1 = im2double(imread('hologram_0deg.png'));

I2 = im2double(imread('hologram_90deg.png'));

I3 = im2double(imread('hologram_180deg.png'));

I4 = im2double(imread('hologram_270deg.png'));

% Calculate wrapped phase

phi_wrapped = atan2(I4 - I2, I1 - I3);

% Visualize wrapped phase

figure;

imagesc(phi_wrapped);

colormap('jet');

colorbar;

title('Wrapped Phase Map');

```

This code computes the wrapped phase map, which contains discontinuities (jumps

between -π and π) that need to be addressed before meaningful interpretation.

Phase Unwrapping: From Wrapped to Continuous Phase

Since the phase output from the four-step method is wrapped modulo \(2\pi\), unwrapping

is essential to obtain a continuous phase distribution, which corresponds to the actual

optical path differences.

MATLAB offers several approaches to phase unwrapping:

**2D phase unwrapping algorithms**, such as the Goldstein or quality-guided

methods.

Built-in functions like `unwrap` can work for 1D signals but are limited for 2D phase

maps.

Third-party tools like the `Phase Unwrapping` toolbox available on MATLAB File

Exchange.

An example using the simple 2D unwrap function from File Exchange:

```matlab

% Assuming phi_wrapped is your wrapped phase matrix

phi_unwrapped = unwrap2d(phi_wrapped);

% Visualize unwrapped phase

figure;

imagesc(phi_unwrapped);

colormap('jet');

colorbar;

title('Unwrapped Phase Map');

```

For best results, ensure your phase unwrapping method handles noise and phase

singularities effectively.

Optimizing MATLAB Code for Real-World Holography

When writing MATLAB code for phase shifting holography, consider these practical tips:

**Noise Reduction:** Apply filters (e.g., Gaussian or median) on holograms before

phase computation to reduce speckle noise.

**Phase Shift Calibration:** Verify that the phase shifts between holograms are

precise; errors can introduce phase artifacts.

**Background Correction:** Subtract background or reference holograms to isolate

the object wavefront.

**Memory Management:** For high-resolution holograms, preallocate matrices and

use efficient data types to speed up processing.

**Visualization:** Use interactive plots or 3D surface plots (`surf`, `mesh`) to better

understand phase distributions.

Advanced MATLAB Code Techniques for Phase Shifting

Holography

Beyond basic phase extraction, MATLAB allows for implementing sophisticated algorithms

and enhancements:

Multi-Step Phase Shifting Algorithms

More than four phase shifts can be used to improve robustness against noise and phase

errors. For example, the five-step algorithm introduces additional frames and uses least

squares fitting to compute phase.

```matlab

% Assuming I1 to I5 contain five phase-shifted holograms

% Phase shifts: 0, 72, 144, 216, 288 degrees

N = 5;

delta = 2*pi/N;

% Construct matrices for least squares fitting

A = zeros([size(I1), 2]);

for k = 1:N

Ik = eval(sprintf('I%d', k));

A(:,:,1) = A(:,:,1) + Ik * cos((k-1)*delta);

A(:,:,2) = A(:,:,2) + Ik * sin((k-1)*delta);

end

phi = atan2(A(:,:,2), A(:,:,1));

```

This approach reduces phase ambiguity and improves measurement accuracy.

Combining with Fourier Transform Techniques

Some MATLAB implementations integrate phase shifting holography with Fourier

transform methods to filter and reconstruct holograms in the frequency domain,

enhancing noise suppression and resolution.

```matlab

% Example: Fourier filtering of holograms before phase calculation

F_I1 = fft2(I1);

% Apply frequency filter (e.g., bandpass mask)

% ...

filtered_I1 = ifft2(F_I1_filtered);

% Repeat for other holograms and then compute phase

```

Such hybrid methods can be tailored to specific holographic setups or applications.

Practical Applications of MATLAB Code for Phase Shifting

Holography

The versatility of MATLAB code for phase shifting holography spans multiple fields:

**Optical metrology:** Measuring surface topography and deformation in

engineering materials.

**Biomedical imaging:** Non-invasive 3D imaging of cells and tissues.

**Industrial inspection:** Quality control of microstructures and thin films.

**Wavefront sensing:** Adaptive optics and laser beam profiling.

By fine-tuning MATLAB scripts, users can develop custom solutions tailored to their

experimental setups and research goals.

Learning Resources and Community Support

For those interested in mastering MATLAB implementations of phase shifting holography,

various resources are invaluable:

MATLAB’s official documentation and tutorials on image processing and signal

analysis.

Research papers and theses describing algorithmic details and experimental results.

Online forums such as MATLAB Central and Stack Overflow for coding help.

Open-source toolboxes and code repositories offering ready-to-use phase

unwrapping and holography functions.

Engaging with the community accelerates learning and problem-solving.

Exploring matlab code for phase shifting holography unlocks a deeper understanding of

optical phase measurement and digital image reconstruction. With MATLAB’s versatile

environment, both beginners and advanced users can experiment, optimize, and innovate

in this exciting area of computational optics. Whether you’re building your first

holographic setup or refining complex algorithms, hands-on coding coupled with

theoretical insight will pave the way toward clearer, more accurate holographic imagery.

Question

Answer

What is phase shifting

holography and how is

it implemented in

MATLAB?

Phase shifting holography is an optical technique used to

record and reconstruct the phase information of an object

wave by capturing multiple holograms with known phase

shifts. In MATLAB, it is implemented by acquiring several

interferograms with different phase shifts, then applying

algorithms such as the four-step or five-step phase shifting

method to calculate the wrapped phase and reconstruct the

hologram.

Can you provide a

basic MATLAB code

snippet for four-step

phase shifting

holography?

Yes, a basic MATLAB implementation involves capturing four

intensity images with phase shifts of 0, π/2, π, and 3π/2. The

wrapped phase \( \phi \) can be computed using: \n\nI1, I2, I3,

I4 = intensity images with phase shifts 0, π/2, π, 3π/2

respectively.\n\nphi = atan2(I4 - I2, I1 - I3);\n\nThis calculates

the wrapped phase map from the four interferograms.

How can noise be

reduced in phase

shifting holography

MATLAB code?

Noise reduction can be achieved by applying spatial filtering

techniques such as Gaussian or median filters on the

interferograms before phase calculation. Additionally,

temporal averaging by acquiring multiple sets of phase-shifted

images and averaging can improve signal-to-noise ratio.

MATLAB's built-in functions like imgaussfilt or medfilt2 can be

used for this purpose.

What MATLAB

functions are useful for

unwrapping the phase

in phase shifting

holography?

MATLAB provides the function unwrap for 1D phase

unwrapping, but for 2D phase data, functions like

'unwrapPhase' from the Image Processing Toolbox or third-

party tools such as Goldstein's or Flynn's phase unwrapping

algorithms implemented in MATLAB are commonly used to

obtain continuous phase maps from wrapped phase data.

How do I visualize the

reconstructed phase

hologram in MATLAB?

After computing the wrapped or unwrapped phase,

visualization can be done using MATLAB's imagesc or imshow

functions. For better visualization, applying a colormap such as

'jet' or 'hsv' helps distinguish phase variations. Example:

imagesc(phi); colormap('jet'); colorbar; axis image;

title('Reconstructed Phase Hologram');

Matlab Code for Phase Shifting Holography: An In-Depth Technical Review

matlab code for phase shifting holography represents a critical toolset within the

field of optical imaging and digital holography. As phase shifting holography techniques

gain prominence for their precision in capturing phase information of optical wavefronts,

the deployment of MATLAB for simulation and reconstruction has become increasingly

widespread. This article investigates the nuances of phase shifting holography

implemented via MATLAB code, examining its algorithmic structure, practical applications,

and the computational strategies that optimize performance.

Understanding Phase Shifting Holography and Its Computational

Demands

Phase shifting holography (PSH) is a robust method for extracting quantitative phase

information by recording multiple interferograms with controlled phase shifts. Unlike

traditional holography that captures intensity distributions, PSH enables the retrieval of

both amplitude and phase of the object wavefront by applying known phase shifts to the

reference beam. This phase modulation enhances accuracy in applications ranging from

surface metrology to biological imaging.

The computational aspect of phase shifting holography involves processing multiple

interferograms to reconstruct the complex object wave. MATLAB, with its powerful matrix

manipulation capabilities and extensive image processing toolbox, serves as an ideal

platform. However, MATLAB code for phase shifting holography must efficiently manage

noise, phase unwrapping, and calibration to produce reliable results.

Core Algorithmic Components in MATLAB Implementation

At the heart of MATLAB code for phase shifting holography lies the phase extraction

algorithm. Typically, the process involves recording N interferograms \(I_k(x,y)\) with

phase shifts \(\phi_k\), and reconstructing the phase \(\phi(x,y)\) via formulas such as:

\[

\phi(x,y) = \tan^{-1}\left(\frac{\sum_{k=1}^N I_k(x,y) \sin \phi_k}{\sum_{k=1}^N

I_k(x,y) \cos \phi_k}\right)

\]

The MATLAB script must handle:

Data Acquisition: Import and preprocess the interferogram images, often stored in

1.

TIFF or PNG formats.

Phase Shift Calibration: Define or estimate phase shifts \(\phi_k\) for accuracy,

2.

sometimes using iterative methods if shifts are unknown.

Phase Calculation: Apply the above arctangent formula pixel-wise across the

3.

image matrix.

Phase Unwrapping: Correct the inherent \(2\pi\) ambiguities in wrapped phase

4.

data, employing algorithms like Quality-Guided Path Following or Goldstein’s

method.

Post-processing: Filter noise and enhance phase maps for visualization or further

5.

analysis.

Sample MATLAB Code Snippet for a Four-Step Phase Shifting Algorithm

```matlab

% Load four interferograms with pi/2 phase shifts

I1 = double(imread('interferogram1.tif'));

I2 = double(imread('interferogram2.tif'));

I3 = double(imread('interferogram3.tif'));

I4 = double(imread('interferogram4.tif'));

% Calculate wrapped phase

numerator = I4 - I2;

denominator = I1 - I3;

wrappedPhase = atan2(numerator, denominator);

% Phase unwrapping using MATLAB's built-in function

unwrappedPhase = unwrap(wrappedPhase, [], 1);

unwrappedPhase = unwrap(unwrappedPhase, [], 2);

% Display results

figure;

subplot(1,2,1);

imagesc(wrappedPhase);

title('Wrapped Phase');

colorbar;

subplot(1,2,2);

imagesc(unwrappedPhase);

title('Unwrapped Phase');

colorbar;

```

This example highlights the essential workflow in MATLAB for phase shifting holography,

demonstrating the balance between simplicity and functionality.

Advantages and Challenges of MATLAB for Phase Shifting

Holography

Using MATLAB for phase shifting holography offers several advantages:

High-Level Language: MATLAB’s syntax is intuitive for matrix operations and

1.

image processing, reducing development time.

Extensive Toolboxes: Access to built-in functions for phase unwrapping, filtering,

2.

and visualization enhances code robustness.

Visualization Tools: Easy plotting and interactive visualization facilitate

3.

debugging and result interpretation.

However, certain challenges emerge:

Computational Speed: MATLAB can be slower than compiled languages like C++

1.

especially for large datasets or real-time processing.

Memory Use: Handling large interferogram stacks requires significant memory

2.

resources, which can be a limitation on standard workstations.

Phase Shift Calibration: Accurate phase shift knowledge is crucial; MATLAB

3.

scripts need to incorporate calibration routines or adaptive algorithms to correct

phase errors.

Optimizations and Enhancements in MATLAB Code

To overcome performance bottlenecks in MATLAB code for phase shifting holography,

several optimization strategies are employed:

Vectorization: Avoiding explicit loops by leveraging MATLAB’s matrix operations

1.

improves speed significantly.

Parallel Computing Toolbox: Distributing computations across multiple CPU

2.

cores or GPUs accelerates processing.

Algorithmic Refinements: Implementing advanced phase unwrapping algorithms

3.

that minimize error propagation.

Preprocessing: Utilizing denoising filters like median or wavelet-based methods

4.

before phase extraction to enhance signal quality.

Additionally, integrating MATLAB with hardware control software enables real-time phase

shifting holography setups, bridging experimental optics and computational

reconstruction.

Comparative Review: MATLAB vs. Alternative Platforms for Phase

Shifting Holography

While MATLAB is popular, alternatives such as Python (with libraries like NumPy, SciPy,

and OpenCV) and LabVIEW are also used in digital holography. MATLAB’s main strengths

lie in its mature ecosystem and ease of use, but Python offers greater flexibility and

integration with open-source tools at the cost of a steeper learning curve. LabVIEW excels

in hardware interfacing but may lack the sophisticated image processing functionalities

natively present in MATLAB.

Choosing MATLAB code for phase shifting holography often depends on the project’s

complexity, required computational speed, and existing infrastructure. For rapid

prototyping and academic research, MATLAB remains a go-to solution. Industrial

applications demanding real-time performance may prefer compiled implementations or

hardware-accelerated environments.

Real-World Applications Leveraging MATLAB in Phase Shifting

Holography

MATLAB-driven phase shifting holography finds applications across domains such as:

Surface

Profilometry:

High-precision

3D

surface

measurements

of

1.

microstructures and industrial components.

Biomedical Imaging: Quantitative phase imaging of transparent cells and tissues,

2.

aiding in diagnostic procedures.

Material Science: Stress and strain analysis through phase mapping on material

3.

surfaces.

Optical Metrology: Wavefront sensing and adaptive optics calibrations.

4.

In these scenarios, MATLAB code facilitates rapid development and customization of

phase reconstruction algorithms tailored to specific experimental setups.

The landscape of phase shifting holography continues to evolve, with MATLAB code

serving as a foundational element for researchers and engineers aiming to harness the

full potential of this imaging modality. Its blend of mathematical rigor, computational

efficiency, and visualization capabilities ensures that MATLAB remains integral to

advancing phase-shifting holographic techniques.

phase shifting holography code, matlab holography script, digital holography matlab,

phase retrieval matlab, hologram reconstruction matlab, interferometry matlab code,

phase unwrapping matlab, optical holography matlab, fringe analysis matlab, holographic

imaging matlab

Related Stories

Constructions Hydrauliques Ecoulements

Jaquelin Hoppe

peugeot scooter service manual

Tracey Blick

Blanco Sobre Cinco

Amiya Shanahan

A Ray Of Light

Georgiana Stehr