Why the amplitude of Ram-Lak filter is multiplied by 2 in iradon transform?
24 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The FBP reconstrcution algorithm tells us to convolve the sinogram using Ram-Lak Filter (Ramp Filter) along detector channels for every view. Since the Ramp Kernel is generated using the well-known form:
1/4 n = 0
0 n even
-1/(pi*n)^2 n odd
MATLAB iradon function performs filtering in Fourier Domain (Frequency Domain), but the amplitude is multiplied by 2:
filtImpResp = [filtImpResp filtImpResp(end-1:-1:2)];
filt = 2*real(fft(filtImpResp)); % Here is a factor 2, why?
filt = filt(1:(order/2)+1);
For other implementations like in ASTRA Toolbox, they perform filtering in Spatial Domain (Time Domain), there is also a factor 2 to adjust the amplitude:
pfFilt[iDetectorIndex] = 2.0f * pfData[2*iDetectorIndex];
Without this factor, the value of the reconstructed image is HALF of the ground-truth.
3 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!