Main Archive Specials Wiki | FAQ Links Submit Forum


Polyphase Filters

Type : polyphase filters, used for up and down-sampling
References : C++ source code by Dave from Muon Software
Linked file : BandLimit.cpp,BandLimit.h



Comments


Added on : 15/02/05 by saionara_tagushi[ AT ]web[ DOT ]de
Comment :
can someone give me a hint for a paper where this stuff is from?



Added on : 29/03/05 by ABC
Comment :
From there: http://www.cmsa.wmin.ac.uk/~artur/Poly.html

There is also this library, implementing the same filter, but optimised for down/upsampling and ported to SSE and 3DNow!:
http://ldesoras.free.fr/prod.html#src_hiir




Added on : 27/07/05 by rob[ DOT ]belcham[ AT ]zen[ DOT ]co[ DOT ]uk
Comment :
There is an error in the 12th order, steep filter coefficients. Having checked the output against that produced by HIIR (see previous comment), i have identified the source of the error - the 4th b coefficient 0.06329609551399348, should be 0.6329609551399348.






Added on : 06/04/08 by bla
Comment :
you also need to delete the pointers inside the array

CAllPassFilterCascade::~CAllPassFilterCascade()
{
    for (int i=0;i<numfilters;i++)
    {
        delete allpassfilter[i];
    }

    delete[] allpassfilter;
};




Added on : 05/11/08 by 1nf0[ AT ]aud1osp1llag3[ DOT ]bot[ DOT ]com
Comment :
some questions..  is it normal for these halfband filters to cause significant gain loss?  sonogram analysis shows a decrease in SNR if I have read the results correctly.

if using these filters for oversampling and I do this:

upsample
halfband filter
*process*
halfband filter
decimate (discard samples)

then presumably the second halfband filter does the antialiasing at half the new sampling rate?




Added on : 26/02/09 by bob[ AT ]yahoot[ DOT ]com
Comment :
Hello, I'm getting the high pass from the function by subtracting the 'oldout' variable.

output=(filter_a->process(input)-oldout)*0.5;

But this does not make an ideal QMF, I'm getting pass-band aliasing, so I guessing the phase is off slightly between the low and high.
Is this the correct way of getting the high band?

Cheers,
Dave P




Added on : 21/01/10 by bobby
Comment :
Is the cutoff at 20kHz?  What sample rate are these coefficients for?  How would I calculate suitable coefficients for arbitrary sample rates?



Added on : 11/06/11 by sean[ AT ]valhalladsp[ DOT ]com
Comment :
It is worth noting that if these filters are being used for upsampling/downsampling, the "noble identity" can be used to reduce the CPU cost. The basic idea is that operations that can be expressed in the form:

filter that uses z^-N for its states -> downsample by N

can be rearranged to use the form

downsample by N -> filter that uses z^-1 for its states

The same property holds true for upsampling. See

http://mue.music.miami.edu/thesis/jvandekieft/jvchapter3.htm

for more details.

For the above code, this would entail creating an alternative allpass process function, that uses the z^-1 for its states, and then rearranging some of the operations.




Add your own comment
Comments are displayed in fixed width, no HTML code allowed!
Email:

Comment:

Are you human?



Site created and maintained by Bram
Graphic design by line.out | Server sponsered by fxpansion