Hi Jonathan,

I thought that I sent some replies to the Casper mailing list, but it
turns out I accidentally only sent them only to Gerry Hart. So, I resend
them here.

---------
(originally sent Dec 5)
Hi Jonathan,

Even discounting small numerical errors in any implantation, one cannot
get perfect or near-perfect reconstruction with an inverse polyphase
filter bank (otherwise known as a synthesis filter bank) using a discrete
fourier transform (DFT) type filter bank unless one oversamples the filter
bank. If I am not mistaken, the CASPER PFB implementation is critically
sampled. 

With critically sampled DFT filter banks, the aliasing is not cancelled
upon reconstruction (except for the case of the prototype filter being all
ones and the same length as the FFT - i.e. PFB is just an FFT)

Regards,
Robert
----------

(Originally sent Dec 7 with attachment)
Hi Gerry,

I helpful overview may be found in the reference, "A REVIEW OF POLYPHASE
FILTER BANKS AND THEIR APPLICATION", AFRL-IF-RS-TR-2006-277
In-House Final Technical Report September 2006 (
http://dtic.mil/cgi-bin/GetTRDoc?AD=ADA457390 ) .

Take a look at figure 3.3 for the Structure of a DFT filter bank. For
Critical Sampling, M=N, where M is the Decimation factor and N is Length
of the DFT or IDFT. From the this figure, then two things can be seen.
First, the IDFT-DFT pair can basically be eliminated since they are a
fourier transform pair. Then, we are just left with the Hk(z) filters on
the left  and H_bar_k(z) filters on the right connected in cascade. For
any given branch, the final response needs to be Hk(z)*H_bar_k(z) = z^-n.
In otherwords, the cascade of the filters must only be a delay. For FIR
filters that is impossible. One of the two filters must be an IIR filter.
Of course for the degenerative case of Hk(z) = 1 and H_bar_k(z)=1, this
condition is satisfied. But, that condition just gives a FFT transform
pair. 

As the article points out, the aliasing cannot be cancelled for a
critically sampled DFT filter bank. In can be cancelled with critical
sampling using the Modified DFT or a Cosine Modulated Filterbank. This
article does not much discuss it, but the aliasing can also be cancelled
or controlled to a large extent by oversampling the filter bank using a
Weighted Overlap and Add structure to the DFT filter bank. I used an
oversampling WOLA structure for a digital beam former
(http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6187082&tag=1).

More details about the theory can WOLA filterbank structures be found in
R. Crochiere and L. Rabiner, Multirate Digital Signal Processing, New
Jersey:Prentice Hall, 1983.

Best Regards,
Robert



On 12/8/14 10:49 AM, "Paul Demorest" <pdemo...@nrao.edu> wrote:

>hi Aaron,
>
>I think this depends on what you use for the filter coefficients.  In
>theory there are pairs of "analysis" and "synthesis" filters that let
>you exactly reconstruct the original input signal.  In practice I think
>errors caused by quantization, overflow, etc are probably the main
>source of trouble.  I haven't attempted this myself, but from what I've
>heard this seems to be a tricky thing to get right.. probably depends on
>what exactly is going to be done with the reconstructed timeseries, what
>level of artifacts are acceptable, etc.
>
>Cheers,
>Paul
>
>On 2014-12-08 11:24, Aaron Parsons wrote:
>> I think the PFB FIR is not a reversible process.  It sums samples and
>> decimates, so that you have fundamentally lost the information that
>> would
>> be required to recover the input time series.  However, as Gerry points
>> out, it is possible to invert just the FFT component, leaving what is
>> essentially a windowed time series that not unrelated to the original
>> time
>> series.
>> 
>> Aaron
>> 
>> On Mon, Dec 8, 2014 at 10:15 AM, Jonathan Weintroub <
>> jweintr...@cfa.harvard.edu> wrote:
>> 
>>> Hi Gerry,
>>> 
>>> I am glad someone is interested in this.  To be clear we have a need
>>> for
>>> an inverse PFB, but have not developed one ourselves‹no where near to
>>> ready
>>> to publish.  ;)  Our take was the ³step by step² was needed, inverse
>>> FFT
>>> followed by FIR, and that probably it would not be entirely trivial.
>>> While
>>> inverse FFT itself is rather simple.
>>> 
>>> I put the question to the list serve in the hope someone has already
>>> worked on this.  I hereby bump this up, perhaps this is a better time
>>> to do
>>> so, compared to Friday afternoon.
>>> 
>>> Jona
>>> 
>>> 
>>> > On Dec 5, 2014, at 7:12 PM, Gerry Harp <gh...@seti.org> wrote:
>>> >
>>> > Hi Jonathan
>>> >
>>> > This is interesting. Is an inverse PFB is just a PFB using an inverse
>>> FFT?  That should be very close by possibly not bit-perfect inversion.
>>> >
>>> > Or are you considering a step-by-step inverse of the PFB algorithm?
>>>I'm
>>> interested because there are traps. Small numerical errors are
>>> magnified
>>> when you compute the inverse FIR filter on the data after inverse FFT.
>>> At
>>> least I think so.
>>> >
>>> > I'd be interested in your implementation of the inverse PFB. You
>>>should
>>> publish it.
>>> >
>>> > Thanks
>>> >
>>> > Gerry
>>> >
>>> > The reason I'm asking is that if you lose any
>>> >
>>> > On 05-Dec-14 01:36 PM, Jonathan Weintroub wrote:
>>> >> Hello CASPERites,
>>> >>
>>> >> Has anyone implemented an _inverse_ PFB?  That is a block taking
>>> channelized PFB data and reproducing the original time series.
>>> >>
>>> >> If so, is the code/mdl/yellow block available?
>>> >>
>>> >> Thanks,
>>> >>
>>> >> Jonathan
>>> >>
>>> >>
>>> >>
>>> >
>>> 
>>> 
>>> 
>


Reply via email to