Reply by Erik de Castro Lopo●September 25, 20082008-09-25

Steve Pope wrote:

> I see a distinction between the "maximum output component" of
> a polynomial function being n-th order, and the polynomial function
> having "up to n-th order harmonics".

Not "up to n-th order harmonics", "up to and including n-th order
harmonics".
Erik
--
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"And MS thinks Linux is vulnerable to forking? 95, 95 OEM SR2, 98, 98SE,
ME, NT, 2000, Bob, .NET, CE, Datacenter, Server, Adv. Server, and now
Web Server, sheesh." -- BTS on LinuxToday.com

Reply by Randy Yates●September 25, 20082008-09-25

Erik de Castro Lopo <nospam@mega-nerd.com> writes:

> Randy Yates wrote:
>
>> zebra <ezra@eastwestsounds.com> writes:
>>
>>> there is the always handy fact that an n-th order polynomial produces
>>> up to nth order harmonics. so upsample by a factor of n...
>>
>> I don't recall seeing that anywhere. Do you have a reference? Or is it
>> so simple it's obvious? :)
>
>
> It simply falls out in the algebra. Take a signal:
>
> s(t) = sin (2 pi f t)
>
> and substitute it for x in a polynomial like:
>
> p(x) = a + b x + c x^2 + ... n x^n
>
> Once you expand out the trig identities you will find the
> maximum output component by inspection.

Oh yeah. Cool - thanks Erik.
--
% Randy Yates % "She tells me that she likes me very much,
%% Fuquay-Varina, NC % but when I try to touch, she makes it
%%% 919-577-9882 % all too clear."
%%%% <yates@ieee.org> % 'Yours Truly, 2095', *Time*, ELO
http://www.digitalsignallabs.com

Reply by Steve Pope●September 25, 20082008-09-25

Erik de Castro Lopo <nospam@mega-nerd.com> wrote:

>Randy Yates wrote:

>> zebra <ezra@eastwestsounds.com> writes:

>>> there is the always handy fact that an n-th order polynomial produces
>>> up to nth order harmonics. so upsample by a factor of n...
>>
>> I don't recall seeing that anywhere. Do you have a reference? Or is it
>> so simple it's obvious? :)

>It simply falls out in the algebra. Take a signal:
>
> s(t) = sin (2 pi f t)
>
>and substitute it for x in a polynomial like:
>
> p(x) = a + b x + c x^2 + ... n x^n
>
>Once you expand out the trig identities you will find the
>maximum output component by inspection.

I see a distinction between the "maximum output component" of
a polynomial function being n-th order, and the polynomial function
having "up to n-th order harmonics".
Steve

Reply by Erik de Castro Lopo●September 25, 20082008-09-25

Randy Yates wrote:

> zebra <ezra@eastwestsounds.com> writes:
>
>> there is the always handy fact that an n-th order polynomial produces
>> up to nth order harmonics. so upsample by a factor of n...
>
> I don't recall seeing that anywhere. Do you have a reference? Or is it
> so simple it's obvious? :)

It simply falls out in the algebra. Take a signal:
s(t) = sin (2 pi f t)
and substitute it for x in a polynomial like:
p(x) = a + b x + c x^2 + ... n x^n
Once you expand out the trig identities you will find the
maximum output component by inspection.
Erik
--
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"It seems you are presuming a Waterfall model of development here. We're not
doing the Waterfall, we're doing the Whirlpool." -- Larry Wall on Perl6
"Perl is circling the drain, that's for sure..." -- llimllibon reddit

Reply by Randy Yates●September 25, 20082008-09-25

zebra <ezra@eastwestsounds.com> writes:

> there is the always handy fact that an n-th order polynomial produces
> up to nth order harmonics. so upsample by a factor of n...

I don't recall seeing that anywhere. Do you have a reference? Or is it
so simple it's obvious? :)
--
% Randy Yates % "Watching all the days go by...
%% Fuquay-Varina, NC % Who are you and who am I?"
%%% 919-577-9882 % 'Mission (A World Record)',
%%%% <yates@ieee.org> % *A New World Record*, ELO
http://www.digitalsignallabs.com

Reply by Mark●September 25, 20082008-09-25

On Sep 24, 4:53�pm, zebra <e...@eastwestsounds.com> wrote:

> > you should try to design the non-linear operation or waveshaper so
> > that it inherently does not create any frequency components above fs/
> > 2. �at the �fs at which it is operating...
>
> oh right, for sure
>
> there is the always handy fact that an n-th order polynomial produces
> up to nth order harmonics. so upsample by a factor of n...
>

bingo!

Reply by Jim Thomas●September 25, 20082008-09-25

jungledmnc wrote:

> But there are some things that bother me:
> 1) No filter is perfect. I don't know much about filter theory, but since
> there are typically parameters like -12dB per octave, then it does not look
> very good to me.

With a halfway decent FIR you can do a lot better than -12dB per octave.
--
Jim Thomas Principal Applications Engineer Bittware, Inc
jthomas@bittware.com http://www.bittware.com (603) 226-0404 x536
When you have a new hammer, the whole world looks like a nail.

Reply by zebra●September 24, 20082008-09-24

On Sep 24, 2:28�pm, "jungledmnc" <jungled...@gmail.com> wrote:

> >i've lately been tweaking a lookup waveshaper. even when filled with
> >polynomial curves there are some additional interpolation artifacts
> >(hard to hear, though, amid all the intermodulation)
>
> Btw. what does exactly "lookup waveshaper" mean? I understand that it has
> a table. But how is that possible? In 32-bit floating point arithmetics it
> sounds impossible. You always have to limit the number of entries, but it
> creates "stairway" or you can use some kind of interpolation, which leads
> to a question if it is worth it, since modern processors rely on cache,
> that does not like tables very much :-).
>
> dmnc

yes, of course one interpolates, in a floating point world.
certainly there is a tradeoff, not the fastest thing nor the least
memory intensive but you can load arbitrary data, morph through stacks
of tables (which allows for variable assymetry and whatnot), and
generally have a very flexible synth component. that's the kind of
thing i have been working on for a while, your application is likely
very different.
and, of course, not all applications involve "modern" processors or
even floating-point arithmetic... i've done a lot of work with
synthesizers on 8051 arch chips...
-zeb

Reply by jungledmnc●September 24, 20082008-09-24

>i've lately been tweaking a lookup waveshaper. even when filled with
>polynomial curves there are some additional interpolation artifacts
>(hard to hear, though, amid all the intermodulation)

Btw. what does exactly "lookup waveshaper" mean? I understand that it has
a table. But how is that possible? In 32-bit floating point arithmetics it
sounds impossible. You always have to limit the number of entries, but it
creates "stairway" or you can use some kind of interpolation, which leads
to a question if it is worth it, since modern processors rely on cache,
that does not like tables very much :-).
dmnc

Reply by zebra●September 24, 20082008-09-24

> you should try to design the non-linear operation or waveshaper so
> that it inherently does not create any frequency components above fs/
> 2. �at the �fs at which it is operating...

oh right, for sure
there is the always handy fact that an n-th order polynomial produces
up to nth order harmonics. so upsample by a factor of n...
i've lately been tweaking a lookup waveshaper. even when filled with
polynomial curves there are some additional interpolation artifacts
(hard to hear, though, amid all the intermodulation)