On Fri, Feb 4, 2022 at 10:10 AM Jack Hickish <[email protected]> wrote:
> > > On Fri, 4 Feb 2022 at 15:04, Nikhil Mahajan <[email protected]> > wrote: > >> Hi Morag and Jack, >> >> Thank you for the prompt response. It was great to learn about the >> Hermitian trick to combine 2 real FFTs - that's very interesting. >> >> So, unless I am wrong, perfect reconstruction / inversion is not possible >> because the information in the Nyquist bin is thrown away? (I hope I am >> wrong) >> > > I am sorry to say that I don't think you are wrong. (Though maybe we are > both wrong!) > Jon's memo is the state of the art - do have a look. Perfect reconstruction is impossible for much more basic reasons. Your PFB's job is to attenuate the signals to near-zero at the boundary between frequency channels, so that there is very little leakage of one channel into its neighbors. This means the information content at the channel edges is attenuated to the point that it should be near the quantization noise. Because of this, you are injecting large amounts of quantization noise (relative to the signal) at the narrow transition near the channel boundaries. This will make it impossible to invert without information loss. This is very different from an FFT, where the inverse operation is perfect in most cases. For PFB inversion, the goal is to get the best estimate for the timestream that resulted in the PFB output. I can always invent a timestream (such as a comb of power at the channel boundaries) that will fail miserably. At Toronto, you can talk more with Tomas (in Keith Vanderlinde's group - or with keith) - I think they have extensive experience with the pfb and can help you interpret my terse explanation and Jon's (excellent) memo. take care!, Matt > > >> >> Cheers, >> Nikhil >> >> On Fri, 4 Feb 2022 at 05:41, Jack Hickish <[email protected]> wrote: >> >>> >>> >>> On Fri, 4 Feb 2022 at 07:08, Morag Brown <[email protected]> wrote: >>> >>>> Hey Nikhail, >>>> >>>> The FFT is a Hermitian function, which means that it has the property: >>>> >>>> [image: Screenshot from 2022-02-04 08-34-24.png] >>>> >>>> This principle is used in the real wideband FFT to compute 2 real FFTs >>>> using one complex FFT core - this >>>> <http://www.hyperdynelabs.com/dspdude/papers/COMPUTING%20THE%20FFT%20OF%20TWO%20REAL%20SIGNALS%20USING%20A%20SINGLE%20FFT.pdf> >>>> paper >>>> explains it well. For a detailed explanation on how the CASPER FFT works >>>> specifically, Ryan Monroe's paper on Improving the Performance and Resource >>>> Utilization of the CASPER FFT and Polyphase FIlterbank goes into quite a >>>> lot of detail. >>>> >>>> >>> Hi Mikhil, Morag, >>> >>> >>>> You only get 32 output channels because the CASPER wideband FFT >>>> discards all negative frequency components as they're just a mirror of >>>> positive frequency components and aren't needed. >>>> >>> >>> This is completely right, but to address the subtlety Mikhil raised >>> about N/2 vs N/2+1 chans -- >>> >>> The CASPER FFT doesn't give you the "last" FFT bin (the one whose edge >>> is at the Nyquist frequency). This bin, like the DC bin, contains >>> real-valued output for real-valued input (since the DC bin coefficients are >>> all 1 and the Nyquist bin coefficients are +/-1), so I think the CASPER FFT >>> could use the DC bin that it does output to encode both the DC and Nyquist >>> bin contents (one in the real part, one in the imag). I'm fairly sure the >>> CASPER FFT doesn't do this but I also vaguely recall this coming up in >>> conversation before. I think the issue is not that the FFT internals don't >>> compute the relevant numbers but is simply that outputting N/2+1 channels >>> would lead to an annoying input:output data ratio. >>> >>> Cheers >>> Jack >>> >>> >>>> Morag >>>> >>>> On Fri, Feb 4, 2022 at 7:10 AM Nikhil Mahajan < >>>> [email protected]> wrote: >>>> >>>>> Dear CASPERites, >>>>> >>>>> I am a graduate student at the University of Toronto (working with >>>>> Marten van Kerkwijk) and I have some raw baseband data collected using >>>>> PUPPI (Arecibo) - and I am on a quest to invert the polyphase filter bank. >>>>> I have 32 channels of complex-baseband that I would very much like to >>>>> combine into a single 100 MHz bandwidth stream. >>>>> >>>>> To do this, I would need to understand some of the specifics of the >>>>> filter bank pipeline (so that I can successfully invert each step). This >>>>> is >>>>> my current understanding of what happened to the data I have: >>>>> >>>>> 1. Real-valued data sampled at 200 MS/s arrives at the Casper BEE2 >>>>> board. >>>>> 2. This goes through a real-input PFB implementation such as >>>>> `pfb_fir_real` and using a 12-tap, 64-branch polyphase filter (I have the >>>>> filter coefficients that were used here). This step outputs 64 streams of >>>>> real-valued data. >>>>> 3. Then, for the DFT step of the filterbank, the 64 real-valued >>>>> streams are passed through the `fft_wideband_real` block to get 32 >>>>> channels >>>>> of complex-valued data. >>>>> 4. This is then saved to disk. >>>>> >>>>> (I hope someone familiar with PUPPI can correct me here if I am wrong >>>>> about any of the above) >>>>> >>>>> Step 3 is the step I am confused about. `fft_wideband_real` does not >>>>> appear to be a conventional real-input N-point FFT implementation (Else I >>>>> would have N/2 + 1 channels instead of just N/2). Some documentation on >>>>> this block says that it "computes the real-sampled Fast Fourier >>>>> Transform using the standard Hermitian conjugation trick". What is >>>>> this standard Hermitian conjugation trick? I am totally unfamiliar with >>>>> this. Would I be wrong in guessing it uses some sort of trick to convert >>>>> 64 >>>>> real numbers to 32 complex numbers and then applies a regular ol' >>>>> complex-valued FFT on them? >>>>> >>>>> Thank you so much! I appreciate any and all guidance this mailing list >>>>> can provide. >>>>> >>>>> Cheers, >>>>> Nikhil Mahajan >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "[email protected]" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0%2B3z051d%2B%2BAB0D%3D1LHNHdOSDJp6JEYzzRXatj-ij11_qA%40mail.gmail.com >>>>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0%2B3z051d%2B%2BAB0D%3D1LHNHdOSDJp6JEYzzRXatj-ij11_qA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "[email protected]" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0Tc%2BWk1JExurEHYFPM8MarkmTY_TnjFqPpjy2a%3D7zqxvng%40mail.gmail.com >>>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0Tc%2BWk1JExurEHYFPM8MarkmTY_TnjFqPpjy2a%3D7zqxvng%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "[email protected]" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnnp18TS5YfGmS9W5dDHyOf7GsMNjYtWVKkRrbn2GJCmw%40mail.gmail.com >>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnnp18TS5YfGmS9W5dDHyOf7GsMNjYtWVKkRrbn2GJCmw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "[email protected]" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0JSeX2niz0AtuXS3Dh51LcVqf%2B6BrDSF9He3mreK3pONw%40mail.gmail.com >> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0JSeX2niz0AtuXS3Dh51LcVqf%2B6BrDSF9He3mreK3pONw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups " > [email protected]" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnhQFDh3vaHV%2B0ftP7RcFpzDUcq7K3s7scEPNLfymC_Wg%40mail.gmail.com > <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnhQFDh3vaHV%2B0ftP7RcFpzDUcq7K3s7scEPNLfymC_Wg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- ___________________________________________________ Matt Dobbs <[email protected]> Professor, McGill University Physics and CIfAR Senior Fellow [he / him / il] Canada Research Chair (T1) in Radio Cosmology and Instrumentation Office Tel: +01 514.398-6500 CMB Lab Tel: +01 514.398-4838 http://mcgillcosmology.com -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAJOfi%3DYNS8Frm3aT5NUrKbBietED8jh1DBB4DO_CxsZWv_OLzg%40mail.gmail.com.

