Skip to main content
. 2022 Sep 16;22(18):7025. doi: 10.3390/s22187025
Algorithm 1: The proposed algorithm for one-dimensional signal processing.
Input: A column vector of length N: b ∈ ℂN × 1
Number of sinusoid components: s
A column vector for coarse estimation: b^k× 1, s < k < N
IDFT matrix: WN-1
Points number added each time: δ
Extraction rate: β (β << 1)
Output: Spectral peak positions  = [z1,…, zs]T
Initialize: Coarse spectral peak positions c = zeros(s, 1)
1: /* Coarse estimation stage */
2: Set b^ = b(1: k)
3: Calculate tempValue = sort(FFT(b^))
4: Generate ẑc = tempValue(k-s + 1: k)
5:        /* Iteration stage */
6: For j from 1 to s THEN
7:        For h from k + 1 to N STEP δ THEN
8:        Set b^(h: h + δ −1) = b(h: h + δ-1)
9:        Calculate n= β × h
10:      Obtain bn by randomly extracting n rows from b^
11:      Obtain Wn-1 by correspondingly extracting n rows of WN-1
12:      IF h == k + 1 THEN
13:                       Obtain z=max{Wn(z^c(j)1)-1,bn,Wn(z^c(j))-1,bn,Wn(z^c(j)+1)-1,bn}
14:      Else
15:                       Obtain z=max{Wn(z1)-1,bn,Wn(z)-1,bn,Wn(z+1)-1,bn}
16:      End IF
17:      END FOR
18:      Set zj = z
19: END FOR
20: Return