Empirical Evaluation of Typical Sparse Fast Fourier Transform Algorithms

Computing the Sparse Fast Fourier Transform(sFFT) of a K-sparse signal of size N has emerged as a critical topic for a long time. The sFFT algorithms decrease the runtime and sampling complexity by taking advantage of the signal inherent characteristics that a large number of signals are sparse in the frequency domain. More than ten sFFT algorithms have been proposed, which can be classified into many types according to filter, framework, method of location, method of estimation. In this paper, the technology of these algorithms is completely analyzed in theory. The performance ofthem is thoroughly tested and verified in practice. The theoretical analysis includes thefollowing contents: five operations of signal, three methods of frequency bucketization, five methods of location, four methods of estimation, two problems caused by bucketization, three methods to solve these two problems, four algorithmic frameworks. All the above technologies and methods are introduced in detail and examples are given to illustrate the above research. After theoretical research, we make experiments for computing the signals of different SNR, N , K by a standard testing platform and record the run time, percentage of the signal sampled and L0 , L1 , L2 error with eight different sFFT algorithms. The result of experiments satisfies the inferences obtained in theory.


Introduction
The Discrete Fourier Transform(DFT) is one of the most important and widely used techniques in mathematical computing.It is a basic tool commonly used to analyze the spectral representation in signal processing.Hence, people have been committed to the research of fast DFT algorithm for a long time.The most popular algorithm to compute DFT is the fast Fourier transform(FFT) invented by Cooley and Tukey, which can compute a signal of size N in O(N logN ) time and use O(N ) samples.With the demand for low sampling ratio and big data computing, it motivates the new algorithms to replace the previous FFT algorithms that can compute DFT from a subset of the input data in sub-linear time.The new algorithms called sFFT algorithms can reconstruct the spectrum with high accuracy by using only K most significant frequencies.In terms of its excellent performance and generally satisfied assumptions, the technology of sFFT was named one of the ten Breakthrough Technologies in MIT Technology Review in 2012.
As is shown in Table 1, more than ten sFFT algorithms have been proposed.Now we have to figure out how these different types of sFFT algorithms perform in theory and in practice.The performance includes runtime complexity, sampling complexity, December 16, 2020 1/26 arXiv:2012.08238v1[eess.SP] 15 Dec 2020 robustness.The comparative study of the performance of these algorithms is helpful to apply them to suitable scenes and for reasonable objects.All the answers can be found in this paper.The paper [19] summarizes a three-step approach in the stage of spectrum reconstruction and provides a standard testing platform to evaluate different sFFT algorithms.There are also some researches try to conquer the sFFT problem from other aspects: complexity [20], [21], performance [22], [23], software [24], [25], hardware [26], higher dimensions [27], [28], implementation [29], [30] and special setting [31], [32] perspectives.
This paper is structured as follows.Section 2 provides a brief overview of some notation and basic signal processing that we will use in the sFFT.Section 3 introduces and analyzes the first stage of sFFT, frequency bucketization, including three kinds of bucketizations through different filters.Section 4 introduces and analyzes the second stage of sFFT, spectrum reconstruction, including five methods of location and four methods of estimation.In Section 5, two confusions frequency aliasing and spectrum leakage caused by bucketization are raised and solved afterward, then four frameworks of sFFT algorithms are summarized, and the theoretical performance of their corresponding algorithms is analyzed.In Section 6, we use a standard platform to compare all kinds of sFFT algorithms to verify the theoretical research.We do not cover the analysis of detailed proof of all processes (the reader is referred to the original papers for proofs and analysis).However, we present an empirical analysis of the performance of the algorithms in theory and in practice.

Notation Problem Statement of sFFT
In this section, we initially present some notation and basic definitions of sFFT.
The N -th root of unify is denoted by ω N = e −2πi/N .The DFT matrix of size N is denoted by F N ∈ C N ×N as follows: The DFT of a vector x ∈ C N (consider a signal of size N ) is a vector x ∈ C N defined as follows: For x −i = x N −i , the convolution is defined as follows: For the coordinate-wise product (xy) i = x i y i , the DFT of xy is performed as follows: In the exactly sparse case, spectrum x is exactly K-sparse if it has exactly K non-zero frequency coefficients while the remaining N − K coefficients are zero.In the general sparse case, spectrum x is general K-sparse if it has K significant frequency coefficients while the remaining N − K coefficients are negligible.The problem statement of sFFT is to recover a K-sparse approximation x by locating K frequency positions f 0 , . . ., f K−1 and estimating K largest frequency coefficients xf0 , . . ., xf K−1 .December 16, 2020 3/26 The error of approximation x in approximating x is bounded by the error on the best K-sparse approximation ŷ (ŷ = argmin x − ŷ 2 ), Formally, x satisfy the following 2 / 2 guarantee where C is an approximation factor:

Operation of signal
As we all know, the preprocessing of sFFT requires multiple signal processing, including time shift operation, time scaling operation, frequency shift operation, subsampling operation, aliasing operation.These operations are equivalent to multiplying the original signal by a specified matrix.The details can be seen as follows:

Time shift operation
The matrix representing the time shift operation is denoted by S τ ∈ R N ×N as follows: The time offset parameter is denoted by τ ∈ R. If a vector x = S τ x, such that

Time scaling operation
The matrix representing the time scaling operation is denoted by P σ ∈ R N ×N as follows: The scaling parameter is denoted by σ ∈ R. If a vector x = P σ x, such that x i = x σi .

Frequency shift operation
The matrix representing the frequency shift operation is denoted by V b ∈ R N ×N as follows: The frequency offset parameter is denoted by b ∈ R. If a vector x = V b x, such that Example and character of the above three operations Let us give an example to illustrate the above three operations.If a vector According to the property, the DFT of a random permutation signal is performed as follows: if N , such that we can get Equation (9).The proof of this equation is the same as the proof of Claim 3.5.in paper [15].
Subsampling operation in the time domain The matrix representing the subsampling operation is denoted by D L ∈ R B×N as follows: The subsampling parameter is denoted by L ∈ Z + , and the subsampling number is denoted by B ∈ Z + .If a vector x = D L x, such that x i = x Li and It is proved that the signal in the time domain is subsampled such that the corresponding signal in the frequency domain is aliased.In addition, this operation can also be seen as a signal multiplied by a spike train filter just shown in Fig 3(b).

Aliasing operation in the time domain
The matrix representing the aliasing operation is denoted by U L ∈ R B×N as follows: The aliasing parameter is denoted by L ∈ Z + , and the aliasing number is denoted by It is proved that the signal in the time domain is aliased such that the corresponding signal in the frequency domain is subsampled.In addition, this operation can also be regarded as the signal convoluted with a spike train filter.

The first Stage of sFFT: frequency bucketization
The first stage of sFFT is encoding by frequency bucketization.In order to decrease runtime and sampling complexity, almost all operations are calculated in low dimensions through bucketization.Take advantage of this idea, sFFT algorithms work by binning N Fourier coefficients into B buckets(B N ) at first.It is called bucketization.Since December 16, 2020 5/26 the signal is sparse in the frequency domain, one bucket has none significant coefficient in most cases and has only one significant coefficient in a small number of cases and has more than one significant coefficients only in very little cases, so we only have to deal with a little of effective buckets.The subsequent calculation in these buckets is mainly composed of two parts: location(to find its position) and estimation(to compute its value).
In order to save the run time and sampling number in frequency bucketization, the window filter used is required concentrated both in time and frequency domain.There are three types of filters that meet the requirements.

Introduction of flat filter
The flat filter looks like a box or rectangle function in the frequency domain while using a small number of samples in the time domain.An example of such filter is a sinc function multiplied by a Gaussian function in the time domain.The expressions of sinc function and Gaussian function are described as Equation (12), Equation (13)

The analysis of bucketization through the flat filter
In order to explain the techniques used in the bucketization through flat filter clearly, we start with the analysis with a typical application of an example.

Introduction of spike train filter
The spike train filter looks like uniformly distributed impulses in the time domain and frequency domain.The expression of spike train function is described as Equation (15).The example of a spike train filter in the time domain and frequency domain with parameter N = 2048, L = 16, B = 128 is shown in Fig 3(a).
The analysis of bucketization through spike train filter We start with the analysis with a typical application of an example.The filtered signal through a spike train filter is shown in Fig 3

(b).
There are two applications of spike train filter.In one case, the filtered signal is equal to the product of the original signal and the spike train filter in the time domain, it can be represented by x = D L x and it is equivalent to aliasing in the frequency domain.In the other case, the filtered signal is equal to the convolution of the original signal and the spike train filter in the time domain, it can be represented by x = U L x December 16, 2020  and it is equivalent to subsampled in the frequency domain.Generally, bucketization through the spike train filter uses the first method, so the filtered signal is obtained by multiplying the original signal with a spike train filter in the time domain.In each bucket, the filtered spectrum is mainly composed of L elements with the same remainder divided by B. The Equation ( 16) respecting the composition of filtered signal in bucket i can be obtained.As is shown in

The analysis of bucketization through Dirichlet kernel filter bank
We start with the analysis with a typical application of an example.The filtered signal through a Dirichlet kernel filter bank is shown in Fig 6.
As is shown in Fig 6, the filtered signal is obtained by the convolution of the original signal and the Dirichlet kernel filter bank in the time domain.It can also be obtained by the product of the original signal and the Dirichlet kernel filter bank in the frequency domain.In each bucket, the filtered spectrum is mainly composed of L neighboring elements.As is shown in Fig 6(a), big value x64 , x304 , x610 , x1660 is divided into bucket 1 (1=Int((64+64)/128)), bucket 2 (2=Int((304+64)/128)), bucket 5 (5=Int((610+64)/128)), bucket 13 (13=Int((1660+64)/128))) individually (Int() means to get only integer part).As is shown in Fig 6(b), big value is divided into bucket 0 (0=Int((64+0)/128), bucket 2 (2=Int((304+0)/128)), bucket 4 (4=Int((610+0)/128), bucket 12 (12=Int((1660+0)/128))) individually.In the energy of a bucket, the proportion coefficients of L elements are different and the more the element is in the middle, the larger the proportion coefficient is.Correspondingly, the more the element is at the two ends, the smaller the proportion coefficient is.As is shown in Fig 6(a), the big value of bucket 13 is close to the high passband of Dirichlet kernel filter ((1660 + 64)/128 − 13 ≈ 0.47 ≈ 0.5), so its proportion coefficient is large, then the location and estimation of this bucket is very easy.Correspondingly, the proportion coefficients of other big values in other buckets are small.As is shown in Fig 6(b), the proportion coefficient of the big value in bucket 0 is large ((64 + 0)/128 − 0 = 0.5 ≈ 0.5), and others are small.As is shown in Fig 10(a), for the big value x610 in bucket 5, although the amplitude of significant frequency coefficients in some filtered signals is reduced due to the relationship of the proportional coefficient, as long as it is still larger than the energy of noise multiplied by larger scale coefficient, the position of them can also be correctly located.

The second stage of sFFT: Spectrum reconstruction
Through the first stage of sFFT, bucketization, N frequencies are divided into B buckets by one of the three filters introduced in the previous chapter.The next stage of sFFT is the spectrum reconstruction by identifying frequencies that are isolated in their buckets.The operation is generally divided into two steps.The first step is the location, and the second step is the estimation.If the location and estimation of the frequency of all the large value scattered into the bucket can be obtained correctly, the purpose of sFFT is achieved through the sum of these results.It is clear that buckets can be classified into three categories: 'zero-ton' bucket, 'single-ton' bucket, 'multi-ton' bucket.There is a big difference in the way to solve the 'single-ton' bucket or the 'multi-ton' bucket.

Phase encoding method
The shift of time leads to the phase shift of frequency.Suppose the bucket i is a 'single-ton' bucket we can obtain ŷi ≈ prony(x fi )ω 0•fi ) with the time shift operation of S τ = S 0 (while xfi is the only significant frequency coefficient in the bucket i) for the first time.Then we can obtain ŷ i ≈ prony(x fi )ω 1•fi with the time shift operation of S τ = S 1 in the second time.The position f i can be obtained by ).The advantage of this method is that it is easy to use and has low runtime complexity and sampling complexity.The disadvantage is that once the noise in the bucket is large, it is easy to affect the judgment of position, and this method can only deal with the condition that the default is 'single-ton' bucket.December 16, 2020 10/26 The Method of probability and statistics The method of probability statistics is to judge whether the frequency position is effective or invalid by counting the probability of each original frequency position appearing in the large value bucket and the small value bucket.The details are as follows: In one statistic, after bucketization, in B buckets, if ŷi1 , ŷi2 , . . ., ŷi 2K are large, it means that positions of the effective spectrum may appear in the frequency elements that are hashed by these buckets.Correspondingly, ŷi 2K+1 , ŷi 2K+2 , . . ., ŷi B are small; it means that positions of the effective spectrum does not exist in the frequency elements that are hashed by these buckets.After a large number of randomly bucketization and statistical voting, the locations of the high probable probability is the target we want to know.
The advantage of this method is high robustness and can deal with the condition of 'multi-ton' bucket, but the disadvantage is that it is a probabilistic algorithm.If we want to improve the success probability, it will increase runtime complexity and sampling complexity.
The advantage of this method is that it is medium robustness and has good runtime complexity.The disadvantage is that this method can only deal with the case of 'single-ton' bucket by default and the runtime complexity and sampling complexity are affected by l when L has been determined.

The method of Prony
The above three methods can solve the case of 'single-ton' bucket by default.The Prony method can deal with 'multi-ton' bucket.In view of the similarity of the bucket structures of the three filters, the filtered signal through the spike train filter is taken as an example.
Firstly calculate ŷB,τ = F B D L S τ x representing filtered spectrum through bucketization.Suppose in bucket i, the number of significant frequencies is denoted by a; we get simplified Equation (23) from Equation (21) and Equation (22).In Equation December 16, 2020 11/26 (22) and Equation ( 23), p j = xfj respecting effective frequency values for The first thing is to obtain the number of significant frequencies in bucket i.The method is to calculate the largest a m principal components in each bucket(suppose there are at most a m number of significant frequencies aliasing in every bucket).Among the total a m B number of principal components, the first 2B principal components may be the target.How many numbers of the a m principal components in a bucket are the large values of all principal components is the number of collisions in this bucket.The principal component decomposition (PCA) method is to symmetric singular value decomposition (SSVD) of the Hankel matrix which is composed of filtered signal groups with interval time shift.After knowing the number of collisions, the aliasing problem is reformulated as Moment Preserving Problem(MPP).The orthogonal polynomial formula P (z) is defined as Equation ( 24) and P (z) ≈ 0. The Matrix M a ∈ C a×a is defined as Equation (25).The vector C is defined as C = [c 0 , c 1 , . . ., c a−1 ] T .The vector M s is defined as M s = [−m a , −m a+1 , . . ., −m 2a−1 ] T .The MPP problem formulated by Bose-Chaudhuri-Hocquenghem(BCH) codes is expressed by Equation (26).Through the moments' formula M a C ≈ M s , we can obtain C ≈ (M a ) −1 M s .After gaining C, there are many ways to obtain z j 's through Equation (24) and P (z) ≈ 0. After knowing z j 's, we can obtain approximate positions f j 's through z j = ω fj .
The advantage of this method is that it can solve all types of buckets by one-shot and has good sampling complexity, but the disadvantage is that there is a premise that at most a m number of significant frequencies aliasing in every bucket and the method needs matrix operation, which is time-consuming.December 16, 2020 12/26 The method of estimating the value When we get the position by the first step, in the case of spike train filter and flat filter, the subsequent estimation is relatively simple.As to the Dirichlet kernel filter, the estimation can be carried out with higher probability and higher accuracy by using the property of random sampling.

Formula method
If the frequency set of known large value is f = {f 1 , f 2 , . . .f k } and K is very small, the expression of Fourier series of K frequencies can be obtained according to Equation ( 2) directly.As long as K logN , its operation efficiency is acceptable.

Energy concentration method
In the case of spike train filter and flat filter, it is relatively simple to estimate the value of the only one large value frequency coefficient of the 'single-ton' bucket which has been successfully located.Because the passband length of these two filters is approximately equal to L, the spike train filter has no spectrum leakage; the flat filter basically has no spectrum leakage.Therefore, in order to simplify and facilitate to do the component analysis of the bucket, other components are ignored in one bucket.So in simple words, the energy of the bucket is viewed as only contributed by the large value frequency coefficient of 'single-ton' bucket.For the flat filter, the bucket is composed of adjacent elements, so we can obtain ŷi = prony(x s , xs+1 , xs+2 . . ., xs+L−1 ) and ŷi ≈ prony(x f ) (x s is the first element in the bucket, xf is the located element in the bucket).For the spike train filter, the bucket is composed of L elements with the same remainder divided by B, so we can obtain ŷi = prony(x s , xs+B , xs+2B . . ., xs+(L−1)B ) and ŷi ≈ prony(x f ).Through ŷi ≈ prony(x f ), we can obtain xf which we wanted; and the average value of multiple buckets is more accurate.

Method of original signal frequency shift
In the case of the Dirichlet kernel filter, it is necessary to move the frequency coefficient located to the frequency position is equal to zero.If a vector x = V f x, such that x i = x i ω f i N (f is the located position in the bucket) and Let T be the random variable that takes each value from set {0, 1, 2, . . ., N − 1} with equal probability.Since the new signal after frequency shift has only one large frequency coefficient x 0 , if sampled randomly, it satisfies 1 . Therefore, the random sampling and averaging of the signal x T0 , x T1 , x T2 , . . ., x Tt−1 is enough to calculate x 0 and xf .The example is shown in Fig 7.

The method of Prony
Suppose in bucket i; if the number of significant frequencies a and approximate effective frequency position z j 's have been known, we can get Equation ( 27) for P number of random sampling with time shift parameter r 1 , . . ., r P .The solution to obtain p j 's is the subspace pursuit method by random sampling according to the properties of the sparse matrix and the idea of greedy pursuit by using compressed sensing (CS) concept.

The frameworks and performance of sFFT algorithm
In the above two chapters, two stages of sFFT are introduced in detail.The content includes specific methods and practical examples of bucketization and spectrum reconstruction.This chapter first introduces the problems that be caused by bucketization, then introduce three methods to solve these problems.Finally, three main frameworks are summarized, and the theoretical performance of their corresponding algorithms is analyzed.

The problems caused by bucketization
Bucketization means to divide multiple frequency coefficients into one bucket.Obviously, this operation will cause two problems.The first problem is frequency aliasing.Once aliasing occurs, 'multi-ton' bucket will be generated.For 'multi-ton' bucket, some location methods and estimation methods are powerless.The second problem is spectrum leakage, which is determined by the nature of the filter, which will lead to positioning error and greatly reduce the accuracy of estimation, even in the case of 'single-ton' bucket.

Frequency aliasing
As can be seen from the previous chapter, in order to realize hash mapping and reflection mapping, the bucket is composed of either adjacent frequency coefficients or separated frequency coefficients.Once there are two or more large values in one bucket, a 'multi-ton' bucket will be generated.As is shown in the coefficients are white Gaussian noise approximately equal to zero.Since position 64 and position 98 are adjacent, the 'multi-ton' bucket will be generated when the signal is filtered by the flat filter in the frequency domain.Since position 98 and 610 has the same remainder over the number 128 (98 mod 128 = 98, 610 mod 128 =98), the 'multi-ton' bucket will be generated when the signal is filtered by the spike train filter in the frequency domain.

Spectrum leakage
Whether the spectrum is leaked or not is based on the nature of the filter.In the energy of a bucket, the proportion coefficients of L elements are different, and the more the element is in the middle, the larger the proportion coefficient is.Correspondingly, the more the element is at both ends, the smaller the proportion coefficient is.If the coefficients on both ends are too small or almost no, it will cause spectrum leakage.As is shown in The methods to solve these problems    1.The advantages of this framework are as follows: 1) It does not need to bucketizations too many times, so it has low sampling complexity.2) There is no need for random bucketization and iterative process; the extra computation can be avoided.3) Because of the use of the spike train filter, there is no spectrum leakage.The disadvantages of this framework are as follows: 1) The algorithm framework has a presupposition that the maximum number of aliasing in each bucket is not greater than a m , so the algorithm based on this framework is not a deterministic algorithm.2) When a m is set to a large value, the SSVD decomposition or Matrix operation used in this framework is computationally expensive and time-consuming.1.The advantages of this framework are as follows: 1) The framework is easy to implement because it does not need iteration, it only needs to count and vote to determine the target location after bucketizations.2) Because the length of support set based on flat filter is short( N ) in the time domain, the sampling and runtime complexity of the framework are acceptable.The disadvantages of this framework are as follows: 1) In extreme cases, a small value frequency coefficient may be recognized as a big value frequency coefficient in each voting statistics, resulting in misjudgment, so the algorithm based on this framework is not a deterministic algorithm.
2) The number of samples and the amount of calculation needed for each bucketizations is relatively large, which is determined by the support set of the flat filter in the time domain ( O(L)), so its performance is not optimal.
Fig 12 .The system block diagram of the voting framework.

The iterative framework
The key point of the iterative framework is that in each new iteration, the contribution of the successfully recovered frequency has been subtracted before spectrum recovery, which helps to deal with some 'multi-ton' buckets in spectrum recovery.The block diagram of the iterative framework is shown in Fig 13, and the algorithms based on it are shown in Table 1.The advantages of this framework are as follows: 1) The algorithm based on this framework is a deterministic algorithm.
2) It allows user to take some non-robust but efficient localization methods (such as phase encoding or binary search), because it allows not to complete all spectrum recovery in one-shot, and can approach the optimal result by greedy pursuit in the process of iteration.The disadvantages of this framework are as follows: 1) The framework is more complicated because it takes one more step to subtract contribution.2) In the worst case, the number of iterations is very large, which affects the efficiency of the algorithm.

The peeling framework
The key point of the peeling framework is that after bucketizations with different parameters B, the unsolved bucket can be peeled and converted into a solvable bucket  1.The advantages of this framework are as follows: 1) The algorithm based on this framework is a deterministic algorithm according to the CRT theorem.
2) The complexity of sampling is very low.
3) It has no spectrum leakage.The advantages of this framework are as follows: 1) N has a premise that it is composed of co-coprime numbers, 2) An additional step is needed to determine the character of the bucket.3) In the worst case, the decoding has to go through several layers of peeling, so the computational complexity becomes high.Theoretical performance of the corresponding algorithm 2) As to the positioning methods, the phase encoding method is the most efficient but has poor robustness; the Prony method is the most complicated but has good robustness.3) As to the estimation methods, the energy concentration method is the most efficient but has poor accuracy; the Prony method is the most complicated but has good accuracy.
3) As to the filters, the algorithms using the spike train filter have good sampling because of their very short support set.The algorithms using the Dirichlet kernel filter bank are the most complicated but can random sampling on account of their estimation method.The algorithms using the flat filter have good performance based on low spectrum leakage and they are easy to use with short support set.
Table 2.The performance of fftw algorithm and sFFT algorithms in theory algorithm runtime complexity sampling complexity robustness sFFT1.0O(K

Experimental Evaluation
In this section, we evaluate the performance of sFFT algorithms in the general sparse case.The algorithms include AAFFT, sFFT-DT2.0,R-FFAST, sFFT1.0,sFFT2.0,sFFT4.0,MPFFT, fftw algorithm.The codes of the sFFT1.0,sFFT2.01 , sFFT3.0,MPFFT2 , sFFT-DT2.03, R-FFAST4 , AAFFT     From the ranking, it can be seen that algorithms using the spike train filter are the best, algorithms using the flat filter are good, and algorithms using the Dirichlet kernel filter bank are ordinary.

Conclusion
In the first part, the paper gives a detailed introduction to the technology used in sFFT algorithms.When discussing the operation of signal, time shift operation, time scaling operation, frequency shift operation, subsampling operation, aliasing operation are mentioned.When discussing methods of frequency bucketization, flat filter, spike train filter, Dirichlet kernel filter bank are mentioned.As to the methods of location, phase encoding, probability and statistics, Prony, binary search, multiscale search are mentioned.When it comes to methods of estimation, formula, energy concentration, frequency shift, Prony are mentioned.In the second part, the paper gives a detailed December 16, 2020 22/26  introduction to the confusions and frameworks of sFFT.Firstly, it introduces two problems that caused by bucketization, then introduces three methods to solve these problems.Then, four main frameworks are summarized, and the theoretical performance of their corresponding algorithms is analyzed.In the third part, we make three series of experiments to evaluate the performance of all sFFT algorithm in the general case.The experiment includes three parts: runtime complexity, sampling complexity, robustness.The analysis of the experiments satisfies theoretical inference.
The main contribution of this paper is 1) The technical methods used in the stages of sFFT are described in detail, and the corresponding algorithm framework and theoretical performance are also fully analyzed.2) Develop a standard testing platform that can test more than ten typical sFFT algorithms under all kinds of signal on the basis of the old platform.3) Get a conclusion of the character and performance of the all sFFT algorithm in theory and practice.Through the summary and analysis of the experimental results, the performance and differences of various technologies used in different algorithms are further verified.These results provide the basis and reference for us to use the characteristics of different algorithms for specific applications.

N
and b = b σ.An example of the operations December 16, 2020 4/26 with three parameters τ = 1, σ = 3, b = 2, b = b σ = 6 is as follows: . The examples of Gaussian, sinc, flat filter in the time domain and frequency domain with parameters N = 2048, L = 128, B = 16, σ = B log 2 N ≈ 53.07, Ω = 516 are shown in Fig 1.From Equation (4), it is known that the product in the time domain is equal to convolution in the frequency domain, so as shown in Fig 1, the flat filter has almost no spectrum leakage.
(a) The Gaussian filter.(b) The sinc filter.(c) The flat filter.

Fig 1 .
Fig 1.Three examples of a Gaussian filter, a sinc filter, a flat filter in the time domain and frequency domain.
The original signal of the following experiments is considered as a N (N = 2048) size signal that has only K(K = 4) significant coefficients x64 = 0.55, x304 = 0.7, x610 = 0.85, x1660 = 1.0 while the rest of the coefficients are white Gaussian noise approximately equal to zero.The original signal in the time domain and frequency domain is shown in Fig 2(a).The filtered signal through a flat filter is shown in Fig 2(b).

( a )
The original signal.(b) The original signal and filtered signal.

Fig 2 .
Fig 2. The original signal and filtered signal through a flat filter in the frequency domain.
(a) The spike train filter.(b) The original signal and filtered signal.

Fig 3 .
Fig 3.The original signal and filtered signal through a spike train filter in the frequency domain.
(a) The Dirichlet kernel filter.(b) The Dirichlet kernel filter.

Fig 4 .
Fig 4. Two examples of two Dirichlet kernel filters in the time domain and frequency domain.
(a) The Dirichlet kernel filter bank.(b) The Dirichlet kernel filter bank.

Fig 5 .
Fig 5. Two examples of two Dirichlet kernel filter banks in the time domain and frequency domain.
The original signal and filtered signal.(b) The new signal and filtered signal.

Fig 7 .
Fig 7. The original signal, new signal after frequency shift, filtered signal in the frequency domain.

( a )
An example of frequency aliasing.(b) An example of frequency aliasing.

Fig 1 ,
Fig 3, Fig 5, filtered signal through spike train filter has no spectrum leakage, filtered signal through flat filter has almost no spectrum leakage except both ends of the passband, filtered signal through Dirichlet kernel filter bank has large spectrum leakage except the center of the passband.
Scaling method (not applicable to spike train filter)The scaling change in the time domain will lead to the corresponding scaling change in the frequency domain.It can make the adjacent frequency no longer close to each other, and the result of the scaled signal obtained will return to the original frequency easily.The scaling change does not change the remainder result, so scaling change is not useful for the spike train filter.An example is shown in Fig 9; it can be seen that the original set of large frequency coefficients is changed from set {64, 98, 610, 1660} to a new set {192(192 = 64 * 3), 294(294 = 98 * 3), 1830(1830 = 610 * 3), 884(884 = 1660 * 3mod2048)} through scaling change.The position 64 and position 98 become position 192 and position 294 which are no longer close together, so the frequency coefficients in the bucket are no longer aliased.

( a )
Part of the filtered signal.(b) Part of the filtered signal changed.

Fig 10 .
Fig 10.The original signal and filtered signal in the frequency domain after filter shift.

Fig 11 .
Fig 11.The system block diagram of the one-shot framework.

Fig 13 .
Fig 13.The system block diagram of the iterative framework.

Fig 14 .
Fig 14.The system block diagram of the peeling framework.

( a )
Runtime vs signal size.(b) Runtime vs signal sparsity.

Fig 15 .
Fig 15.Runtime of the sFFT algorithm in the general sparse case.

( a )
Signal sampled vs signal size.(b) signal sampled vs signal sparsity.

Fig 16 .
Fig 16.Percentage of the signal sampled of the sFFT algorithm in the general sparse case.

Fig 17 .
Fig 17.Runtime and L 1 -error of the sFFT algorithm in the general sparse case vs SNR

Table 1 .
Description of sFFT algorithm characteristics

Table 2
The voting and iterative framework have better runtime complexity because they can use some simple methods in the step of location.
can be concluded with the information of all typical sFFT algorithms and fftw algorithm in theory.Combined with the previous analysis and the contents involved in Table1and Table2, we can see the analysis of different types of algorithms are as follows 1) In the comparison of algorithms using different frameworks, the peeling and one-shot framework have better sampling complexity because their sampling complexity December 16, 2020 19/26 is based on O(B).
5, fftw6algorithm are already open sources.A series of experiments consists of three parts.The first part is to test the runtime complexity of different algorithms by recording the run time.The second part is to test the sampling complexity of different algorithms by recording the sampling ratio.The third part is to test the robustness of different algorithms by recording L 1 error of the calculation result with different SNR signals.This paper only analyzes the general sparse case, which is more representative.As for the exactly sparse case, we can see the website7.All experiments are run on a Linux CentOS computer with 4 Intel(R) Core(TM) i5 CPU and 8 GB of RAM.