Vous êtes sur la page 1sur 15

The Filtered Backprojection

Algorithm in MATLAB
Greg Gallardo
51:185

Filtered Backprojection Algorithm
1. Measure the family of projections

K = # of projections (angles), N=# of rays (detector size)
2. Perform FFT[ ]
3. Multiply FFT[ ] by FFT[ ].
4. Perform IFFT[ product from step 3]
5. Perform backprojection as:
( ) N n K i n P
i
,..., 2 , 1 ; ,..., 2 , 1 , = = t
u
( ) K i n P
i
,..., 2 , 1 , = t
u
( ) t
u
n P
i
( ) t n h
( ) ( )

=
+ =
K
i
i i
y x Q
K
y x f
i
1
sin cos , u u
t
u
1) Measure the family of projections
[R,Xp] = RADON(...) returns
two variables
Matrix R columns are the
Radon transform for the angles
. Rows are detector position
Vector Xp - containing the
radial coordinates
corresponding to each row of R.
1) Measure the family of projections
Function parameters
size(): gets N and K
nextpow2(): get width for FFT
2) Perform FFT[ ]
MATLAB stands for MATrix LABoratory
Matrix operations are faster than visiting
each element in a loop.
( ) K i n P
i
,..., 2 , 1 , = t
u
3) Multiply FFT[ ] by FFT[ ]
Backprojection filters
Shepp-Logan: Ram-Lak
multiplied by sinc
function (see iradon
help)
Cosine: Ram-Lak
multiplied by cosine
Hamming: Ram-Lak
multiplied by Hamming
window
Hanning, Blackman, etc.


( ) t n h
( ) t
u
n P
i
3) Multiply FFT[ ] by FFT[ ]
Ram-Lak, Shepp-Logan and Cosine filters in frequency
domain
( ) t n h
( ) t
u
n P
i
3) Multiply FFT[ ] by FFT[ ]
FIR Filters. Commonly used Windows
( ) t n h
( ) t
u
n P
i
Figure from Discrete-Time Signal Processing, Oppenheim & Schafer, Prentice-Hall
3) Multiply FFT[ ] by FFT[ ]
Rectangular

Bartlett (triangular)

Hanning (von Hann)

Hamming

Blackman
( ) t n h
( ) t
u
n P
i

s s
=
otherwise
M n
n w
, 0
, 0 , 1
] [

s <
s s
=
otherwise
M n M M n
M n M n
n w
, 0
2 / , / 2 2
2 / 0 , / 2
] [

s s
=
otherwise
M n M n
n w
, 0
, 0 ), / 2 cos( 5 . 0 5 . 0
] [
t

s s
=
otherwise
M n M n
n w
, 0
, 0 ), / 2 cos( 46 . 0 54 . 0
] [
t

s s +
=
otherwise
M n M n M n
n w
, 0
, 0 ), / 4 cos( 08 . 0 ) / 2 cos( 5 . 0 42 . 0
] [
t t
from Discrete-Time Signal Processing, Oppenheim & Schafer, Prentice-Hall
3) Multiply FFT[ ] by FFT[ ]
( ) t n h
( ) t
u
n P
i
3) Multiply FFT[ ] by FFT[ ]
( ) t n h
( ) t
u
n P
i
3) Multiply FFT[ ] by FFT[ ]
Filter step. Element by element multiplication





( ) t n h
( ) t
u
n P
i
4) IFFT[product from step 3]
5) Perform Backprojection as:
( ) ( )

=
+ =
K
i
i i
y x Q
K
y x f
i
1
sin cos , u u
t
u
Results
Results

Vous aimerez peut-être aussi