The sparse Fourier transform is a kind of discrete Fourier transform for handling big data signals. Specifically, it is used in GPS synchronization, spectrum sensing and analog-to-digital converters.: The fast Fourier transform plays an indispensable role on many scientific domains, especially on signal processing. It is one of the top-10 algorithms in the twentieth century. However, with the advent of big data era, the FFT still needs to be improved in order to save more computing power. Recently, the sparse Fourier transform has gained a considerable amount of attention, for it performs well on analyzing the long sequence of data with few signal components.
Definition
Consider a sequence xn of complex numbers. By Fourier series, xn can be written as Similarly, Xk can be represented as Hence, from the equations above, the mapping is.
Assume only a single frequencyexists in the sequence. In order to recover this frequency from the sequence, it is decent to utilize the relationship between adjacent points of the sequence.
Phase encoding
The phase k can be obtained by dividing the adjacent points of the sequence. In other words, Notice that.
An aliasing-based search
Seeking phase k can be done by Chinese remainder theorem. Take for an example. Now, we have three relatively prime integers 100, 101, and 103. Thus, the equation can be described as By CRT, we have
Randomly binning frequencies
Now, we desire to explore the case of multiple frequencies, instead of a single frequency. The adjacent frequencies can be separated by the scaling c and modulation b properties. Namely, by randomly choosing the parameters of c and b, the distribution of all frequencies can be almost a uniform distribution. The figure Spread all frequencies reveals by randomly binning frequencies, we can utilize the single frequency recovery to seek the main components. where c is scaling property and b is modulation property. By randomly choosing c and b, the whole spectrum can be looked like uniform distribution. Then, taking them into filter banks can separate all frequencies, including Gaussians, indicator functions, spike trains, and Dolph-Chebyshev filters. Each bank only contains a single frequency.
By randomly bining frequencies, all components can be separated. Then, taking them into filter banks, so each band only contains a single frequency. It is convenient to use the methods we mentioned to recover this signal frequency.
Estimating coefficients
After identifying frequencies, we will have many frequency components. We can use Fourier transform to estimate their coefficients.
Repeating
Finally, repeating these two stages can we extract the most important components from the original signal.
Sparse Fourier transform in the discrete setting
In 2012, Hassanieh, Indyk, Katabi, and Price proposed an algorithm that takes samples and runs in the same running time.
In 2014, Indyk and Kapralov proposed an algorithm that takes samples and runs in nearly linear time in. In 2016, Kapralov proposed an algorithm that uses sublinear samples and sublinear decoding time. In 2019, Nakos, Song, and Wang introduced a new algorithm which uses nearly optimal samples and requires nearly linear time decoding time.
Sparse Fourier transform in the continuous setting
There are several works about generalizing the discrete setting into the continuous setting .
Implementations
There are several works based on MIT, MSU, and ETH. Also, they are free online.