Skip to main content
. 2020 May 2;20(9):2602. doi: 10.3390/s20092602
Algorithm 3. GDBRA
  • Step 1: For each k = 0, 1, …, N − 1 calculate generalized deviation GD(k) as:
    GD(k)==meannmNavail{|x(nm)ej2πknm/NmeannmNavail{x(n1)ej2πkn1N,,x(nM)ej2πknMN}|L},
    where meannmNavail{f(nM)} is used to find mean value of vector with elements f(nM), for nMNavail. For norm 2 use L = 2, while for norm 1 use L = 1.
  • Step 2: Determine the signal support k=arg{GD(k)<T} where T can be calculated with respect to median{GD(k)}, or pmedian{GD(k)} (where p is constant close to 1) for example, but also with respect to mean or minimal value. The vector of positions k should contain all signal frequencies kik for any I = 1, …, K.

  • Step 3: Set X˜(k)=0 for frequencies kk;;

  • Step 4: The estimates of the DFT values can be calculated by solving the set of equations, at the localized frequencies from the vector k, where k contains K signal frequencies k = k1, k2, … kk. A system of equations is set as follows:
    i=1KX(ki)ej2πkinm=x(nm)
  • Step 5: The CS matrix ACS is formed as a partial DFT matrix: columns correspond to the positions of available samples, rows correspond to the selected frequencies. The system is solved in the least square sense:
    X=(ACSTACS)1ACSTy.