Instructor: Evgeniy Kuksin Preformed by: Ziv Landesberg Duration: 1 semester Create a FIR filter that can process pulses from photon counting detectors and perform Peak Detection using NI Labview FPGA. The project is completed! Final clock rate – 125MHz (due A/D) Successfully processing 4 channel simultaneously Photons FPGA 𝐶𝐹 + ADC Shaper Peak Detector Readout To PC Signal generator (Preamplifier emulator) A\D NI 5761 14 bit 125 MHz FPGA(125MHz) Trapezoidal can achieve optimal noise performance from signal. Trapezoidal Shaper, unlike many analog pulse shaper, immune to “ballistic deficit”, that causes energy distortion in the spectrum. Trapezoidal shaper can not be implemented by analog circuits. The Coefficients were calculated by the method at the article of “On nuclear spectrometry pulses digital shaping and processing” , the biexponential pulse part. the method is to inverse the transfer function of the pulse(making it a digital delta) , and then convolute the delta with a trapezoid. Due to the fact that both the inverse function of the pulse and the trapezoid were finite length , the resulted filter was FIR. Calc trapez impulse response Delete zeroes from output Calc invers function of pulse The input signal was generated at 2 main stages : 1) create an array with Poisson distributed digital delta’s in it. It was done by the Poisson noise generator, that each event was transformed to delta, and each none event was transformed to zero. 2 ) transfer the deltas to linear rising- exponential decaying pulse, was done simply by convoluting the array with the response of such pulse(with cutoff values lower than exp(-10 )) Convolut deltas with wanted shape Shape of a pulse Impulse generating Impulses Wanted shape Resulted signal The building of the filter in Labview was done using the fir template already existing in the program. So first stage was to create a fds file to generate filter from it. The second stage was to use the automatic filter generation Distributed arithmetic does not use DSP units ! Input signal Shaped signal Input signal Shaped signal Result of shaper with ballistic defflict histogram Current Next shper (8 rise time) 6 rise time shaper Mean-60 80 60 3 40 2 20 1 0 0 140 2 4 6 8 10 Mean-120 0 0 4 2 4 Std-120 6 8 10 3 120 100 2 80 1 60 40 0 20 0 0 160 140 120 100 80 60 40 20 0 Std-60 4 0 2 Mean-140 4 6 8 10 2 4 6 8 10 Std-140 4 3 2 1 0 0 2 4 6 8 10 0 2 4 6 8 10 Rise time: 1 6 8 3.5 1.9 1.9 mean_60 60 60 60 3.2 1.9 1.8 123.5 125 1.9 1.8 142.5 144.5 std_60 std_120 mean 120 121 std_140 3.7 mean_140 140 mean std 3.5 160 3 140 2.5 120 2 100 std_60 1.5 std_120 1 std_140 80 60 mean _60 mean _120 mean _140 40 0.5 20 0 0 channel 0 1 2 3 0.5 1 1.5 std_60 3.2 3.2 3.2 3.2 2 2.5 mean_60 60 60 60 60 3 3.5 std_120 3.3 3.3 3.3 3.3 0 0 1 mean_120 122.5 122.5 122.5 122.5 2 std_140 3.2 3.2 3.2 3.2 3 mean_140 142 142 142 141 4 The shaper which is most resistance to noise is the 16 length, with 8(sample) rise time. But apparently he is effected by quantization effect, and he caused distortion in pulses heights( probably because they have different rise time) The 8 length shaper is nearly unaffected by quantization effect, and is the not distortive . The third filter is kind of the middle between them, with low noise and low distortion. The final system is operating at 125MHz due to the clock rate of the A/D(can only be 125MHz or 250MHz). However the “bottle neck” of the system is the FIFO to the host, so in order to increase throughput we could create the histogram of the peak detector on the FPGA himself, and send it to the host(needs slower FIFO to do it).