本申請涉及信號處理領(lǐng)域,尤其涉及一種信號稀疏表示方法及裝置。
背景技術(shù):
信號的稀疏表示是信號處理領(lǐng)域的重要研究方向之一,在信號的稀疏表示過程中需要一種非正交過完備的表示矩陣對信號進行表示,使信號的表示方式更為簡潔,從而使研究人員更容易地獲取信號中所蘊含的信息,以便進一步對信號進行處理。這種非正交過完備的表示矩陣被人們稱為字典,為了使字典更為準確的表示信號,需要根據(jù)字典學(xué)習(xí)算法進行字典學(xué)習(xí),更新字典中的原子,使經(jīng)過字典學(xué)習(xí)后的字典中的原子與信號的結(jié)構(gòu)特征更為匹配,更加準確的表示信號。
目前常用的字典學(xué)習(xí)算法有MOD算法和K-SVD算法。MOD算法的運算速度較快但是字典學(xué)習(xí)的效果較差;K-SVD算法隨著信號維數(shù)的增大,計算量也會增大,從而導(dǎo)致運算速度緩慢。因此,利用現(xiàn)有的字典學(xué)習(xí)算法進行字典學(xué)習(xí)存在字典學(xué)習(xí)效果差或字典學(xué)習(xí)速度緩慢的問題,導(dǎo)致現(xiàn)有的信號稀疏表示效率較低。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N信號稀疏表示方法及裝置,以解決現(xiàn)有技術(shù)信號稀疏表示效率低的問題。技術(shù)方案如下:
一種信號稀疏表示方法,包括:
步驟S101:對預(yù)設(shè)字典進行初始化,獲得初始字典,并將待處理信號初始化為與所述初始字典相對應(yīng)的信號矩陣,所述信號矩陣中的每個元素為所述初始字典中多種原子的線性組合中的一種;
步驟S102:利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣;
步驟S103:統(tǒng)計當前執(zhí)行步驟S102的次數(shù);
步驟S104:對所述初始字典與所述稀疏系數(shù)矩陣執(zhí)行更新操作,并統(tǒng)計當前執(zhí)行所述更新操作的次數(shù);所述更新操作具體為:對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典;依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣;
步驟S105:判斷當前執(zhí)行所述更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),若是,將第二字典作為新的初始字典,將更新后的稀疏系數(shù)矩陣作為新的稀疏系數(shù)矩陣,并返回步驟S104;若否,利用所述第二字典與所述更新后的稀疏系數(shù)矩陣重構(gòu)出信號矩陣,并執(zhí)行步驟S106;
步驟S106:判斷當前執(zhí)行步驟S102的次數(shù)是否小于第二預(yù)設(shè)次數(shù);如果是,將所述第二字典作為新的初始字典,將所述重構(gòu)出的信號矩陣作為新的信號矩陣,并返回步驟S102;如果否,輸出所述重構(gòu)出的信號矩陣。
優(yōu)選的,所述對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典,包括:
獲取所述信號矩陣的重構(gòu)均方誤差其中,Y為所述信號矩陣,D為所述初始字典,Γ為所述稀疏系數(shù)矩陣;
對所述信號矩陣的重構(gòu)均方誤差進行關(guān)于所述初始字典的求導(dǎo),得到第一字典D=Y(jié)ΓT(ΓΓT)-1,減小所述信號矩陣的重構(gòu)均方誤差。
優(yōu)選的,所述依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,包括:
獲取所述信號矩陣的重構(gòu)均方誤差其中,Ek為誤差矩陣,dk為所述初始字典D中第k列原子,為所述稀疏系數(shù)矩陣Γ中與dk對應(yīng)的第k行稀疏系數(shù);
去掉中的所有零值,并定義中非零項索引
根據(jù)所述中非零項索引,將所述信號矩陣的重構(gòu)均方誤差轉(zhuǎn)換為
采用交替最小化算法更新dk與直到所述第一字典中的原子全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣的重構(gòu)均方誤差最小化。
優(yōu)選的,所述采用交替最小化算法更新dk與包括:
利用所述誤差矩陣Ek、以及中非零項索引ωk更新所述初始字典中第k列原子dk;
利用更新后的dk、所述誤差矩陣Ek,以及中非零項索引ωk更新稀疏系數(shù)矩陣中與dk對應(yīng)的第k行稀疏系數(shù)的非零項。
優(yōu)選的,所述第一預(yù)設(shè)次數(shù)為3,所述第二預(yù)設(shè)次數(shù)為80。
一種信號稀疏表示裝置,包括:
初始化模塊,用于對預(yù)設(shè)字典進行初始化,獲得初始字典,并將待處理信號初始化為與所述初始字典相對應(yīng)的信號矩陣,所述信號矩陣中的每個元素為所述初始字典中多種原子的線性組合中的一種;
獲取模塊,用于利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣;
統(tǒng)計模塊,用于統(tǒng)計當前所述獲取模塊的執(zhí)行次數(shù);
更新模塊,用于對所述初始字典與所述稀疏系數(shù)矩陣執(zhí)行更新操作,并統(tǒng)計當前執(zhí)行所述更新操作的次數(shù);所述更新操作具體為:對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典;依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣;
第一判斷模塊,用于判斷當前執(zhí)行所述更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),若是,將第二字典作為新的初始字典,將更新后的稀疏系數(shù)矩陣作為新的稀疏系數(shù)矩陣,并返回所述更新模塊的相關(guān)操作;若否,利用所述第二字典與所述更新后的稀疏系數(shù)矩陣重構(gòu)出信號矩陣,并觸發(fā)第二判斷模塊;
第二判斷模塊,用于判斷當前所述獲取模塊的執(zhí)行次數(shù)是否小于第二預(yù)設(shè)次數(shù);如果是,將所述第二字典作為新的初始字典,將所述重構(gòu)出的信號矩陣作為新的信號矩陣,并返回所述獲取模塊的相關(guān)操作;如果否,輸出所述重構(gòu)出的信號矩陣。
優(yōu)選的,所述更新模塊包括:
第一獲取子模塊,用于獲取所述信號矩陣的重構(gòu)均方誤差其中,Y為所述信號矩陣,D為所述初始字典,Γ為所述稀疏系數(shù)矩陣;
求導(dǎo)子模塊,用于對所述信號矩陣的重構(gòu)均方誤差進行關(guān)于所述初始字典的求導(dǎo)得到第一字典D=Y(jié)ΓT(ΓΓT)-1,減小所述信號矩陣的重構(gòu)均方誤差;
第二獲取子模塊,用于獲取所述信號矩陣的重構(gòu)均方誤差其中,Ek為誤差矩陣,dk為所述初始字典D中第k列原子,為所述稀疏系數(shù)矩陣Γ中與dk對應(yīng)的第k行稀疏系數(shù);
定義子模塊,用于去掉中的所有零值,并定義中非零項索引
轉(zhuǎn)換子模塊,用于根據(jù)所述中非零項索引,將所述信號矩陣的重構(gòu)均方誤差轉(zhuǎn)換為
更新子模塊,用于采用交替最小化算法更新dk與直到所述第一字典中的原子全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣的重構(gòu)均方誤差最小化。
優(yōu)選的,所述更新子模塊還包括:
第一更新子單元,用于利用所述誤差矩陣Ek、以及中非零項索引ωk更新所述初始字典中第k列原子dk;
第二更新子單元,用于利用更新后的dk、所述誤差矩陣Ek,以及中非零項索引ωk更新稀疏系數(shù)矩陣中與dk對應(yīng)的第k行稀疏系數(shù)的非零項。
優(yōu)選的,所述第一預(yù)設(shè)次數(shù)為3,所述第二預(yù)設(shè)次數(shù)為80。
本發(fā)明提供的信號稀疏表示方法,對預(yù)設(shè)字典與待處理信號進行初始化,獲得初始字典與信號矩陣,利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣,通過判斷獲取所述稀疏系數(shù)矩陣的次數(shù)是否小于第二預(yù)設(shè)次數(shù),構(gòu)成一個外部循環(huán)使初始字典原子與稀疏系數(shù)矩陣不斷進行更新,利用更新后的字典與更新后的稀疏系數(shù)矩陣重構(gòu)信號矩陣,不斷減小未經(jīng)處理的信號矩陣與重構(gòu)信號矩陣的誤差,降低數(shù)據(jù)處理的復(fù)雜度,并且在外部循環(huán)的基礎(chǔ)上通過判斷執(zhí)行更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),構(gòu)成一個內(nèi)部循環(huán),通過一次性更新初始字典中的原子得到第一字典,利用第一字典與稀疏系數(shù)矩陣進行相互更新,加快字典原子的更新速度和收斂速度。本發(fā)明提供的方法得到與待處理信號結(jié)構(gòu)信息最相匹配的字典原子,提高了信號的重構(gòu)精度和信號稀疏表示的效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明公開的一種信號稀疏表示方法流程圖;
圖2為本發(fā)明公開的一種信號稀疏表示方法又一方法流程圖;
圖3為本發(fā)明公開的一種信號稀疏表示方法又一方法流程圖;
圖4為本發(fā)明公開的一種信號稀疏表示方法又一方法流程圖;
圖5為本發(fā)明公開的一種信號稀疏表示裝置結(jié)構(gòu)示意圖;
圖6為本發(fā)明公開的另一種信號稀疏表示裝置結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1為本發(fā)明公開的一種信號稀疏表示方法流程圖,具體包括如下步驟:
步驟S101:對預(yù)設(shè)字典進行初始化,獲得初始字典,并將待處理信號初始化為與所述初始字典相對應(yīng)的信號矩陣,所述信號矩陣中的每個元素為所述初始字典中多種原子的線性組合中的一種;
具體的,所述預(yù)設(shè)字典為包括DCT過完備字典在內(nèi)的任意一種用于信號稀疏表示的字典,將待處理信號以列的形式初始化為一個能用所述初始字典表示的信號矩陣,以便后續(xù)對信號矩陣的處理;所述初始字典中的每一列為一個原子,在所述初始字典中存在多種原子的線性組合,所述信號矩陣中的每個元素都可以用所述初始字典中某一種原子的線性組合來表示。
優(yōu)選的,所述預(yù)設(shè)字典為DCT過完備字典,將DCT過完備字典初始化為一個大小為64x128的DCT過完備字典。
步驟S102:利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣;
優(yōu)選的,利用經(jīng)典的OMP算法獲取與所述信號矩陣Y相對應(yīng)的稀疏系數(shù)矩陣Γ;其中,Γ=OMP(Y,D,c*σ),σ為待處理信號的預(yù)估噪聲標準差,c為一個常數(shù)
步驟S103:統(tǒng)計當前執(zhí)行步驟S102的次數(shù);
步驟S104:對所述初始字典與所述稀疏系數(shù)矩陣執(zhí)行更新操作,并統(tǒng)計當前執(zhí)行所述更新操作的次數(shù);所述更新操作具體為:對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典;依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣;
優(yōu)選的,利用MOD算法執(zhí)行第一更新操作,MOD算法是由Engan等人提出來,采用矩陣求逆方式一次性更新字典中原子。相對K-SVD算法,MOD算法信號稀疏表示運算速度較快,但是得到的效果較差。
優(yōu)選的,利用AK-SVD算法執(zhí)行第二更新操作與第三更新操作,AK-SVD算法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項,直到所述第一字典中的原子全部被更新,利用AK-SVD算法更新后的字典原子能收斂到最優(yōu)值,重建信號也越逼近原信號,但是AK-SVD算法的信號稀疏表示速度較低。
步驟S105:判斷當前執(zhí)行所述更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),若是,將第二字典作為新的初始字典,將更新后的稀疏系數(shù)矩陣作為新的稀疏系數(shù)矩陣,并返回步驟S104;若否,利用所述第二字典與所述更新后的稀疏系數(shù)矩陣重構(gòu)出信號矩陣,并執(zhí)行步驟S106;
優(yōu)選的,第一預(yù)設(shè)次數(shù)為3次。
通過判斷當前執(zhí)行所述更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),構(gòu)建了一個信號稀疏表示的內(nèi)部循環(huán),結(jié)合MOD算法與AK-SVD算法對字典原子進行反復(fù)更新,提高了字典原子的更新速度與收斂度。
步驟S106:判斷當前執(zhí)行步驟S102的次數(shù)是否小于第二預(yù)設(shè)次數(shù);如果是,將所述第二字典作為新的初始字典,將所述重構(gòu)出的信號矩陣作為新的信號矩陣,并返回步驟S102;如果否,執(zhí)行步驟S107;
步驟S107:輸出所述重構(gòu)出的信號矩陣。
通過判斷當前執(zhí)行步驟S102的次數(shù)是否小于第二預(yù)設(shè)次數(shù),構(gòu)建了一個信號稀疏表示外部循環(huán),先利用MOD算法一次性更新初始字典中的原子,再利用AK-SVD算法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項,直到所述第一字典中的原子全部被更新,若當前執(zhí)行步驟S102的次數(shù)小于第二預(yù)設(shè)次數(shù),則通過將重構(gòu)信號作為待處理信號,將第二字典作為初始字典再次求解新的與新的信號矩陣相對應(yīng)的稀疏系數(shù)矩陣,如此進行反復(fù)進行信號稀疏表示,直到重構(gòu)出精度較高的信號。
優(yōu)選的,第二預(yù)設(shè)次數(shù)為80次。
本發(fā)明提供的信號稀疏表示方法,對預(yù)設(shè)字典與待處理信號進行初始化,獲得初始字典與信號矩陣,利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣,通過判斷獲取所述稀疏系數(shù)矩陣的次數(shù)是否小于第二預(yù)設(shè)次數(shù),構(gòu)成一個外部循環(huán)使初始字典原子與稀疏系數(shù)矩陣不斷進行更新,利用更新后的字典與更新后的稀疏系數(shù)矩陣重構(gòu)信號矩陣,不斷減小未經(jīng)處理的信號矩陣與重構(gòu)信號矩陣的誤差,降低數(shù)據(jù)處理的復(fù)雜度,并且在外部循環(huán)的基礎(chǔ)上通過判斷執(zhí)行更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),構(gòu)成一個內(nèi)部循環(huán),通過一次性更新初始字典中的原子得到第一字典,利用第一字典與稀疏系數(shù)矩陣進行相互更新,加快字典原子的更新速度和收斂速度。本發(fā)明提供的方法得到與待處理信號結(jié)構(gòu)信息最相匹配的字典原子,提高了信號的重構(gòu)精度和信號稀疏表示的效率。
請參與圖2,所述所述對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典,包括以下步驟:
步驟S201:獲取所述信號矩陣的重構(gòu)均方誤差其中,Y為所述信號矩陣,D為所述初始字典,Γ為所述稀疏系數(shù)矩陣;
步驟S202:對所述信號矩陣的重構(gòu)均方誤差進行關(guān)于所述初始字典的求導(dǎo)得到第一字典D=Y(jié)ΓT(ΓΓT)-1,減小所述信號矩陣的重構(gòu)均方誤差。
具體的,固定稀疏系數(shù)矩陣,采用MOD算法中的矩陣求逆方式來更新整個初始字典原子。將重構(gòu)信號列與待處理信號列之間誤差定義為ei,則信號矩陣的重構(gòu)均方誤差表示為:
本發(fā)明的目標就是對初始字典進行更新來最小化信號矩陣的重構(gòu)均方誤差。所以對重構(gòu)均方誤差進行關(guān)于初始字典D的求導(dǎo),可以獲得其封閉解,具體表示為:D=Y(jié)ΓT(ΓΓT)-1,并獲取了更新后的第一字典。
請參閱圖3,所述依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,包括以下步驟:
步驟S301:獲取所述信號矩陣的重構(gòu)均方誤差其中,Ek為誤差矩陣,dk為所述初始字典D中第k列原子,為所述稀疏系數(shù)矩陣Γ中與dk對應(yīng)的第k行稀疏系數(shù);
步驟S302:去掉中的所有零值,并定義中非零項索引
步驟S303:根據(jù)所述中非零項索引,將所述信號矩陣的重構(gòu)均方誤差轉(zhuǎn)換為
步驟S304:采用交替最小化算法更新dk與直到所述第一字典中的原子全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣的重構(gòu)均方誤差最小化。
具體的,本發(fā)明采用最小二乘法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項。
假定dk是所述第一字典中第k列原子,是dk對應(yīng)稀疏系數(shù)矩陣中的第k行,則所述待處理信號矩陣Y的重構(gòu)均方誤差可以寫成:
其中,Ek為誤差矩陣,如果直接利用Ek和dk更新則得到的更新向量中的非零項的位置和數(shù)量相對更新原中非零項的位置和數(shù)量不同,變成滿向量,出現(xiàn)“發(fā)散”。為了避免出現(xiàn)“發(fā)散”現(xiàn)象,去掉中的所有零值,僅保留非零項。定義集合表示中非零項的索引,表示中非零項。則重構(gòu)均方誤差變成
采用交替最小化算法來更新dk和直到所述第一字典中的原子全部被更新,并獲取更新后的第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣Y的重構(gòu)均方誤差最小化。
請參閱圖4,所述采用交替最小化算法更新dk與包括,具體包括以下步驟:
步驟S401:利用所述誤差矩陣Ek、以及中非零項索引ωk更新所述初始字典中第k列原子dk;
步驟S402:利用更新后的dk、所述誤差矩陣Ek,以及中非零項索引ωk更新稀疏系數(shù)矩陣中與dk對應(yīng)的第k行稀疏系數(shù)的非零項。
具體的,
如此反復(fù)交替更新,使第一字典中的原子全部被更新。
基于上述本發(fā)明公開的一種信號稀疏表示方法,本發(fā)明對應(yīng)公開了一種信號稀疏表示裝置,所述裝置的具體結(jié)構(gòu)請參閱圖5,所述裝置包括:
初始化模塊101,用于對預(yù)設(shè)字典進行初始化,獲得初始字典,并將待處理信號初始化為與所述初始字典相對應(yīng)的信號矩陣,所述信號矩陣中的每個元素為所述初始字典中多種原子的線性組合中的一種;
具體的,所述預(yù)設(shè)字典為包括DCT過完備字典在內(nèi)的任意一種用于信號稀疏表示的字典,將待處理信號以列的形式初始化為一個能用所述初始字典表示的信號矩陣,以便后續(xù)對信號矩陣的處理;所述初始字典中的每一列為一個原子,在所述初始字典中存在多種原子的線性組合,所述信號矩陣中的每個元素都可以用所述初始字典中某一種原子的線性組合來表示。
優(yōu)選的,所述預(yù)設(shè)字典為DCT過完備字典,將DCT過完備字典初始化為一個大小為64x128的DCT過完備字典。
獲取模塊102,用于利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣;
優(yōu)選的,利用經(jīng)典的OMP算法獲取與所述信號矩陣Y相對應(yīng)的稀疏系數(shù)矩陣Γ;其中,Γ=OMP(Y,D,c*σ),σ為待處理信號的預(yù)估噪聲標準差,c為一個常數(shù)
統(tǒng)計模塊103,用于統(tǒng)計當前所述獲取模塊102的執(zhí)行次數(shù);
更新模塊104,用于對所述初始字典與所述稀疏系數(shù)矩陣執(zhí)行更新操作,并統(tǒng)計當前執(zhí)行所述更新操作的次數(shù);所述更新操作具體為:對所述初始字典中的原子執(zhí)行第一更新操作,得到第一字典;依次對所述第一字典中的每列原子執(zhí)行第二更新操作,同時對在所述稀疏系數(shù)矩陣中,與執(zhí)行第二更新操作的列相對應(yīng)行的稀疏系數(shù)非零項執(zhí)行第三更新操作,直到所述第一字典中的列全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣;
優(yōu)選的,利用MOD算法執(zhí)行第一更新操作,MOD算法是由Engan等人提出來,采用矩陣求逆方式一次性更新字典中原子。相對K-SVD算法,MOD算法信號稀疏表示運算速度較快,但是得到的效果較差。
優(yōu)選的,利用AK-SVD算法執(zhí)行第二更新操作與第三更新操作,AK-SVD算法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項,直到所述第一字典中的原子全部被更新,利用AK-SVD算法更新后的字典原子能收斂到最優(yōu)值,重建信號也越逼近原信號,但是AK-SVD算法的信號稀疏表示速度較低。
第一判斷模塊105,用于判斷當前執(zhí)行所述更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),若是,將第二字典作為新的初始字典,將更新后的稀疏系數(shù)矩陣作為新的稀疏系數(shù)矩陣,并返回所述更新模塊104的相關(guān)操作;若否,利用所述第二字典與所述更新后的稀疏系數(shù)矩陣重構(gòu)出信號矩陣,并觸發(fā)第二判斷模塊106;
優(yōu)選的,第一預(yù)設(shè)次數(shù)為3次。
所述更新模塊104與第一判斷模塊105構(gòu)成了一個信號稀疏表示的內(nèi)部循環(huán),結(jié)合MOD算法與AK-SVD算法對字典原子進行反復(fù)更新,提高了字典原子的更新速度與收斂度。
第二判斷模塊106,用于判斷當前所述獲取模塊102的執(zhí)行次數(shù)是否小于第二預(yù)設(shè)次數(shù);如果是,將所述第二字典作為新的初始字典,將所述重構(gòu)出的信號矩陣作為新的信號矩陣,并返回所述獲取模塊102的相關(guān)操作;如果否,輸出所述重構(gòu)出的信號矩陣。
所述獲取模塊102、所述統(tǒng)計模塊103、所述更新模塊104、所述第一判斷模塊105以及所述第二判斷模塊106構(gòu)成了一個信號稀疏表示的外部循環(huán),先利用MOD算法一次性更新初始字典中的原子,再利用AK-SVD算法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項,直到所述第一字典中的原子全部被更新,若當前所述獲取模塊102的執(zhí)行次數(shù)小于第二預(yù)設(shè)次數(shù),則通過將重構(gòu)信號作為待處理信號,將第二字典作為初始字典再次求解新的與新的信號矩陣相對應(yīng)的稀疏系數(shù)矩陣,如此進行反復(fù)進行信號稀疏表示,直到重構(gòu)出精度較高的信號。
優(yōu)選的,第二預(yù)設(shè)次數(shù)為80次。
本發(fā)明提供的信號稀疏表示裝置,對預(yù)設(shè)字典與待處理信號進行初始化,獲得初始字典與信號矩陣,利用稀疏分解算法獲取與所述信號矩陣相對應(yīng)的稀疏系數(shù)矩陣,通過判斷獲取所述稀疏系數(shù)矩陣的次數(shù)是否小于第二預(yù)設(shè)次數(shù),構(gòu)成一個外部循環(huán)使初始字典原子與稀疏系數(shù)矩陣不斷進行更新,利用更新后的字典與更新后的稀疏系數(shù)矩陣重構(gòu)信號矩陣,不斷減小未經(jīng)處理的信號矩陣與重構(gòu)信號矩陣的誤差,降低數(shù)據(jù)處理的復(fù)雜度,并且在外部循環(huán)的基礎(chǔ)上通過判斷執(zhí)行更新操作的次數(shù)是否小于第一預(yù)設(shè)次數(shù),構(gòu)成一個內(nèi)部循環(huán),通過一次性更新初始字典中的原子得到第一字典,利用第一字典與稀疏系數(shù)矩陣進行相互更新,加快字典原子的更新速度和收斂速度。本發(fā)明提供的裝置得到與待處理信號結(jié)構(gòu)信息最相匹配的字典原子,提高了信號的重構(gòu)精度和信號稀疏表示的效率。
請參閱圖6,所述第一更新模塊103包括:
第一獲取子模塊107,用于獲取所述信號矩陣的重構(gòu)均方誤差其中,Y為所述信號矩陣,D為所述初始字典,Γ為所述稀疏系數(shù)矩陣;
求導(dǎo)子模塊108,用于對所述信號矩陣的重構(gòu)均方誤差進行關(guān)于所述初始字典的求導(dǎo)得到第一字典D=Y(jié)ΓT(ΓΓT)-1,減小所述信號矩陣的重構(gòu)均方誤差。
具體的,所述第一獲取子模塊107與所述求導(dǎo)子模塊108用于執(zhí)行第一更新操作。
固定稀疏系數(shù)矩陣,采用MOD算法中的矩陣求逆方式來更新整個初始字典原子。將重構(gòu)信號列與待處理信號列之間誤差定義為ei,則信號矩陣的重構(gòu)均方誤差表示為:
本發(fā)明的目標就是對初始字典進行更新來最小化信號矩陣的重構(gòu)均方誤差。所以對重構(gòu)均方誤差進行關(guān)于初始字典D的求導(dǎo),可以獲得其封閉解,具體表示為:D=Y(jié)ΓT(ΓΓT)-1,并獲取了更新后的第一字典。
第二獲取子模塊109,用于獲取所述信號矩陣的重構(gòu)均方誤差其中,Ek為誤差矩陣,dk為所述初始字典D中第k列原子,為所述稀疏系數(shù)矩陣Γ中與dk對應(yīng)的第k行稀疏系數(shù);
定義子模塊110,用于去掉中的所有零值,并定義中非零項索引
轉(zhuǎn)換子模塊111,用于根據(jù)所述中非零項索引,將所述信號矩陣的重構(gòu)均方誤差轉(zhuǎn)換為
更新子模塊112,用于采用交替最小化算法更新dk與直到所述第一字典中的原子全部被更新,得到第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣的重構(gòu)均方誤差最小化。
具體的,所述第二獲取子模塊109、所述定義子模塊111以及更新子模塊112用于執(zhí)行第二更新操作與第三更新操作。
具體的,本發(fā)明采用最小二乘法依次更新所述第一字典中每列原子與所述稀疏系數(shù)矩陣Γ中與該列原子對應(yīng)行的稀疏系數(shù)非零項。
假定dk是所述第一字典中第k列原子,是dk對應(yīng)稀疏系數(shù)矩陣中的第k行,則所述待處理信號矩陣Y的重構(gòu)均方誤差可以寫成:
其中,Ek為誤差矩陣,如果直接利用Ek和dk更新則得到的更新向量中的非零項的位置和數(shù)量相對更新原中非零項的位置和數(shù)量不同,變成滿向量,出現(xiàn)“發(fā)散”。為了避免出現(xiàn)“發(fā)散”現(xiàn)象,去掉中的所有零值,僅保留非零項。定義集合表示中非零項的索引,表示中非零項。則重構(gòu)均方誤差變成
采用交替最小化算法來更新dk和直到所述第一字典中的原子全部被更新,并獲取更新后的第二字典與更新后的稀疏系數(shù)矩陣,使所述信號矩陣Y的重構(gòu)均方誤差最小化。
所述更新子模塊112包括:
第一更新子單元113,用于利用所述誤差矩陣Ek、以及中非零項索引ωk更新所述初始字典中第k列原子dk;
第二更新子單元114,用于利用更新后的dk、所述誤差矩陣Ek,以及中非零項索引ωk更新稀疏系數(shù)矩陣中與dk對應(yīng)的第k行稀疏系數(shù)的非零項。
具體的,
如此反復(fù)交替更新,使第一字典中的原子全部被更新。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。