Re: [linux-audio-dev] Re: chebychev

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Re: chebychev
From: Steve Harris (S.W.Harris_AT_ecs.soton.ac.uk)
Date: Fri Nov 01 2002 - 17:55:10 EET


On Fri, Nov 01, 2002 at 03:13:28 +0100, Tim Goetze wrote:
> >Blackman-Harris has the best sidelobe rejection, which is probably what we
>
> just to make sure we're talking about the same thing:
>
> double blackman (int i)
> {
> return 0.42
> - 0.5 * cos (2 * (double) i * M_PI / WINDOW)
> + 0.08 * cos (4 * (double) i * M_PI / WINDOW);
> }

I have:

double arg = 2.0 * M_PI / (double)(FRAME_LENGTH-1);

for (i=0; i < FRAME_LENGTH; i++) {
        // Blackman-Harris
        window[i] = 0.35875f - 0.48829f * cos(arg * (float)i) + 0.14128f *
                    cos(2.0f * arg * (float)i) - 0.01168f *
                    cos(3.0f * arg * (float)i);
        // Gain correction
        window[i] *= 0.761f;
}

But mine could just be unoptimised.

> just did the same plot with applying the above window before the FT;
> it does not look fundamentally different. plot is at
>
> http://quitte.de/spectral-evolution-windowed.gif

Well, the noise floor is lower and the harmincs are sharper, which is what
you would expect for a better analysis window. It shows that the harmonics
really are coming and going though.

> >It does. Well in my randomly picked test set it did, when the harmonic
> >amplitudes are real it may be smoother. I'l clean up the code later, make
> >it LERP between harmonic sets and send it to you, but I have sleave for
> >work now.
>
> could be we can get away with something like a simple four-sample
> xfade, though that could introduce unrelated harmonics. better
> than an unmasked discontinuity still. hmmm.

Well, I think its best to develop with maximum wuality, then when its
working, work out how much we can reduce the CPU cost and still have it
sound good.
 
> >Interesting. It takes 1/2 as much as a single (optimised) valve here.
>
> did some tests with valve and harmonic_gen at different frames/cycle,
> the results seem to support my above cache theory; the chebyshev
> is costing a lot less at larger block sizes than the valve. you run
> them at 128/44.1 i understand?

For realtime, but I do my performance test at 1024/44, silly really, but I
have a patched applyplugin that reports cycle cost.
 
> good god. know an alternative source for calculating the
> coefficients? Bill?

I have some text books that will have it in, I can compare that to NR.

- Steve


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Nov 01 2002 - 18:04:32 EET