[sdiy] Digital interpolation filtering

Eric Brombaugh ebrombaugh1 at cox.net
Sat May 30 23:09:10 CEST 2009


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



More information about the Synth-diy mailing list