#pragma rtGlobals=1 // Use modern global access method. #include #include "GENERATE_PSTH" #include "Temporal" #include "Generate_Radons" // FBP takes data in the form of a radon transform generated by "Generate_Radons" where rows represent bar position and colums represent angles // function FBP(w, dtheta, d) //w - radon transform; dtheta - number of angles; d - filter wave w //row - rays; col - angles variable dtheta, d d=0.6 // filter strength set at 0.6, delete this line if you would like to vary the filter variable N = dimsize(w,0) dtheta = pi/dtheta make/FREE /o /n=(dimsize(w,1)) theta=x*dtheta //angles from 0 to 180 incremented by the angle spacing variable len = dimsize(w, 0) hammFilt(len, d) wave H,filt make /FREE/o /n=(dimsize(H,0), dimsize(w,1)) ppad ppad = 0 ppad[0,dimsize(w,0)-1][]=w[x][y] fft /cols /dest=ppT ppad variable i for (i=0; i(pi*d+.00001)) filt[i] = 0 else filt[i] = filt[i] * (.54 + .46 * cos(w[i]/d)) endif endfor //duplicate /o /r=(1,31) filt ord, filtRev duplicate /o /r=(1,order/2-1) filt ord, filtRev ord=x sort /r ord filtRev concatenate /o /np {filt,filtRev}, H end