I have a set of $M$ infinite data sequences, and I hope to perform a series of convolutions such that SEQ_result = SEQ_1 * SEQ_2 * SEQ_3 * ... SEQ_M I am only interested at the first few terms of SEQ_result. Right now, I can only think of one method, which is to use fast convolution (truncation all to finite sequences, FFT, pointwise multiply, iFFT). Is there other efficient way to implement such system? Thanks for input. CJ
A Series of Convolution of Infinite Sequences
Started by ●November 28, 2007
Reply by ●November 28, 20072007-11-28
On Nov 28, 11:21 am, "cjlam" <jethro...@gmail.com> wrote:> I have a set of $M$ infinite data sequences, and I hope to perform a series > of convolutions such that > > SEQ_result = SEQ_1 * SEQ_2 * SEQ_3 * ... SEQ_M > > I am only interested at the first few terms of SEQ_result. > > Right now, I can only think of one method, which is to use fast > convolution (truncation all to finite sequences, FFT, pointwise multiply, > iFFT). Is there other efficient way to implement such system?these are linear convolutions? (not circular?) r b-j
Reply by ●November 28, 20072007-11-28
It will really help if you can describe your application a little better. Say you truncate all of the signals to N points, and pad the ends with many zeros so that circular convolution does not occur. When you convolve two of the signals, the result will be 2N-1 points long (excluding the padded zeros); when you convolve three signals, the result will be 3N-2 points long, and so on. The problem is, it seems that the very low frequencies you are trying to find may be influenced by this process, compared with the original idea of convolving infinitely long signals. Without knowing what you are trying to find, it is hard to predict if this will give you what you want. Regards, Steve
Reply by ●November 30, 20072007-11-30
>It will really help if you can describe your application a little better.>Say you truncate all of the signals to N points, and pad the ends with >many zeros so that circular convolution does not occur. When youconvolve>two of the signals, the result will be 2N-1 points long (excluding the >padded zeros); when you convolve three signals, the result will be 3N-2 >points long, and so on. The problem is, it seems that the very low >frequencies you are trying to find may be influenced by this process, >compared with the original idea of convolving infinitely long signals. >Without knowing what you are trying to find, it is hard to predict ifthis>will give you what you want. >Regards, >Steve >I have an algebraically-complicated frequency response H(\theta) and I hope to find the first few terms of its inverse DTFT. Say, if the DTFT pair is h[n] <-> H(\theta) then I am interested at h_0,h_1,h_2,h_3 given H(\theta). Direct inverse DTFT of H(\theta) is difficult because the function H(\theta) is complicated to integrate. But I know that it has the form H(\theta) = A_1(\theta) A_2(\theta) ... A_10(theta) and I know the inverse DTFT of these A's are a_i[n] <-> A_i(\theta) So, by convolution theorem, I can find out h_n by a series of linear convolution. h[n] = (a_1 * a_2 * ... * a_10)[n] I am exploring, if the fast convolution is the only way to perform these convolutions efficiently... may be someone has encountered similar problems before in the area of cascade IIR filters? CJ
Reply by ●November 30, 20072007-11-30