Hi Jayanth,

I assume the part you'd like to play with is the PFB_FIR since the next
step is to just follow with a FFT.  Here's my Python code for simulating
the pfb_fir.  It's based on this note by Parsons and Werthheimer
http://setiathome.ssl.berkeley.edu/~aparsons/papers/2003-06_pfb_32.html.

def pfb_fir(x):
    N = len(x)    # x is the incoming data time stream.
    taps = 4
    L = 512   # Points in subsequent FFT.
    bin_width_scale = 1.0
    dx = math.pi/L
    X = numpy.array([n*dx-taps*math.pi/2 for n in range(taps*L)])
    coeff = numpy.sinc(bin_width_scale*X/math.pi)*numpy.hanning(taps*L)

    y = np.array([0+0j]*(N-taps*L))
    for n in range((taps-1)*L, N):
        m = n%L
        coeff_sub = coeff[L*taps-m::-L]
        y[n-taps*L] = (x[n-(taps-1)*L:n+L:L]*coeff_sub).sum()

    return y


Sean McHugh

> Hi,
>
> I'm getting started on implementing a polyphase filter bank in CUDA. But
> before getting into it, it's probably a good idea if I play around with
> some
> simple implementation in a relatively more user-friendly environment such
> as
> MATLAB. Does anybody have a bare-bones MATLAB (or even C) implementation
> of
> a polyphase filter bank that you wouldn't mind sharing?
>
> Appreciate any help! Cheers,
>
> Jayanth
>



Reply via email to