Skip to main content
. 2022 Sep 16;22(18):7025. doi: 10.3390/s22187025
Algorithm 2: The proposed method for two-dimensional signal processing.
Input: A two-dimensional signal: BN × M
Number of estimated spectral peaks: s
A matrix for coarse estimation: B^N × k, s < k < M
Input column vector of the second dimensional transformation: B^x
Columns number added each time: δ
IDFT matrix: WN-1
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: For i from 1 to k THEN
4:          Calculate bimax = max (FFT(B^(:, i)))
5:          Obtain B^x(j) = bimax
6: END FOR
6: Perform tempValue = sort (FFT(B^x))
6: Generate Ẑc = tempValue ((k-s): k)
5:          /* Iteration stage */
6: For j from 1 to s THEN
7:          For h from (k + 1) to M STEP δ THEN
8:          Generate B^(:, h: h + δ-1) = B (:, h: h + δ-1)
3:                       For i from h to (h + δ-1) THEN
4:                                          Calculate bimax = max (FFT(B^(:, i)))
4:                                          Set B^x(i) = bimax
5:                       END FOR
9:          Calculate n = β × h
10:        Obtain bn by randomly extracting n rows from B^x
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