5.0

5.0 | 1 rating Rate this file 43 Downloads (last 30 days) File Size: 47.78 KB File ID: #25135

NUFFT, NFFT, USFFT

by Matthew Ferrara

 

25 Aug 2009 (Updated 13 Oct 2009)

Implements 1D-3D NUFFTs via "Fast Gaussian Gridding."

| Watch this File

File Information
Description

The Matlab code in this folder implements 1D-3D NUFFTs via fast Gaussian gridding. The convolution loops are written as C programs to be compiled as mex files from the Matlab command prompt. Further mathematical details about the code can be found in L. Greengard and J. Lee, "Accelerating the Nonuniform Fast Fourier Transform," SIAM Review, Vol. 46, No. 3, pp. 443-454.

I have included three example scripts (fgg_1D_experiment.m, etc)that create a simple 1D/2D/3D image and compare the DFT with the Type-I NUFFT (DFT from nonuniform data to uniform image grid). The image data are transformed back to the data domain via the adjoint operator (a Type-II NUFFT--uniform grid DFTed to nonuniform data locations--implemented with IFFTs instead of FFTs) and back again to the image domain to demonstrate the numerical accuracy. This code does not include Type-III transforms (nonuniform-->nonuniform), but one could easily be developed by combining the Type-I and Type-II functions provided here.

Before running any of the test scripts, remember to compile the mex files in the Matlab terminal by executing these commands:
mex FGG_Convolution1D.c
mex FGG_Convolution1D_type2.c
mex FGG_Convolution2D.c
mex FGG_Convolution2D_type2.c
mex FGG_Convolution3D.c
mex FGG_Convolution3D_type2.c

If you publish anything that uses this code, we ask that you please reference the source, as this will encourage future funding for more free Air Force Research Laboratory (AFRL) products. This code was developed through the Air Force Office of Scientific Research (AFOSR) Lab Task "Moving-Target Radar Feature Extraction."
Project Manager: Arje Nachman
Principal Investigator: Matthew Ferrara

MATLAB release MATLAB 7.6 (R2008a)
Other requirements c compiler
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (6)
10 Oct 2009 Cris Luengo

Matthew, you are not a "Principle Investigator" unless you investigate principles. You should spell that "principal".

This is a very interesting submission, I'm going to give a look. Thanks!

11 Feb 2010 kk KKsingh

Its not working for me, worked for some one or not

28 Feb 2010 kk KKsingh

In your code you said on request you can submit the code by Liu, can you submit it .....it will be good for comparision and study purpose

24 Jun 2011 bmv

fix some C files please
Need to properly close the comments:
/ * Copy input pointer Scales_point
should be:
/ * Copy input pointer Scales_point * /
etc.

21 Jul 2011 David

Could you please clarify which routine goes from non-uniform spatial grid to uniform spatial grid? Thanks for the submission.

07 Dec 2011 Apple

This doesn't work for 3D non-Cartesian MRI k-space trajectory.

Please login to add a comment or rating.
Updates
13 Oct 2009

Bug was fixed in 2D code. Grammatical error fixed in notes (thanks, Cris).

Tag Activity for this File
Tag Applied By Date/Time
signal processing Matthew Ferrara 25 Aug 2009 14:28:07
image processing Matthew Ferrara 25 Aug 2009 14:28:07
mathematics Matthew Ferrara 25 Aug 2009 14:28:07
polar format algorithm Matthew Ferrara 25 Aug 2009 14:38:50
mri imaging Matthew Ferrara 25 Aug 2009 14:38:50
gridding Matthew Ferrara 25 Aug 2009 14:38:50
tomography Matthew Ferrara 25 Aug 2009 14:38:50

Contact us at files@mathworks.com