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!)


>
> 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.

Reply via email to