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&#4294967295;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. &#4294967295;at the &#4294967295;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&#4294967295;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. &#4294967295;at the &#4294967295;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)