FPGA implementation of trapeziodal filters

Download Report

Transcript FPGA implementation of trapeziodal filters

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 + 𝐶 𝐹 ADC FPGA 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 Calc invers function of pulse Delete zeroes from output

   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 cut off values lower than exp(-10 ))

Impulse generating Shape of a pulse Convolut deltas with wanted shape

Impulses Resulted signal Wanted shape

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 40 20 160 140 120 100 80 60 40 20 0 0 140 120 100 80 60 40 20 0 0 2 Mean-120 0 2 Mean-140 0 2 4 4 4 6 6 6 8 8 8 10 10 10 4 3 2 1 3 2 1 0 0 4 0 0 4 3 2 1 0 0 2 2 Std-140 4 2 Std-60 4 Std-120 4 6 6 6 8 8 8 10 10 10

Rise time: std_60 mean_60 1 3.5

60 std_120 mean 120 3.2

121 std_140 3.7

mean_140 140 6 1.9

60 1.9

123.5

1.9

142.5

8 1.9

60 1.8

125 1.8

144.5

3,5 3 2,5 2 1,5 1 0,5 0 0 std channel 0 1 2 3 0,5 1 std_60 3.2

3.2

3.2

3.2

1,5 2 std_60 std_120 std_140 2,5 3 3,5 mean_60 60 60 60 60 std_120 3.3

3.3

3.3

3.3

mean 160 140 120 100 80 60 40 20 0 0 1 mean_120 std_140 122.5

3.2

122.5

3.2

122.5

122.5

3.2

3.2

2 mean _60 mean _120 mean _140 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).