[music-dsp] Waveshaping

paul Fultz pfultz2 at yahoo.com
Thu Oct 4 15:39:02 EDT 2007

thanks for the information, but what kind of filter do
i use? most filters cause phase shifting and group
delay. butterworth and bessel are too slow of cutoff,
and chebyshev or elliptical cause ripples in the pass
band. also if i use a polynomial waveshaper then i
could filter for each term, right? for example if w(x)
= x + x^2 + x^3, then i use a low pass at one-half of
the nyquist frequency then calculate x^2 and i use a
low pass at one-third of the nyquist frequency then
calculate x^3 but use no filter for the first term x.
also using linear interpolation and a simple 1-pole
lowpass filter produces this formula:
s1 = w(x[n])
s2 = w((x[n] + x[n-1])/2)
a= 1 - e^(-pi)
y[n] = a(s1 + s1) + (a^2)(y[n-1] - s2) + y[n-1]
i think thats right, perhaps there is way to improve
it. thanks,
--- Nigel Redmon <earlevel at earlevel.com> wrote:

> First, the part about not understanding how to do a
> good filter for  
> decimation: The basics are simple--you just have to
> understand why,  
> and you can make good choices. You have to restrict
> the frequency  
> band to under half the new sample rate, then
> decimate. So, if you are  
> downsampling by a factor of 2, and you have a source
> that is 96 kHz  
> sample rate (giving you 48 kHz upper frequencies),
> you need to run it  
> through a low-pass filter set to block everything
> above 24 kHz--then  
> just throw away every other sample. (There are
> different kinds of  
> filters, and different ways of optimizing,
> especially if the  
> downsampling ratio is big enough to warrant
> multirate technique--I'm  
> just talking fundamentals here.)
> Any frequencies that don't get removed in the
> filtering will reflect  
> back into the audio band--just make sure the filter
> is good enough to  
> get those reflections low enough in amplitude to
> satisfy your  
> requirements, which will depend on the strength your
> original audio  
> has in that area, the characteristics of the filter,
> and the quality  
> required in the end result. For instance, if you
> know that your  
> original audio will be down 40 dB at 24 kHz and
> dropping, you can get  
> away with a simpler filter than if it has more
> powerful harmonics in  
> that area.
> Now, in the rest of your post, you're trying to
> mitigate aliasing in  
> the time domain--in a nutshell (looking at aliasing
> in the time  
> domain), the position of sharp edges are the thing
> that suffers with  
> lower sample rates. That is, you get a
> frequency-dependent ambiguity  
> about where the sharp transition lands, when it
> would ideally land  
> between samples. For instance, a square wave that's
> an exactly  
> multiple of the sample period will sound fine, but
> one that's not  
> will have a modulation of the edges that results in
> new frequencies-- 
> aliasing. (Technically, you could say the one that's
> an exact  
> multiple aliases as well, but the aliased
> frequencies all line up on  
> harmonics and cancel each other.) So the smoother a
> wave, the less  
> aliasing--this should be obvious, because you need
> higher frequencies  
> to make sharp edges.
> This might help you make choices in sample rate
> conversion:
> As noted on that page, make sure you read this first
> to lay the  
> ground rules:
> On Oct 4, 2007, at 8:59 AM, paul Fultz wrote:
> > i was wanting to implement some anti-aliased
> > waveshaping, i first thought about upsampling and
> then
> > downsampling, but i dont fully understand how to
> > implement a good filter for decimation, so i
> thought
> > about creating another way to do it without
> upsampling
> > and i came up with this formula:
> > where w(x) is the transfer function for
> waveshaping
> >
> > (w(x[n]) - w(x[n-1]))/2 + w((x[n] + x[n-1])/2)
> >
> >
> > what do you think? when w(x) = ax then the formula
> > returns a*x[n] but i dont know how well it smooths
> out
> > aliasing maybe some people with better math skills
> > than me can analyze it deeper, or maybe have a
> better
> > formula. i know it doesnt get rid of all the
> aliasing,
> > but maybe its moving in that direction.
> > thanks,
> > paul
> --
> dupswapdrop -- the music-dsp mailing list and
> website: 
> subscription info, FAQ, source code archive, list
> archive, book reviews, dsp links 
> http://music.columbia.edu/cmc/music-dsp 
> http://music.columbia.edu/mailman/listinfo/music-dsp

Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. 

More information about the music-dsp mailing list