Skip to main content
. 2021 Jul 18;21(14):4889. doi: 10.3390/s21144889
Algorithm 1: Partition-Based Clustered-Sparse Bayesian Learning Algorithm
Input: the received pilot signal yp; the dictionary matrix UP; the noise variance λ;
  the length of discrete paths L; the maximum number of iterations rmax;
  the maximum number of discrete paths in one cluster LCmax; the threshold for
  prunning small hyperparameters γth; the threshold to stop the whole
  algorithm ϵ.
Initialize: the list of path power γlist=1L; the number of clusters C=1;
  the list of cluster structure CLS : Γ1=IL, B1=IM and the delay range of
  the 1st cluster Rd=[0,L1]; the iteration counter r=0.
Channel Estimation:
 1: 0diagΓ1B1,Γ2B2,,ΓCBC.
 2: h=00UPHλI+UP0UPH1UP0.
 3: μhλ1hUPHyp.
Cluster Evolution:
 4: for d=1,2,,Cdo
 5:  for  i=1,2,,Ld do
 6:   γd,i1MTrBd1hd,i+μhd,iμhd,iH, and update γlist with γd,i.
 7:  end for
 8:  Ldmin(Ld,LCmax).
 9:  Bd1Ldi=1Ldhd,i+μhd,iμhd,iHγd,i using the Ld most significant continuous paths.
 10:  βdα1α0, where α1 and α0 can be obtained through Bd.
 11: end for
Cluster Partition:
 12: p(0) FindIndex(0<γlist<γth).
 13: if p(0) is not empty then
 14:  γlist(old)γlist and γlist[p(0)]0.
 15:  CLS Split(CLS, p(0)), where CLS is splitted into C clusters
    according to p(0).
 16:  p(1) FindIndex(γlistγth) and UPUP[:,p(1)(1:M)].
 17: end if
 18: for d=1,2,,Cdo
 19:  Update Rd, Γd and Bd in CLS according to p(0), γlist and βd, respectively.
 20: end for
Check stopping conditions:
 21: rr+1.
 22: return the sub-part of ChannelEstimation until rrmax or
    γlistγlist(old)22<ϵ.
Output: the pruned channel μh with the covariance matrix h and the
 cluster list CLS.