system: [SYSTEM]

user: 4. 仿真实验与结果分析 为验证本文所提出的INCS算法在重构性能上的优越性，本节设计了几组有关SL0算法、基追踪(Basis Pursuit， BP)算法、NCCS算法和INCS算法的对比实验。对于每个实验，我们重复进行100次测试，给出平均结果，并取 c = 10 。仿真实验结果是在MatlabR2014a的条件下获得的。 在仿真实验中，矩阵A的大小为 128 × 256 ，其中矩阵元素服从零均值、单位方差的高斯分布，矩阵的列具有单位l 2 范数；稀疏原信号x的维数为256，非零项服从正态分布；信号稀疏度k取值区间为 [ 10 ， 80 ] 。 实验中所涉及到的性能指标包括： 1) 重构误差(mean squared error)： M S E = ‖ x ˜ − x ^ ‖ 2 2 2) 信噪比(signal noise ratio)： S N R = 10 ⋅ log 10 ( ‖ x ˜ ‖ 2 2 ‖ x ˜ − x ^ ‖ 2 2 ) 3) 算法运行时间 4) 恢复成功率(recovery success rate)：当 x ˜ i ≠ 0 时， | x ˜ − x ^ | ≤ 10 − 4 说明算法在该点处重构成功， R S S = x ^ 重 构 成 功 的 点 个 数 x ˜ 中 非 零 点 个 数 其中 x ˜ 表示稀疏原信号， x ^ 表示算法的恢复信号； 图2为各算法的重构误差MSE和稀疏度的变化关系，实验结果如图2及表1所示。由图2和表1可见，BP算法、NCCS算法和INCS算法都存在随着稀疏度的增加重构误差增大的趋势。在同一稀疏度下，相比于其他三种算法，INCS算法的重构误差略小。 图2. SL0算法、BP算法、NCCS算法、INCS算法的重构误差和稀疏度的变化关系 Table 1 The numerical record of the reconstruction error of each algorithm changing with the sparsity 算法 k = 10 k = 20 k = 30 k = 40 k = 50 k = 60 k = 70 k = 80 BP 1.12E−18 5.48E−18 5.81E−17 3.06E−16 0.45357 3.57556 10.01417 18.29708 SL0 2.47E−08 2.29E−08 2.09E−08 1.94E−08 1.70E−08 1.24461 14.78881 23.99578 NCCS 5.54E−20 5.79E−19 1.93E−18 7.17E−18 9.38E−18 0.79264 7.34229 17.68958 INCS 2.83E−20 1.31E−19 2.45E−19 9.53E−19 2.45E−18 7.60E−17 3.04638 14.10025 表1. 各算法的重构误差随着稀疏度k变化的数值记录 图3为各算法的重构信噪比SNR和稀疏度的变化关系，实验结果如图3及表2所示。可以看出，在稀疏度区间 [ 10 ， 50 ] 上，INCS算法和NCCS算法的信噪比变化不大且相差很小，但明显高于SL0算法和BP算法的信噪比；在稀疏度区间 [ 50 ， 80 ] 上，各算法的信噪比随着稀疏度的增加而减小，但INCS算法的信噪比仍高于其他三种算法。 图3. SL0算法、BP算法、NCCS算法、INCS算法的重构信噪比和稀疏度的变化关系 Table 2 The numerical record of the signal-to-noise ratio of each algorithm changing with the sparsity 算法 k = 10 k = 20 k = 30 k = 40 k = 50 k = 60 k = 70 k = 80 BP 2.11E+02 2.05E+02 2.05E+02 1.94E+02 1.12E+02 19.71136 6.68644 4.47774 SL0 70.98122 77.35896 81.58295 84.80094 87.50702 83.92584 26.56156 6.28709 NCCS 2.32E+02 2.26E+02 2.23E+02 2.21E+02 2.16E+02 1.94E+02 1.16E+02 18.32044 INCS 2.32E+02 2.23E+02 2.22E+02 2.18E+02 2.12E+02 2.11E+02 1.57E+02 35.03469 表2. 各算法的重构信噪比随着稀疏度k变化的数值记录 图4为各算法的运行时间和稀疏度的变化关系，实验结果如图4及表3所示。可以看出，SL0算法和BP算法的运行时间较短并能够保持在0.5秒以内。在稀疏度区间 [ 10 ， 50 ] 上，INCS算法和NCCS算法的运行时间能保持在1秒以内，在稀疏度区间 [ 50 ， 80 ] 上这两种算法的运行时间都有所增加，但对比NCCS算法，INCS算法的运行时间始终略短。 图4. SL0算法、BP算法、NCCS算法、INCS算法的运行时间和稀疏度的变化关系 Table 3 The numerical record of the running time of each algorithm changing with the sparsity 算法 k = 10 k = 20 k = 30 k = 40 k = 50 k = 60 k = 70 k = 80 BP 0.11539 0.12327 0.13205 0.15259 0.16604 0.16831 0.18520 0.18352 SL0 0.00010 0.00009 0.00011 0.00009 0.00012 0.00012 0.00010 0.00009 NCCS 0.58932 0.58826 0.60202 0.57496 0.66814 1.07208 2.03705 2.41634 INCS 0.46711 0.48871 0.48493 0.50970 0.60926 0.71415 1.40504 2.34221 表3. 各算法的运行时间随着稀疏度k变化的数值记录 图5为各算法的恢复成功率RSS和稀疏度的变化关系，实验结果如图5及表4所示。可以看出，当稀疏度增加到一定程度时这四种算法的恢复成功率均开始降低。INCS算法的恢复成功率在稀疏度区间 [ 10 ， 60 ] 上都能保持为1，也就是说在这个区间内该算法都能够实现信号的完全恢复。在稀疏度区间 [ 60 ， 80 ] 上，INCS算法的恢复成功率始终略高于其他三种算法，所以利用INCS算法恢复信号时精确度有一定的提高。 图5. SL0算法、BP算法、NCCS算法、INCS算法的恢复成功率和稀疏度的变化关系 Table 4 The numerical record of the recovery success rate of each algorithm changing with the sparsity 算法 k = 10 k = 20 k = 30 k = 40 k = 50 k = 60 k = 70 k = 80 BP 1 1 1 1 0.79640 0.54050 0.50729 0.50075 SL0 1 1 1 1 1 0.96700 0.62271 0.52200 NCCS 1 1 1 1 1 0.97750 0.77829 0.53650 INCS 1 1 1 1 1 1 0.87512 0.57163 表4. 各算法的恢复成功率随着稀疏度k变化的数值记录 综上所述，本文提出的INCS算法的综合重构性能优于实验中的对比算法，说明利用该算法能够更好的恢复稀疏信号。