Hi Nikhil,

>> I find DSP terminology confusingly named for newcomers

I think engineers do this on purpose …

Several good books:

Classic text (this is where a PFB is called a Weighted Over-Lap Add = WOLA)
Multi-rate Digital Signal Processing, Crochiere and Rabiner, 1983 (you can find 
PDFs of this)

Multirate Systems and Filter Banks, P.P. Vidyanathan, 1993.

Rick Lyon’s has a nice DSP book too (nice meaning people borrow it and I never 
get it back):
Understanding Digital Signal Processing, 3rd Edition, R. Lyons, 2010.

Newly released!
Multirate Signal Processing for Communications Systems, 2nd Edition, 2021, Fred 
Harris

The Fred Harris book is good. I have the first edition, so got the second …

That’ll keep you busy (and poor!)

Regards,
Dave


From: Nikhil Mahajan <[email protected]>
Sent: Friday, February 4, 2022 8:52 AM
To: [email protected]
Subject: Re: [EXTERNAL] Re: [casper] Inverting the Polyphase Filter Bank

Hi Dave,

That sounds like the best solution here. In my case, I am lucky that the analog 
bandpass is a lot smaller than the overall bandwidth - so the Nyquist bin 
contained mostly noise and assuming it is zero shouldn't hurt reconstruction 
efforts too much.

> If you want to Google the terminology, a PFB is an analysis filter bank, and 
> the inverse is a synthesis filter bank.
Thanks for pointing this out - I find DSP terminology confusingly named for 
newcomers, so it helps to know what to look for!

Thanks to the CASPER group - I am quite grateful for the many helpful and 
prompt responses!

Reconstructing imperfectly,
Nikhil

On Fri, 4 Feb 2022 at 11:26, 'Hawkins, David W (US 334B)' via 
[email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>> wrote:
Hi Nikhil,

>> perfect reconstruction / inversion is not possible because the information 
>> in the Nyquist bin is thrown away?

Correct, but imperfect reconstruction should work.

A real-valued signal has a Hermitian spectrum, and an FFT has a cyclic 
response. That results in two things;

  *   The negative frequencies are the complex-conjugate of the positive 
frequencies
  *   The frequency bin at -N/2 must be real (since that bin is also the value 
at +N/2)

So the -N/2 and N/2 channels have been corrupted/aliased by the cyclic nature 
of the FFT … of by the sampling from the continuous Laplace domain into the 
Z-domain … whichever way you want to think about it.

Given N/2 channels of a S[n], for n = 0 to N/2-1, you just need to …

  *   Put a zero at S[-N/2]
  *   Populate the negative frequency channels with S*[-n] = S[n] for n 1 to 
N/2-1
  *   And maybe throw a factor of 2 or 1/2 in there somewhere for good measure …

In a practical system, if the analog signal aliases about Nyquist anyways … so 
that last channel is not that interesting. If you have interlaced ADCs, then 
that channel gets corrupted by gain/offset errors in the ADC.

So … imperfect reconstruction should work just fine.

If you want to Google the terminology, a PFB is an analysis filter bank, and 
the inverse is a synthesis filter bank.

Regards,
Dave

From: Jack Hickish <[email protected]<mailto:[email protected]>>
Sent: Friday, February 4, 2022 7:10 AM
To: casper <[email protected]<mailto:[email protected]>>
Subject: [EXTERNAL] Re: [casper] Inverting the Polyphase Filter Bank



On Fri, 4 Feb 2022 at 15:04, Nikhil Mahajan 
<[email protected]<mailto:[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]<mailto:[email protected]>> wrote:


On Fri, 4 Feb 2022 at 07:08, Morag Brown 
<[email protected]<mailto:[email protected]>> wrote:
Hey Nikhail,

The FFT is a Hermitian function, which means that it has the property:

[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<https://urldefense.us/v3/__http:/www.hyperdynelabs.com/dspdude/papers/COMPUTING*20THE*20FFT*20OF*20TWO*20REAL*20SIGNALS*20USING*20A*20SINGLE*20FFT.pdf__;JSUlJSUlJSUlJQ!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeHsjg5nVg$>
 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]<mailto:[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]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[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://urldefense.us/v3/__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__;JSUlJSU!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeEfnPk7lg$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[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://urldefense.us/v3/__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__;JSUl!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeHJUel3Cw$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[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://urldefense.us/v3/__https:/groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnnp18TS5YfGmS9W5dDHyOf7GsMNjYtWVKkRrbn2GJCmw*40mail.gmail.com?utm_medium=email&utm_source=footer__;JQ!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeE0bkl4-w$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[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://urldefense.us/v3/__https:/groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0JSeX2niz0AtuXS3Dh51LcVqf*2B6BrDSF9He3mreK3pONw*40mail.gmail.com?utm_medium=email&utm_source=footer__;JSU!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeGLE1N_zw$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[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://urldefense.us/v3/__https:/groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKSnhQFDh3vaHV*2B0ftP7RcFpzDUcq7K3s7scEPNLfymC_Wg*40mail.gmail.com?utm_medium=email&utm_source=footer__;JSU!!PvBDto6Hs4WbVuu7!Y44aeZoQoU3wVLMKYsmyIn2Y3LAB_IckGbbemtWHONs8VE2HI6eEpsKNJv7Cy3NhfeE0bAkq-g$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/4fd4163543144ce99a76194c9bd462e5%40jpl.nasa.gov<https://urldefense.us/v3/__https:/groups.google.com/a/lists.berkeley.edu/d/msgid/casper/4fd4163543144ce99a76194c9bd462e5*40jpl.nasa.gov?utm_medium=email&utm_source=footer__;JQ!!PvBDto6Hs4WbVuu7!a9qTQmLzcG64cHsh0npwFY0QNOUkvhkLk5P4f4591gaPAyG8TYuJf-E9XFmekeggNxGD-u-QEg$>.
--
You received this message because you are subscribed to the Google Groups 
"[email protected]<mailto:[email protected]>" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0LqakcyqLfwxXrLRzrnc7nYrkfisn%3DG0q2gVpTJ3wzyRg%40mail.gmail.com<https://urldefense.us/v3/__https:/groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAA39X0LqakcyqLfwxXrLRzrnc7nYrkfisn*3DG0q2gVpTJ3wzyRg*40mail.gmail.com?utm_medium=email&utm_source=footer__;JSU!!PvBDto6Hs4WbVuu7!a9qTQmLzcG64cHsh0npwFY0QNOUkvhkLk5P4f4591gaPAyG8TYuJf-E9XFmekeggNxEBmE-Vrw$>.

-- 
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/a6245c78c16d4789a484b59ba5d206e7%40jpl.nasa.gov.

Reply via email to