Type : polyphase filters, used for up and down-sampling
References : C++ source code by Dave from Muon Software
Linked file : BandLimit.cpp,BandLimit.h
Added on : 15/02/05 by saionara_tagushi[ AT ]web[ DOT ]de
can someone give me a hint for a paper where this stuff is from?
Added on : 29/03/05 by ABC
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!:
Added on : 27/07/05 by rob[ DOT ]belcham[ AT ]zen[ DOT ]co[ DOT ]uk
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
you also need to delete the pointers inside the array
for (int i=0;i<numfilters;i++)
Added on : 05/11/08 by 1nf0[ AT ]aud1osp1llag3[ DOT ]bot[ DOT ]com
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:
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
Hello, I'm getting the high pass from the function by subtracting the 'oldout' variable.
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?
Added on : 21/01/10 by bobby
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
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
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!