k-Wave Toolbox
k-Wave Toolbox Previous   Next

kspacePlaneRecon

3D planar FFT reconstruction

Syntax

p_xyz = kspacePlaneRecon(p_tyz, dy, dz, dt, c)
p_xyz = kspacePlaneRecon(p_tyz, dy, dz, dt, c, ...)

Description

kspacePlaneRecon takes an acoustic pressure time-series p_tyz recorded over an uniform array of sensor points on a plane, and constructs an estimate of the initial acoustic pressure distribution that gave rise to those measurements using an algorithm based on the FFT. The input p_tyz must be indexed p_tyz(time step, sensor y position, sensor z position), where the sensor spacing is given by dy and dz, the temporal spacing given by dt, and the sound speed in the propagation medium (which is assumed to be acoustically homogeneous) is given by c. The output p_xyz is indexed as p_xyz(x position, y position, z position).

The code uses a k-space algorithm which performs (1) a Fourier transform on the data p_tyz along both t, y, and z dimensions (into wavenumber-frequency space), (2) a mapping, based on the dispersion relation for a plane wave in an acoustically homogeneous medium, from wavenumber-frequency space to wavenumber-wavenumber space, and finally (3) an inverse Fourier transform back from the wavenumber domain to the spatial domain. The result is an estimate of the initial acoustic pressure distribution from which the acoustic waves originated.

Steps (1) and (3) can be performed efficiently using the fast Fourier transform (FFT); they are therefore fastest when the number of samples and number of detector points are both powers of 2. The mapping in step (2) requires an interpolation of the data from an evenly spaced grid of points in the wavenumber-frequency domain to an evenly-spaced grid of points in the wavenumber-wavenumber domain. The option 'Interp' may be used to choose the interpolation method.

The physics of photoacoustics requires that the acoustic pressure is initially non-negative everywhere. The estimate of the initial pressure distribution generated by this code may have negative regions due to artefacts arising from differences between the assumed model and the real situation, e.g., homogeneous medium vs. real, somewhat heterogeneous, medium; infinite measurement surface vs. finite-sized region-of-detection, etc. A positivity (or non-negativity) condition can be enforced by setting the optional 'PosCond' to true which simply sets any negative parts of the final image to zero.

Inputs

p_tyz

pressure time-series recorded over a uniform array of sensor points in a plane (indexed as t, y, z)

dy, dz

spatial step [m]

dt

time step [s]

c

acoustically-homogeneous sound speed [m/s]

Optional Inputs

Optional 'string', value pairs that may be used to modify the default computational settings.

Input Valid Settings Default Description

'DataOrder'

'tyz'
'yzt'

'tyz'

String input which sets the order of the input data.

'Interp'

(string of interpolation type)

'*nearest'

String input controlling the interpolation method used by interp3 in the reconstruction.

'Plot'

(boolean literal)

false

Boolean controlling whether a plot of the reconstructed estimate of the initial acoustic pressure distribution is produced.

'PosCond'

(boolean literal)

false

Boolean controlling whether a positivity condition is enforced on the reconstructed estimate of the initial acoustic pressure distribution.

Outputs

p_xyz

estimate of the initial acoustic pressure distribution (indexed as x, y, z)

Examples

See Also

interp3, kspaceLineRecon, makeGrid


© 2009-2014 Bradley Treeby and Ben Cox.