[发明专利]一种基于压缩感知理论的联合稀疏信号降维梯度追踪重构算法有效
申请号: | 202110463103.1 | 申请日: | 2021-04-23 |
公开(公告)号: | CN113300714B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 刘素娟;江书阳 | 申请(专利权)人: | 北京工业大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 压缩 感知 理论 联合 稀疏 信号 梯度 追踪 算法 | ||
1.一种基于压缩感知理论的联合稀疏信号降维梯度追踪重构算法,其特征在于,降低原联合稀疏信号的宽度之后,再用梯度追踪算法恢复出原信号;在压缩感知理论的基础上,当感知矩阵A的最大线性无关列σ(A)、稀疏度K、观测矩阵的秩rank(Y)满足:σ(A)≥2K-(rank(Y)-1)时,那么就能够恢复出式(1)的唯一稀疏解,其中YM×L表示矩阵维度为M×L的观测矩阵,AM×N表示矩阵维度为M×N的感知矩阵,XN×L表示矩阵维度为N×L的被测信号;结合利用压缩感知理论时压缩比需要满足的要求,即式(2),推导出在联合稀疏信号的宽度L、稀疏度K和信号长度N满足:L≥(2K+1)-cKlog(N/K)时,信号能够被成功恢复出来,因此考虑将高维信号降维到临界情况,使宽度L满足L=L1=[((2K+1)-cKlog(N/K))]取整+1,其中c是一个常数,近似为1;利用降维后的信号进行重构时使用梯度追踪算法;
YM×L=AM×NXN×L (1)
M≥cKlog(N/K) (2)
L1=[((2K+1)-cKlog(N/K))]取整+1 (3);
具体步骤如下:
步骤一、输入输出数据
1.1输入:Y,A,L,ε,K,MaxIters,c;
1.2输出:Γn,flag;
输入数据中:Y是大小为M×L的观测矩阵;A是大小为M×N的感知矩阵;N是信号的长度,M为观测矩阵Y和感知矩阵A的行数,L为信号的宽度,K是联合稀疏信号的稀疏度;MaxIter用来控制算法主体的最大迭代次数;ε是残差指标,即残差值需小于等于ε,残差是实际值与估计值之间的差,当信号重构的残差满足小于e-15级数时视为成功重构,e是自然对数的底数,其值是2.71828...,c为1;
输出数据中:是重构出的联合稀疏信号;Γn是最终支撑集,所有被选择索引的集合;flag是重构是否成功的标志,flag值是false表示没有重构成功,flag值是true表示重构成功;
步骤二、数据初始化
2.1X0=0N×L,iter=1,flag=false;
稀疏解X0的初始值为N×L的零矩阵;索引集Γ0的初始状态为空集;降维迭代次数iter置为1;重构是否成功的标志flag初始状态为false;
2.2计算降维后的信号宽度L1,L1=[((2K+1)-cKlog(N/K))]取整+1;
将初始参数K、N的值带入式(3),式子(2K+1)-cKlog(N/K)的计算结果取整再加1,计算得出L1的值,作为降维维度;
步骤三、DRGP算法主体:While循环语句
DRGP算法主体是将稀疏度不同的信号降维到不同的维度,然后进行信号重构,若信号重构失败则重新进行降维再重构,直到信号重构成功或降维次数iter超过最大降维迭代次数MaxIter;DRGP算法主体运行结束有两种情况,一种情况是降维迭代次数iter不超过最大降维迭代次数MaxIter的情况下信号重构成功,另一种情况是,信号重构失败但降维迭代次数iter已经超过了最大降维迭代次数MaxIter;
3.1While语句执行的条件是:迭代次数iter不超过最大迭代次数MaxIters并且重构是否成功的标志flag的状态是flag=false即还没有重构成功,两者不满足其一即停止While循环;
While语句执行的内容是:
3.2随机生成一个大小为L×L1的矩阵B;
3.3观测矩阵Y与随机矩阵B相乘得到降维后的观测矩阵目的是将观测矩阵Y进行降维处理转化为宽度为L1的观测矩阵
3.4令残差初始值
步骤四、DRGP算法局部:梯度追踪算法,即For循环语句,在算法主体While循环之内;
4.1For语句控制梯度追踪迭代次数,n=1:K,循环执行K次;
For语句在While循环语句内,也就是While语句每循环一次,for语句被完整执行一次即循环K次,For语句执行过程中,带有n上标的符号都代表第n次迭代;
For语句执行的内容是:
4.2计算降维前的梯度矩阵,相当于正交匹配追踪OMP算法当中残差与感知矩阵的内积计算:gn=Y,A,gn是一个大小为N×L的矩阵,Y的每一列分别与感知矩阵A的每一列进行内积计算,得到L个观测列向量;
4.3计算降维后的梯度矩阵:是一个大小为N×L1的矩阵,的每一列分别与感知矩阵A的每一列进行内积计算,得到L1个观测列向量;
4.4对降维后的梯度矩阵每一行求二范数,行向量的二范数是每一行各个元素平方之和再开根号:得到一个N×1的列向量In,针对这N个数据进行索引;
4.5索引选择是列向量In的第i个元素,先对In所有元素取绝对值,然后取绝对值最大的元素所对应的位置索引记为in,i的大小范围是1-N;
4.6索引支撑集扩充:Γn=Γn-1∪in,Γn-1是上一次迭代即第n-1次迭代的支撑集,Γn是本次迭代即第n次迭代的新的支撑集,将上一步4.5所得的索引in添加到支撑集当中进行支撑集更新;
使用最速下降梯度追踪方法更新方向:
4.7dn初始状态为N×L的零矩阵,提取降维前的梯度矩阵gn中索引集Γn对应行的数据即作为矩阵dn对应行的新数据,dn中索引集之外其它行保持为零,得到本次迭代中即第n次迭代更新稀疏解所需的方向矩阵
4.8初始状态为N×L1的零矩阵,提取降维后的梯度矩阵中索引集Γn对应行的数据,即作为矩阵对应行的新数据,中索引集之外其它行保持为零,得到本次迭代中即第n次迭代更新残差所需的方向矩阵
使用最速下降梯度追踪方法更新步长:
4.9计算中间量其中为矩阵A保留索引集对应列的数据,其他列为零;
4.10计算步长向量其中为残差与中间量的内积计算,的列向量与的对应列向量进行内积计算,得到L1个内积值,组成一个1×L1的行向量an,其中为上一次迭代即第n-1次迭代的残差值;
4.11计算步长向量an的模an_=|an|=sqrt(sum(abs(an).^2)),作为新的步长,求向量的模即计算向量二范数,向量的二范数是向量各元素的平方之和再开根号;
更新残差:
4.12新的残差与上一次迭代的残差的差值为步长|an|与中间量的乘积;
更新稀疏解:
4.13每次更新稀疏解,就是在上一次迭代所得的稀疏解的基础上加上一项步长向量an的模an_与降维前的方向矩阵的乘积;
4.14结束For语句;
步骤五、重构是否成功的标志flag的状态更新:判断残差是否符合要求即是否在For语句之外,While语句之内;
残差小于等于残差指标代表信号重构成功,重构是否成功的标志flag=true;残差大于残差指标代表信号重构失败,重构是否成功的标志flag=false;因此残差是否符合要求决定了重构是否成功的标志flag的状态;
5.1如果残差不符合要求,即ε是残差指标,已知的一个常数;
5.2保留参数flag的状态,flag=false;
5.3降维重构迭代次数即While语句执行次数增1,iter=iter+1;
5.4如果残差符合要求,改变参数flag的状态,flag=true;
步骤六、结束While循环,输出结果
6.1end while;
6.2取最后一次迭代所求得的稀疏解作为最终重构出的稀疏信号
6.3输出结果索引集Γn以及重构是否成功的标志flag。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110463103.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于yolov5的皮肤科非处方药售药方法
- 下一篇:基站和清洁系统