[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