Hi Uli

I don't know if this will be useful for your situation, but a simple method for 
decomposing your kernel is to simply chop it in two. So for a kernel:

1 2 3 4 5 6 7 8

You can decompose it into two zero padded kernels:

1 2 3 4 0 0 0 0 

0 0 0 0 5 6 7 8

And sum the results of convolving both of these kernels with your signal to 
achieve the same effect as convolving with the original kernel. You can do this 
because convolution is distributive over addition, i.e.

f1*(f2+f3) = f1*f2 + f1*f3

For signals f1,f2 & f3 (* meaning convolve rather than multiply). 

Obviously all those zero's do not need to be evaluated, meaning the problem is 
changed to one of offsetting your convolution algorithm (which may or may not 
be practical in your situation), but does allow you to use half the number of 
coefficients.

Thomas Young

Core Technology Programmer
Rebellion Developments LTD

-----Original Message-----
From: music-dsp-boun...@music.columbia.edu 
[mailto:music-dsp-boun...@music.columbia.edu] On Behalf Of Uli Brueggemann
Sent: 19 January 2011 14:56
To: A discussion list for music-related DSP
Subject: Re: [music-dsp] "Factorization" of filter kernels

Hi,

thanks for the answer so far.
A polyphase filter is a nice idea but it does not answer the problem.
The signal has to be demultiplexed (decimated), the different streams
have to be filtered, the results must be added to get the final output
signal.

My question has a different target.
Imagine you have two system (e.g. some convolution  boards with DSP).
Each system can just run a 512 tap filter. Now I like to connect the
two systems in series to mimic a desired 1024 tap filter. The 1024
kernel is known and shall be generated by the two 512 tap filters.
So what's a best way to decompose the known kernel into two parts ? Is
there any method described somewhere?

Uli


2011/1/19 João Felipe Santos <joao....@gmail.com>:
> Hello,
>
> a technique that allows something similar to what you are suggesting
> is to use polyphase filters. The difference is that you will not
> process contiguous vectors, but (for a 2-phase decomposition example)
> process the even samples with one stage of the filter and the odd
> samples with another stage. It is generally used for multirate filter
> design, but it makes sense to use this kind of decomposition if you
> can process the stages in parallel... or at least it is what I think
> makes sense.
>
> You can search for references to this technique here [1] and here [2].
> A full section on how to perform the decomposition is presented on
> "Digital Signal Processing: a Computer-based approach" by Sanjit K.
> Mitra.
>
> [1] 
> http://www.ws.binghamton.edu/fowler/fowler%20personal%20page/EE521_files/IV-05%20Polyphase%20FIlters%20Revised.pdf
> [2] https://ccrma.stanford.edu/~jos/sasp/Multirate_Filter_Banks.html
>
> --
> João Felipe Santos
>
>
>
> On Tue, Jan 18, 2011 at 5:46 AM, Uli Brueggemann
> <uli.brueggem...@gmail.com> wrote:
>> Hi,
>>
>> a convolution of two vectors with length size n and m gives a result
>> of length n+m-1.
>> So e.g. two vectors of length 512 with result in a vector of length 1023.
>>
>> Now let's assume we have a vector (or signal or filter kernel) of size
>> 1024, the last taps is 0.
>> How to decompose it to two vectors of half length? The smaller vectors
>> can be of any arbitrary contents but their convolution must result
>> must be equal to the original vector.
>>
>> It would be even interesting to "factorize"  given kernel into n
>> smaller kernels. Again the smaller kernels may have any arbitrary but
>> senseful contents, they can be identical but this is not a must.
>>
>> Is there a good method to carry out the kernel decomposition? (e.g.
>> like calculating n identical factors x of a number y by x =
>> Exp(Log(y)/n) with x^n = x*x*...*x = y)
>>
>> Uli
>> --
>> 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
>>
> --
> 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
>
--
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
--
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

Reply via email to