[sdiy] Digital interpolation filtering

thx1138 thx1138 at earthlink.net
Sat May 30 23:19:35 CEST 2009


On 5/30/09 2:09 PM, "Eric Brombaugh" <ebrombaugh1 at cox.net> wrote:

> 
> On May 30, 2009, at 10:00 AM, Tom Wiltshire wrote:
> 
>> The idea is to take the modulation signal when it arrives at the
>> audio sources uP and treat it like it has five zero samples in
>> between each true sample. I then filter that to get an interpolated
>> signal. Have I at least got that part right? Hope so, 'cos I based
>> the rest of what I've done on that idea...
> 
> Yup - that's a valid method for upsampling.
> 
>>> There are a lot of ways to design a filter - what method are you
>>> using? What lead you to choose this particular solution? Where did
>>> you get the algorithm?
>> 
>> The algorithm I'm using is to take a group of input samples and then
>> process them six times with different sets of coefficients to
>> generate the six interpolated samples, rather than actually ever put
>> zeros inbetween input samples. For the first interpolation, the
>> actual input samples line up with taps 5, 11, 17, 23 and 29, so you
>> have to calculate those MACs. For the second interpolation, the
>> actual samples line up with taps 4, 10, 16, 22 and 28, so you
>> calculate those. I've got six sets for the six samples I want, and I
>> just use the appropriate subset of coefficients depending where I've
>> got to between input samples. Hope that's intelligible.
> 
> This is a fairly common approach - so common that it has a name:
> polyphase filtering. You create a set of coefficients for your 6x
> upsampling filter, then sort them into 6 subfilters or phases. Those
> subfilters are applied sequentially to the low rate data to create the
> high rate data. Instead of requiring you run a N-sample MAC for every
> output sample, you only need to run an N/6 sample MAC.
> 
> I'm also curious about the technique you use to compute the
> coefficients. You alluded to an algorithm that let you specify the
> characteristics of the sinc function. What method are you using? How
> to you know when you've got the right coeffs?
> 
> Eric
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
Hi Folks,

What is the bit width of the data you are processing? 16/24/32?

I assume you will quantize the coefficients?

I use Momentum Data Systems Filter design tools and get pretty good results.
Presently Matlab only supports 16/32 bit coefficients and I use Freescale 24
DSP's for audio processing. There are many ways to do this job, but I was
curious what tools you use. SciLab is a open source tool similar to Matlab
that several folks pointed me to as well.

Regards,

Terry Shultz
thx1138 at earthlink.net





More information about the Synth-diy mailing list