Hi All - [ Long time CASPER groupie, first time posting. :) ]
I am trying to understand the VEGAS implementations of the PFB/FFT technique, both in the FPGA and the CPU. For simplicity, I will use the example on the CASPER wiki page, https://casper.berkeley.edu/wiki/The_Polyphase_Filter_Bank_Technique, and specifically Figure 3, to pose my question. In the FFT-only approach, I would take the FFT of 256 samples, running from i = 384 to 639. Let us refer to the time this operation takes as T. In this case, the PFB/FFT approach makes use of 1024 samples, but still only produces the equivalent of a 256 point FFT. My initial assumption was that VEGAS would slide the 1024 window by 256 points, each time. Thus, every T seconds, it would generate a new FFT, and each one would correspond to the conventional approach, but with the window function centered on it, hence reducing spectral leakage. This is how Joe Brandt believes the GPU code works. But, Randy McCullough understands that in the FPGA implementation, each sample is only used once. That would imply that one FFT comes out every P x T seconds. These two approaches are not the same. For example, imagine a large RFI spike at i = 896. If we do not use a sliding window, then the value of the window function w(896) will be quite small, and the RFI will be attenuated. The next spectrum will correspond to I = 1024 - 2047, and there will be no RFI present. If we use a sliding window, keeping the same origin for I, then when the window runs from I = 512 to 1535, w(896) will have a high value, and so the RFI would be obvious in the corresponding spectrum. This seems intuitively correct to me. Can someone definitively explain what is actually implemented in the FPGA (HBW modes), and the GPU (LBW modes) for VEGAS? If it does not use a sliding window, then is my above example correct, and the RFI would be attenuated? If not, can you explain that also? Thanks, Richard Richard Prestage Scientist Green Bank Observatory Green Bank, WV 24944, USA