home news gallery staff research publications teaching software join lab contact

Fresnelab: Multi-resolution Fresnel transform for Matlab

 

A Fresnel transform Matlab Package written by M. Liebling and N. Chacko



Functional block diagram: Fresnelab

(a) General design for obtaining discrete samples of continuous Fresnel transform,
(b) its discrete equivalent when the ratio of the second to the first sampling step is M and
(c) its corresponding inverse framework for reconstruction.


Introduction

This package provides several functions to compute the Fresnel(et) transform of complex wavefronts, as described in [1].

For a given parameter τ, the continuous unitary Fresnel transform of a function f(x), x in RD (D=1 or 2), is defined as the convolution:
g(x) =( f * kτ ) (x),
where the convolution kernel,
kτ(x)=(1/τ)D exp(i π (||x||/τ)2)

fresnelet_transform is essentially a numerical implementation of the efficient multiresolution Fresnel transform algorithm elucidated in [1]. The Fresnelet transform computes inner products of the function to transform with Fresnelets, wavelets that result from the Fresnel transform of B-splines. A complete description of the algorithm and of some applications can be found in [1].

A good starting point to explore these functions is 'demo_fresnelet_wt.m' and the comments therein, and of course, the functions themselves.

Syntax

d=fresnelet_transform(c, tau, T)
d=fresnelet_transform(c, tau, T, m)
d=fresnelet_transform(c, tau, T, m, deg)

ct=inv_fresnelet_transform(d, tau, T)
ct=inv_fresnelet_transform(d, tau, T, m)
ct=inv_fresnelet_transform(d, tau, T, m, deg)

Description

fresnelet_transform(c, tau, T) computes the Fresnelet transform of f, with a parameter tau. f contains the samples characterizing function f(x) and sampled with a sampling step T. It assumes the same sampling step for the transformed function and sinc interpolation.

fresnelet_transform(c, tau, T, m) computes the same as above, but the sampling step on the transformed side is T' = mT. The default is m=1. If f has size N x M the output image will be of size N/m x M/m.

fresnelet_transform(c,tau, T, m, deg) computes the same as above, but the degree of the used Fresnelets is given by deg. The default is deg=inf.

inv_fresnelet_transform(d, tau, T, ...) returns the least-square estimate of the input approximation coefficients from the output samples computed using fresnelet_transform, where all parameters mean same as before.

Examples

1) Consider a one-dimensional complex wave field in a reference plane, represented as a weighted sum (with associated weights, c, spaced apart by T1=1 and periodic by N=5 of B-spline functions (of degree=3).



Input function Input coefficients

The discrete samples of its Fresnel transform (with say tau=2.5) spaced apart by T2=1 may be computed using:

d=fresnelet_transform(c, 2.5, 1, 1, 3)



Input function output coefficients


2) Fresnel transform being seperable, the concept may readily be extended to higher dimensions.

Input image

Original image, f


For any given parameter tau, discrete samples of the Fresnel transform of the image is obtained by,

d=0.1; lambda=632.8e-9; tau=sqrt(lambda*d); T=10e-6;
fres=fresnelet_transform(c,tau,T)

Spline Flower, degree = 0

abs(fres) for d=0.1

Spline Flower, degree = 0

angle(fres) for d=0.1


3) By changing the sub-sampling factor in a subsequent manner, a pyramidic structure may be obtained, as is depicted in 'demo_fresnelet_wt.m'.


Pyr struct (abs)

abs(pyramidic_structure) for d=0.05

Pyr struct (ang)

angle(pyramidic_structure) for d=0.05


4) The multiresolution version of the Fresnel transform described may be implemented using FRENELET_TRANSFORM and the fractional wavelet transform package written by Dr. Thierry Blu, available at http://bigwww.epfl.ch/demo/fractsplines/, to realize a multistage wavelet decomposition, as depicted in 'demo_fresnelet_wt.m'.


Wavelet decomposition

Five-stage Fresnelet-wavelet transform


Going in the inverse direction, the original image may be reconstructed while retaining only a portion of the wavelet coefficients possessing the highest energy.


Reconstructed result

Reconstructed image from
5% of the wavelet coefficients


Reference

[1] M. Liebling, T. Blu, M. Unser, "Fresnelets: new multiresolution wavelet bases for digital holography", IEEE Trans. Image Proc., vol. 12, no. 1, pp. 29-43, January 2003.

Acknowledgements

Michael Liebling has written this library while a PhD student with Prof. Michael Unser at the Biomedical Imaging Group, EPFL. The program is based on code initially written by Thierry Blu. Further modifications and this page have been done by Nikhil Chacko at UCSB.

 

Download

By downloading this software from this site, you agree to the following terms and conditions.

Copyright © 2012 The Regents of the University of California. All rights reserved.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OF ANY KIND WHATSOEVER, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF HE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION IS PROVIDED "AS IS". THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

If you publish results that are based on any of the functions included in the FRESNELAB distribution, I expect you to acknowledge our work by citing the following paper:

M. Liebling, T. Blu, M. Unser, "Fresnelets: new multiresolution wavelet bases for digital holography", IEEE Trans. Image Proc., vol. 12, no. 1, pp. 29-43, January 2003.

In that paper, you will also find the mathematical details concerning this algorithm.

Download: Fresnelab v. 0.1.

Note: In order to function properly, Fresnelab requires the fractional wavelet transform package written by Thierry Blu, available at http://bigwww.epfl.ch/demo/fractsplines/ .

 

Feedback

Please send bug reports and comments about Fresnelab and this page to M. Liebling, but please understand that this software is provided "AS IS" and that I cannot provide any support.

 

Copyright

Copyright © 2012 Michael Liebling. All rights reserved.