Overlap Save Method
In this method, the size of the input data blocks is N=L+M-1 and the DFTs and the IDFTs are of length L. Each Data Block consists of the last M-1 data points of the previous block followed by L new data points to form a data sequence of length N=L+M-1.An N point DFT is computed for each data block. The impulse response of the FIR filter is increased in length by appending L-1 zeros and an N-point DFT of the sequence is computed once and stored. The multiplication of the N-point DFTs for the mth block of data yields: Ym(k)=h(k)Xm(k).
Since the data record is of length N, the first M-1 points of Ym(n)are corrupted by aliasing and must be discarded. The last L points of Ym(n) are exactly the same as the result from linear convolution. To avoid loss of data due to aliasing, the last M-1 points of each data record are saved and these points become the first M-1 data points of the subsequent record. To begin the processing, the first M-1 point of the first record is set to zero. The resulting data sequence from the IDFT are given where the first M-1 points are discarded due to aliasing and the remaining L points constitute the desired result from the linear convolution. This segmentation of the input data and the fitting of the output data blocks together form the output sequence.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.