Skip to main content
. 2024 Apr 4;24(7):2291. doi: 10.3390/s24072291
Algorithm 2: Dual-threshold mask OMP based on ICA (DTM_OMP_ICA)
Input: X_Noise
Output: Reconstructed X_Clear
1 Initialization K=0, M=0, N=len(X_Noise);
2 do
3      Step 1:  K=OutLine_Extra(X_Noise);
4      Step 2:  M=K×log(N/K);
5      Step 3:  ψ=1N×FFT(I);
6      path1 do
7          Step 1:  φRGM=Orth(rand(M,N));
8          Step 2:  yRGM=φRGM×X_Noise; ARGM=φRGM×ψ;
9          Step 3:  θRGM=OMP(ARGM,yRGM,K);
10     end path1
11     path2 do
12          Step 1:  φSRM=SparseRandomMtx(M,N,d=4);
13          Step 2:  ySRM=φSRM×X_Noise; ASRM=φSRM×ψ;
14          Step 3:  θSRM=OMP(ASRM,ySRM,K);
15    end path2
16      Step 4:  θ1=corr(FastICA(θRMG,θSRM));
17      Step 5:  Reconstructed_X=ψT×θ1T;
18      Step 6:  Mask=MeanMask(FFT(Reconstructed_X));
19      Step 7:  FX=dot(FFT(X_Noise), Mask);
20      Step 8:  Reconstructed X_Clear=iFFT(FX);
21 end