一种信号稀疏表示方法及装置与流程

文档序号:12365712阅读:273来源:国知局
一种信号稀疏表示方法及装置与流程

本申请涉及信号处理领域,尤其涉及一种信号稀疏表示方法及装置。



背景技术:

信号的稀疏表示是信号处理领域的重要研究方向之一,在信号的稀疏表示过程中需要一种非正交过完备的表示矩阵对信号进行表示,使信号的表示方式更为简洁,从而使研究人员更容易地获取信号中所蕴含的信息,以便进一步对信号进行处理。这种非正交过完备的表示矩阵被人们称为字典,为了使字典更为准确的表示信号,需要根据字典学习算法进行字典学习,更新字典中的原子,使经过字典学习后的字典中的原子与信号的结构特征更为匹配,更加准确的表示信号。

目前常用的字典学习算法有MOD算法和K-SVD算法。MOD算法的运算速度较快但是字典学习的效果较差;K-SVD算法随着信号维数的增大,计算量也会增大,从而导致运算速度缓慢。因此,利用现有的字典学习算法进行字典学习存在字典学习效果差或字典学习速度缓慢的问题,导致现有的信号稀疏表示效率较低。



技术实现要素:

有鉴于此,本申请提供一种信号稀疏表示方法及装置,以解决现有技术信号稀疏表示效率低的问题。技术方案如下:

一种信号稀疏表示方法,包括:

步骤S101:对预设字典进行初始化,获得初始字典,并将待处理信号初始化为与所述初始字典相对应的信号矩阵,所述信号矩阵中的每个元素为所述初始字典中多种原子的线性组合中的一种;

步骤S102:利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵;

步骤S103:统计当前执行步骤S102的次数;

步骤S104:对所述初始字典与所述稀疏系数矩阵执行更新操作,并统计当前执行所述更新操作的次数;所述更新操作具体为:对所述初始字典中的原子执行第一更新操作,得到第一字典;依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵;

步骤S105:判断当前执行所述更新操作的次数是否小于第一预设次数,若是,将第二字典作为新的初始字典,将更新后的稀疏系数矩阵作为新的稀疏系数矩阵,并返回步骤S104;若否,利用所述第二字典与所述更新后的稀疏系数矩阵重构出信号矩阵,并执行步骤S106;

步骤S106:判断当前执行步骤S102的次数是否小于第二预设次数;如果是,将所述第二字典作为新的初始字典,将所述重构出的信号矩阵作为新的信号矩阵,并返回步骤S102;如果否,输出所述重构出的信号矩阵。

优选的,所述对所述初始字典中的原子执行第一更新操作,得到第一字典,包括:

获取所述信号矩阵的重构均方误差其中,Y为所述信号矩阵,D为所述初始字典,Γ为所述稀疏系数矩阵;

对所述信号矩阵的重构均方误差进行关于所述初始字典的求导,得到第一字典D=YΓT(ΓΓT)-1,减小所述信号矩阵的重构均方误差。

优选的,所述依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵,包括:

获取所述信号矩阵的重构均方误差其中,Ek为误差矩阵,dk为所述初始字典D中第k列原子,为所述稀疏系数矩阵Γ中与dk对应的第k行稀疏系数;

去掉中的所有零值,并定义中非零项索引

根据所述中非零项索引,将所述信号矩阵的重构均方误差转换为

采用交替最小化算法更新dk与直到所述第一字典中的原子全部被更新,得到第二字典与更新后的稀疏系数矩阵,使所述信号矩阵的重构均方误差最小化。

优选的,所述采用交替最小化算法更新dk与包括:

利用所述误差矩阵Ek、以及中非零项索引ωk更新所述初始字典中第k列原子dk

利用更新后的dk、所述误差矩阵Ek,以及中非零项索引ωk更新稀疏系数矩阵中与dk对应的第k行稀疏系数的非零项。

优选的,所述第一预设次数为3,所述第二预设次数为80。

一种信号稀疏表示装置,包括:

初始化模块,用于对预设字典进行初始化,获得初始字典,并将待处理信号初始化为与所述初始字典相对应的信号矩阵,所述信号矩阵中的每个元素为所述初始字典中多种原子的线性组合中的一种;

获取模块,用于利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵;

统计模块,用于统计当前所述获取模块的执行次数;

更新模块,用于对所述初始字典与所述稀疏系数矩阵执行更新操作,并统计当前执行所述更新操作的次数;所述更新操作具体为:对所述初始字典中的原子执行第一更新操作,得到第一字典;依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵;

第一判断模块,用于判断当前执行所述更新操作的次数是否小于第一预设次数,若是,将第二字典作为新的初始字典,将更新后的稀疏系数矩阵作为新的稀疏系数矩阵,并返回所述更新模块的相关操作;若否,利用所述第二字典与所述更新后的稀疏系数矩阵重构出信号矩阵,并触发第二判断模块;

第二判断模块,用于判断当前所述获取模块的执行次数是否小于第二预设次数;如果是,将所述第二字典作为新的初始字典,将所述重构出的信号矩阵作为新的信号矩阵,并返回所述获取模块的相关操作;如果否,输出所述重构出的信号矩阵。

优选的,所述更新模块包括:

第一获取子模块,用于获取所述信号矩阵的重构均方误差其中,Y为所述信号矩阵,D为所述初始字典,Γ为所述稀疏系数矩阵;

求导子模块,用于对所述信号矩阵的重构均方误差进行关于所述初始字典的求导得到第一字典D=YΓT(ΓΓT)-1,减小所述信号矩阵的重构均方误差;

第二获取子模块,用于获取所述信号矩阵的重构均方误差其中,Ek为误差矩阵,dk为所述初始字典D中第k列原子,为所述稀疏系数矩阵Γ中与dk对应的第k行稀疏系数;

定义子模块,用于去掉中的所有零值,并定义中非零项索引

转换子模块,用于根据所述中非零项索引,将所述信号矩阵的重构均方误差转换为

更新子模块,用于采用交替最小化算法更新dk与直到所述第一字典中的原子全部被更新,得到第二字典与更新后的稀疏系数矩阵,使所述信号矩阵的重构均方误差最小化。

优选的,所述更新子模块还包括:

第一更新子单元,用于利用所述误差矩阵Ek、以及中非零项索引ωk更新所述初始字典中第k列原子dk

第二更新子单元,用于利用更新后的dk、所述误差矩阵Ek,以及中非零项索引ωk更新稀疏系数矩阵中与dk对应的第k行稀疏系数的非零项。

优选的,所述第一预设次数为3,所述第二预设次数为80。

本发明提供的信号稀疏表示方法,对预设字典与待处理信号进行初始化,获得初始字典与信号矩阵,利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵,通过判断获取所述稀疏系数矩阵的次数是否小于第二预设次数,构成一个外部循环使初始字典原子与稀疏系数矩阵不断进行更新,利用更新后的字典与更新后的稀疏系数矩阵重构信号矩阵,不断减小未经处理的信号矩阵与重构信号矩阵的误差,降低数据处理的复杂度,并且在外部循环的基础上通过判断执行更新操作的次数是否小于第一预设次数,构成一个内部循环,通过一次性更新初始字典中的原子得到第一字典,利用第一字典与稀疏系数矩阵进行相互更新,加快字典原子的更新速度和收敛速度。本发明提供的方法得到与待处理信号结构信息最相匹配的字典原子,提高了信号的重构精度和信号稀疏表示的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明公开的一种信号稀疏表示方法流程图;

图2为本发明公开的一种信号稀疏表示方法又一方法流程图;

图3为本发明公开的一种信号稀疏表示方法又一方法流程图;

图4为本发明公开的一种信号稀疏表示方法又一方法流程图;

图5为本发明公开的一种信号稀疏表示装置结构示意图;

图6为本发明公开的另一种信号稀疏表示装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明公开的一种信号稀疏表示方法流程图,具体包括如下步骤:

步骤S101:对预设字典进行初始化,获得初始字典,并将待处理信号初始化为与所述初始字典相对应的信号矩阵,所述信号矩阵中的每个元素为所述初始字典中多种原子的线性组合中的一种;

具体的,所述预设字典为包括DCT过完备字典在内的任意一种用于信号稀疏表示的字典,将待处理信号以列的形式初始化为一个能用所述初始字典表示的信号矩阵,以便后续对信号矩阵的处理;所述初始字典中的每一列为一个原子,在所述初始字典中存在多种原子的线性组合,所述信号矩阵中的每个元素都可以用所述初始字典中某一种原子的线性组合来表示。

优选的,所述预设字典为DCT过完备字典,将DCT过完备字典初始化为一个大小为64x128的DCT过完备字典。

步骤S102:利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵;

优选的,利用经典的OMP算法获取与所述信号矩阵Y相对应的稀疏系数矩阵Γ;其中,Γ=OMP(Y,D,c*σ),σ为待处理信号的预估噪声标准差,c为一个常数

步骤S103:统计当前执行步骤S102的次数;

步骤S104:对所述初始字典与所述稀疏系数矩阵执行更新操作,并统计当前执行所述更新操作的次数;所述更新操作具体为:对所述初始字典中的原子执行第一更新操作,得到第一字典;依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵;

优选的,利用MOD算法执行第一更新操作,MOD算法是由Engan等人提出来,采用矩阵求逆方式一次性更新字典中原子。相对K-SVD算法,MOD算法信号稀疏表示运算速度较快,但是得到的效果较差。

优选的,利用AK-SVD算法执行第二更新操作与第三更新操作,AK-SVD算法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项,直到所述第一字典中的原子全部被更新,利用AK-SVD算法更新后的字典原子能收敛到最优值,重建信号也越逼近原信号,但是AK-SVD算法的信号稀疏表示速度较低。

步骤S105:判断当前执行所述更新操作的次数是否小于第一预设次数,若是,将第二字典作为新的初始字典,将更新后的稀疏系数矩阵作为新的稀疏系数矩阵,并返回步骤S104;若否,利用所述第二字典与所述更新后的稀疏系数矩阵重构出信号矩阵,并执行步骤S106;

优选的,第一预设次数为3次。

通过判断当前执行所述更新操作的次数是否小于第一预设次数,构建了一个信号稀疏表示的内部循环,结合MOD算法与AK-SVD算法对字典原子进行反复更新,提高了字典原子的更新速度与收敛度。

步骤S106:判断当前执行步骤S102的次数是否小于第二预设次数;如果是,将所述第二字典作为新的初始字典,将所述重构出的信号矩阵作为新的信号矩阵,并返回步骤S102;如果否,执行步骤S107;

步骤S107:输出所述重构出的信号矩阵。

通过判断当前执行步骤S102的次数是否小于第二预设次数,构建了一个信号稀疏表示外部循环,先利用MOD算法一次性更新初始字典中的原子,再利用AK-SVD算法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项,直到所述第一字典中的原子全部被更新,若当前执行步骤S102的次数小于第二预设次数,则通过将重构信号作为待处理信号,将第二字典作为初始字典再次求解新的与新的信号矩阵相对应的稀疏系数矩阵,如此进行反复进行信号稀疏表示,直到重构出精度较高的信号。

优选的,第二预设次数为80次。

本发明提供的信号稀疏表示方法,对预设字典与待处理信号进行初始化,获得初始字典与信号矩阵,利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵,通过判断获取所述稀疏系数矩阵的次数是否小于第二预设次数,构成一个外部循环使初始字典原子与稀疏系数矩阵不断进行更新,利用更新后的字典与更新后的稀疏系数矩阵重构信号矩阵,不断减小未经处理的信号矩阵与重构信号矩阵的误差,降低数据处理的复杂度,并且在外部循环的基础上通过判断执行更新操作的次数是否小于第一预设次数,构成一个内部循环,通过一次性更新初始字典中的原子得到第一字典,利用第一字典与稀疏系数矩阵进行相互更新,加快字典原子的更新速度和收敛速度。本发明提供的方法得到与待处理信号结构信息最相匹配的字典原子,提高了信号的重构精度和信号稀疏表示的效率。

请参与图2,所述所述对所述初始字典中的原子执行第一更新操作,得到第一字典,包括以下步骤:

步骤S201:获取所述信号矩阵的重构均方误差其中,Y为所述信号矩阵,D为所述初始字典,Γ为所述稀疏系数矩阵;

步骤S202:对所述信号矩阵的重构均方误差进行关于所述初始字典的求导得到第一字典D=YΓT(ΓΓT)-1,减小所述信号矩阵的重构均方误差。

具体的,固定稀疏系数矩阵,采用MOD算法中的矩阵求逆方式来更新整个初始字典原子。将重构信号列与待处理信号列之间误差定义为ei,则信号矩阵的重构均方误差表示为:

<mrow> <mo>|</mo> <mo>|</mo> <mi>E</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mo>&lsqb;</mo> <msub> <mi>e</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>e</mi> <mn>2</mn> </msub> <mo>,</mo> <mn>...</mn> <msub> <mi>e</mi> <mi>N</mi> </msub> <mo>&rsqb;</mo> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <mi>D</mi> <mi>&Gamma;</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> </mrow>

本发明的目标就是对初始字典进行更新来最小化信号矩阵的重构均方误差。所以对重构均方误差进行关于初始字典D的求导,可以获得其封闭解,具体表示为:D=YΓT(ΓΓT)-1,并获取了更新后的第一字典。

请参阅图3,所述依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵,包括以下步骤:

步骤S301:获取所述信号矩阵的重构均方误差其中,Ek为误差矩阵,dk为所述初始字典D中第k列原子,为所述稀疏系数矩阵Γ中与dk对应的第k行稀疏系数;

步骤S302:去掉中的所有零值,并定义中非零项索引

步骤S303:根据所述中非零项索引,将所述信号矩阵的重构均方误差转换为

步骤S304:采用交替最小化算法更新dk与直到所述第一字典中的原子全部被更新,得到第二字典与更新后的稀疏系数矩阵,使所述信号矩阵的重构均方误差最小化。

具体的,本发明采用最小二乘法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项。

假定dk是所述第一字典中第k列原子,是dk对应稀疏系数矩阵中的第k行,则所述待处理信号矩阵Y的重构均方误差可以写成:

<mrow> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <mi>D</mi> <mi>&Gamma;</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <msub> <mi>d</mi> <mi>j</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>j</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mrow> <mo>(</mo> <mi>Y</mi> <mo>-</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&NotEqual;</mo> <mi>k</mi> </mrow> </munder> <msub> <mi>d</mi> <mi>j</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>d</mi> <mi>k</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>E</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>d</mi> <mi>k</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> </mrow>

其中,Ek为误差矩阵,如果直接利用Ek和dk更新则得到的更新向量中的非零项的位置和数量相对更新原中非零项的位置和数量不同,变成满向量,出现“发散”。为了避免出现“发散”现象,去掉中的所有零值,仅保留非零项。定义集合表示中非零项的索引,表示中非零项。则重构均方误差变成

采用交替最小化算法来更新dk和直到所述第一字典中的原子全部被更新,并获取更新后的第二字典与更新后的稀疏系数矩阵,使所述信号矩阵Y的重构均方误差最小化。

请参阅图4,所述采用交替最小化算法更新dk与包括,具体包括以下步骤:

步骤S401:利用所述误差矩阵Ek、以及中非零项索引ωk更新所述初始字典中第k列原子dk

步骤S402:利用更新后的dk、所述误差矩阵Ek,以及中非零项索引ωk更新稀疏系数矩阵中与dk对应的第k行稀疏系数的非零项。

具体的,

<mrow> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>d</mi> <mi>k</mi> <mi>T</mi> </msubsup> <msub> <mi>E</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mo>:</mo> <mo>,</mo> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow>

如此反复交替更新,使第一字典中的原子全部被更新。

基于上述本发明公开的一种信号稀疏表示方法,本发明对应公开了一种信号稀疏表示装置,所述装置的具体结构请参阅图5,所述装置包括:

初始化模块101,用于对预设字典进行初始化,获得初始字典,并将待处理信号初始化为与所述初始字典相对应的信号矩阵,所述信号矩阵中的每个元素为所述初始字典中多种原子的线性组合中的一种;

具体的,所述预设字典为包括DCT过完备字典在内的任意一种用于信号稀疏表示的字典,将待处理信号以列的形式初始化为一个能用所述初始字典表示的信号矩阵,以便后续对信号矩阵的处理;所述初始字典中的每一列为一个原子,在所述初始字典中存在多种原子的线性组合,所述信号矩阵中的每个元素都可以用所述初始字典中某一种原子的线性组合来表示。

优选的,所述预设字典为DCT过完备字典,将DCT过完备字典初始化为一个大小为64x128的DCT过完备字典。

获取模块102,用于利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵;

优选的,利用经典的OMP算法获取与所述信号矩阵Y相对应的稀疏系数矩阵Γ;其中,Γ=OMP(Y,D,c*σ),σ为待处理信号的预估噪声标准差,c为一个常数

统计模块103,用于统计当前所述获取模块102的执行次数;

更新模块104,用于对所述初始字典与所述稀疏系数矩阵执行更新操作,并统计当前执行所述更新操作的次数;所述更新操作具体为:对所述初始字典中的原子执行第一更新操作,得到第一字典;依次对所述第一字典中的每列原子执行第二更新操作,同时对在所述稀疏系数矩阵中,与执行第二更新操作的列相对应行的稀疏系数非零项执行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典与更新后的稀疏系数矩阵;

优选的,利用MOD算法执行第一更新操作,MOD算法是由Engan等人提出来,采用矩阵求逆方式一次性更新字典中原子。相对K-SVD算法,MOD算法信号稀疏表示运算速度较快,但是得到的效果较差。

优选的,利用AK-SVD算法执行第二更新操作与第三更新操作,AK-SVD算法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项,直到所述第一字典中的原子全部被更新,利用AK-SVD算法更新后的字典原子能收敛到最优值,重建信号也越逼近原信号,但是AK-SVD算法的信号稀疏表示速度较低。

第一判断模块105,用于判断当前执行所述更新操作的次数是否小于第一预设次数,若是,将第二字典作为新的初始字典,将更新后的稀疏系数矩阵作为新的稀疏系数矩阵,并返回所述更新模块104的相关操作;若否,利用所述第二字典与所述更新后的稀疏系数矩阵重构出信号矩阵,并触发第二判断模块106;

优选的,第一预设次数为3次。

所述更新模块104与第一判断模块105构成了一个信号稀疏表示的内部循环,结合MOD算法与AK-SVD算法对字典原子进行反复更新,提高了字典原子的更新速度与收敛度。

第二判断模块106,用于判断当前所述获取模块102的执行次数是否小于第二预设次数;如果是,将所述第二字典作为新的初始字典,将所述重构出的信号矩阵作为新的信号矩阵,并返回所述获取模块102的相关操作;如果否,输出所述重构出的信号矩阵。

所述获取模块102、所述统计模块103、所述更新模块104、所述第一判断模块105以及所述第二判断模块106构成了一个信号稀疏表示的外部循环,先利用MOD算法一次性更新初始字典中的原子,再利用AK-SVD算法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项,直到所述第一字典中的原子全部被更新,若当前所述获取模块102的执行次数小于第二预设次数,则通过将重构信号作为待处理信号,将第二字典作为初始字典再次求解新的与新的信号矩阵相对应的稀疏系数矩阵,如此进行反复进行信号稀疏表示,直到重构出精度较高的信号。

优选的,第二预设次数为80次。

本发明提供的信号稀疏表示装置,对预设字典与待处理信号进行初始化,获得初始字典与信号矩阵,利用稀疏分解算法获取与所述信号矩阵相对应的稀疏系数矩阵,通过判断获取所述稀疏系数矩阵的次数是否小于第二预设次数,构成一个外部循环使初始字典原子与稀疏系数矩阵不断进行更新,利用更新后的字典与更新后的稀疏系数矩阵重构信号矩阵,不断减小未经处理的信号矩阵与重构信号矩阵的误差,降低数据处理的复杂度,并且在外部循环的基础上通过判断执行更新操作的次数是否小于第一预设次数,构成一个内部循环,通过一次性更新初始字典中的原子得到第一字典,利用第一字典与稀疏系数矩阵进行相互更新,加快字典原子的更新速度和收敛速度。本发明提供的装置得到与待处理信号结构信息最相匹配的字典原子,提高了信号的重构精度和信号稀疏表示的效率。

请参阅图6,所述第一更新模块103包括:

第一获取子模块107,用于获取所述信号矩阵的重构均方误差其中,Y为所述信号矩阵,D为所述初始字典,Γ为所述稀疏系数矩阵;

求导子模块108,用于对所述信号矩阵的重构均方误差进行关于所述初始字典的求导得到第一字典D=YΓT(ΓΓT)-1,减小所述信号矩阵的重构均方误差。

具体的,所述第一获取子模块107与所述求导子模块108用于执行第一更新操作。

固定稀疏系数矩阵,采用MOD算法中的矩阵求逆方式来更新整个初始字典原子。将重构信号列与待处理信号列之间误差定义为ei,则信号矩阵的重构均方误差表示为:

<mrow> <mo>|</mo> <mo>|</mo> <mi>E</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mo>&lsqb;</mo> <msub> <mi>e</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>e</mi> <mn>2</mn> </msub> <mo>,</mo> <mn>...</mn> <msub> <mi>e</mi> <mi>N</mi> </msub> <mo>&rsqb;</mo> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <mi>D</mi> <mi>&Gamma;</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> </mrow>

本发明的目标就是对初始字典进行更新来最小化信号矩阵的重构均方误差。所以对重构均方误差进行关于初始字典D的求导,可以获得其封闭解,具体表示为:D=YΓT(ΓΓT)-1,并获取了更新后的第一字典。

第二获取子模块109,用于获取所述信号矩阵的重构均方误差其中,Ek为误差矩阵,dk为所述初始字典D中第k列原子,为所述稀疏系数矩阵Γ中与dk对应的第k行稀疏系数;

定义子模块110,用于去掉中的所有零值,并定义中非零项索引

转换子模块111,用于根据所述中非零项索引,将所述信号矩阵的重构均方误差转换为

更新子模块112,用于采用交替最小化算法更新dk与直到所述第一字典中的原子全部被更新,得到第二字典与更新后的稀疏系数矩阵,使所述信号矩阵的重构均方误差最小化。

具体的,所述第二获取子模块109、所述定义子模块111以及更新子模块112用于执行第二更新操作与第三更新操作。

具体的,本发明采用最小二乘法依次更新所述第一字典中每列原子与所述稀疏系数矩阵Γ中与该列原子对应行的稀疏系数非零项。

假定dk是所述第一字典中第k列原子,是dk对应稀疏系数矩阵中的第k行,则所述待处理信号矩阵Y的重构均方误差可以写成:

<mrow> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <mi>D</mi> <mi>&Gamma;</mi> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>Y</mi> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <msub> <mi>d</mi> <mi>j</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>j</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mrow> <mo>(</mo> <mi>Y</mi> <mo>-</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&NotEqual;</mo> <mi>k</mi> </mrow> </munder> <msub> <mi>d</mi> <mi>j</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>d</mi> <mi>k</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>=</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>E</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>d</mi> <mi>k</mi> </msub> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> </mrow>

其中,Ek为误差矩阵,如果直接利用Ek和dk更新则得到的更新向量中的非零项的位置和数量相对更新原中非零项的位置和数量不同,变成满向量,出现“发散”。为了避免出现“发散”现象,去掉中的所有零值,仅保留非零项。定义集合表示中非零项的索引,表示中非零项。则重构均方误差变成

采用交替最小化算法来更新dk和直到所述第一字典中的原子全部被更新,并获取更新后的第二字典与更新后的稀疏系数矩阵,使所述信号矩阵Y的重构均方误差最小化。

所述更新子模块112包括:

第一更新子单元113,用于利用所述误差矩阵Ek、以及中非零项索引ωk更新所述初始字典中第k列原子dk

第二更新子单元114,用于利用更新后的dk、所述误差矩阵Ek,以及中非零项索引ωk更新稀疏系数矩阵中与dk对应的第k行稀疏系数的非零项。

具体的,

<mrow> <msubsup> <mi>&alpha;</mi> <mi>T</mi> <mi>k</mi> </msubsup> <mrow> <mo>(</mo> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>d</mi> <mi>k</mi> <mi>T</mi> </msubsup> <msub> <mi>E</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mo>:</mo> <mo>,</mo> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> </mrow>

如此反复交替更新,使第一字典中的原子全部被更新。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1