Revised fast convolution

It is assumed that linear time-invariant (LTI) system input signal samples are updated by a sensor in real time. It is urgent for every new input sample or for small part of new samples to update a convolution as well. The idea is that fast Fourier transform (FFT) algorithm, used to calculate output frequency samples (f.s.), should not be recalculated with every new input sample. It is needed just to modify the convolution algorithm, when the new input sample replaces the old one. An example of computation of the convolution with ordinary and modified 8-point Fourier code matrix is presented.


Introduction
Convolution is a mathematical tool in digital signal and image processing [3,2]. It is used in filtering, correlation, compression and in many other applications [3]. Although the concept of convolution is not new, the efficient computation of convolution is still an open topic [3]. As the burden of data is constantly increasing, there appears request for fast manipulation with large data. In wireless sensor networks, where a new set of input samples simultaneously replaces previous one, it is non-effective to recalculate convolution each time, even with FFT procedures [1], when only small part of new samples differs from previous one. It is needed to modify discrete FT (DFT) in order to recalculate on-line only some products of the convolution with the respective samples replaced [4].

Statement of the problem
Suppose that x(n) is an arbitrary input of a LTI system having a kernel h(n), too. The output y(n) of the system is the linear convolution of the form Here ⋆ is the asterisk of the convolution. The DFT of (1) is known as a fast convolution ( Fig. 1) [3]: where are DFTs of h(n) and x(n), respectively, N is the total number of samples of the basic real-valued signals x(n), y(n) and h(n), ∀ n ∈ 0, N − 1 under consideration.
In a convolution scheme we consider a discrete-time finite duration real-valued signal x(n) of length L (i.e., x(n) = 0 for n < 0 and n L) that has the Fourier transform where j is the imaginary unit. When we sample X(ω) at equally spaced frequencies ω k = 2πk/N , ∀ k ∈ 0, N − 1, with N L, the resultant samples are as follows [3]: For convenience, the upper index in the sum has been increased from L − 1 to N − 1 since x(n) = 0 for n L. The relation in (4) is called DFT of x(n). It is used for transforming the sequence x(n) into f.s. X(k) of length N . Assume that at any moment t i the network of sensors is simultaneously evaluated the set of f.s. X(k) by processing the signal samples x(n). At time moment t i+1 the new set of current samples x(n) enter memory replacing the previous samples. For the moment it is determined that most of signal's samples, indeed, are approximately equal to the previous ones. Only small part of current samples is different.
The aim of the paper is to update on-line the fast and the linear convolutions.

Recursive updating
It is not efficient to recalculate the basic spectrum samples X(k) anew even using FFT algorithms, if only one new signal sample x(i) or even a small portion of new samples emerges replacing previous samples. Therefore, we will use the solution of a convolution problem, applying the recursive DFT algorithm. At any time moment t a signal y(n) can be recovered from frequency samples Y (k), ∀ k ∈ 0, N − 1 by the IDFT (inverse DFT) [1,3]: At t + 1 time moment in sensor network some new samples of signal x(n) emerge and replace the previous ones. In such a case, (5) can be rewritten as follows In (6): In the matrix form ∆X(k) is the (N × 1) correction vector in the frequency-domain of the form  . . . Let us assume that only four values ∆x(0), ∆x(2), ∆x(4) and ∆x(N − 1) in the right-hand side correction vector are not equal to zeros. Expression (8) obtains the form  because most columns of matrix W N and respective rows of the right-hand side correction vector in (8) were deleted, and, then, compressed. Now, matrix W N has the size (N × 4). The size of the right hand-side correction vector is (4 × 1). Thus, the calculation operations of ∆X(k), using compressed W N and ∆x(k) are reduced significantly. Afterwards, ∆Y (k) is calculated, using the same ∆X(k) and (7). Then, it is substituted in (6). We obtain In recursive form (10) is Recursive formula (11) gives us possibility to update the output's samples on-line.
Assume that sensors send current portion of x(n) samples, between which only samples x(0), x(2), x(4) and x(7) differ in values from previous ones. At the moment, they are: x(0) = 20, x(2) = 15, x(4) = 25, x(7) = 10. Thus, ∆x(0) = −4, ∆x(2) = 3, ∆x(4) = 5, ∆x(7) = −4. Then, ∆X(k) is computed according to and multiplied by H(k) from (13). Afterwards, using IDFT for their product we obtain the third term in recursive expression (11). It was added to y t (n), finally. We obtain the updated values of current y t+1 (n) according to (11)  , secondly, f.s. Y (k) were obtained as product of X(k) and H(k), thirdly, samples of y(k) were determined by ifft. The results obtained by recursive (11) and ordinary methods are coincident. The example shows us how effective can be the recursive approach. It allows us to reduce Fourier code matrix W N in (9). It let us to cut the total number of CMADs (complex multiplications and additions) needed for calculations with complex valued f.s. In such a case, we spend here 16 CMADs. At last, it assures updating of linear (1) and fast (2) convolutions on-line.

Conclusions
The fast convolution have been proposed to recursively determine if one new signal sample or new small portion of samples emerge in the given period N of a realization x(n) replacing the old one sample or old portion of samples, respectively. The number of operations for their speedy calculating is essentially reduced by the original recursive expression (11) in comparison with the ordinary FFT procedure used only in the case of fixed values of samples x(n). The recursive algorithm could be effective in real-time applications for very large N .