Concept

Overlap–save method

In signal processing, overlap–save is the traditional name for an efficient way to evaluate the discrete convolution between a very long signal and a finite impulse response (FIR) filter : where h[m] = 0 for m outside the region [1, M]. This article uses common abstract notations, such as or in which it is understood that the functions should be thought of in their totality, rather than at specific instants (see Convolution#Notation). The concept is to compute short segments of y[n] of an arbitrary length L, and concatenate the segments together. Consider a segment that begins at n = kL + M, for any integer k, and define: Then, for , and equivalently , we can write: With the substitution , the task is reduced to computing for . These steps are illustrated in the first 3 traces of Figure 1, except that the desired portion of the output (third trace) corresponds to 1 ≤ j ≤ L. If we periodically extend xk[n] with period N ≥ L + M − 1, according to: the convolutions and are equivalent in the region . It is therefore sufficient to compute the N-point circular (or cyclic) convolution of with in the region [1, N]. The subregion [M + 1, L + M] is appended to the output stream, and the other values are discarded. The advantage is that the circular convolution can be computed more efficiently than linear convolution, according to the circular convolution theorem: where: DFTN and IDFTN refer to the Discrete Fourier transform and its inverse, evaluated over N discrete points, and L is customarily chosen such that N = L+M-1 is an integer power-of-2, and the transforms are implemented with the FFT algorithm, for efficiency. The leading and trailing edge-effects of circular convolution are overlapped and added, and subsequently discarded. (Overlap-save algorithm for linear convolution) h = FIR_impulse_response M = length(h) overlap = M − 1 N = 8 × overlap (see next section for a better choice) step_size = N − overlap H = DFT(h, N) position = 0 while position + N ≤ length(x) yt = IDFT(DFT(x(position+(1:N))) × H) y(position+(1:step_size)) = yt(M : N) (discard M−1 y-values) position = position + step_size end When the DFT and IDFT are implemented by the FFT algorithm, the pseudocode above requires about N (log2(N) + 1) complex multiplications for the FFT, product of arrays, and IFFT.

About this result
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
Related lectures (13)
Discrete-Time Fourier Transform: Properties
Explores the properties of Discrete-Time Fourier Transform, including linearity, time and frequency shifts, time reversal, and convolution.
Graphical Convolution
Covers the graphical convolution method for discrete-time signals and explains the continuous-time convolution with examples.
Signal Processing: Fourier Transform and Fast Algorithm
Explores DTFT, DFT, FFT properties, and the cost analysis of fast algorithms.
Show more
Related publications (12)

When Slepian Meets Fiedler: Putting a Focus on the Graph Spectrum

Dimitri Nestor Alice Van De Ville, Maria Giulia Preti, Robin Jonathan Demesmaeker

The study of complex systems greatly benefits from graph models and their analysis. In particular, the eigendecomposition of the graph Laplacian lets emerge properties of global organization from local interactions; e.g., the Fiedler vector has the smalles ...
Institute of Electrical and Electronics Engineers2017

A Spectral Method for Generating Surrogate Graph Signals

Dimitri Nestor Alice Van De Ville, Elvira Pirondini, Martina Coscia, Anna Vybornova

The increasing availability of network data is leading to a growing interest in processing of signals on graphs. One notable tool for extending conventional signal-processing operations to networks is the graph Fourier transform that can be obtained as the ...
Institute of Electrical and Electronics Engineers2016

Implementing super-efficient FFTs in Altera FPGAs

Pierre-André Farine, Cyril Botteron, Jérôme Leclère

In this article, an alternative method is proposed to compute a fast Fourier transform (FFT) on Altera FPGAs. This method is using the Altera FFT intellectual property (IP) core, but it is more efficient than the direct use of the Altera FFT IP core, in th ...
EE Times Programmable Logic Designline2015
Show more
Related concepts (1)
Fast Fourier transform
A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). Fourier analysis converts a signal from its original domain (often time or space) to a representation in the frequency domain and vice versa. The DFT is obtained by decomposing a sequence of values into components of different frequencies. This operation is useful in many fields, but computing it directly from the definition is often too slow to be practical.

Graph Chatbot

Chat with Graph Search

Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.

DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.