[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