馬 春,汪 慶,李 亞,李芳芳
(安徽中醫(yī)藥大學(xué)醫(yī)藥信息工程學(xué)院,安徽 合肥 230012)
現(xiàn)實(shí)中經(jīng)常需要從噪聲和抽樣不足的數(shù)據(jù)中重建高維離散信號(hào),從而求解欠定噪聲方程組。為了實(shí)現(xiàn)精確重構(gòu),信號(hào)必須是稀疏的或高度可壓縮的。在離散情況下,稀疏信號(hào)可能比環(huán)境維度還要少[1,2]。稀疏信號(hào)重構(gòu)的優(yōu)化方法主要有l(wèi)1最小化[3?7]、基追蹤[8](BP)、匹配追蹤算法[9]以及貝葉斯算法[10]等。壓縮感知(compressed sensing,CS)是一種計(jì)算信號(hào)處理方式[11?13],可以從很少的樣本中準(zhǔn)確地重構(gòu)稀疏信號(hào)。CS 通過線性規(guī)劃求解l1最小化問題來(lái)實(shí)現(xiàn)重構(gòu)欠定方程組的稀疏向量。CS 已成功地集成到光學(xué)成像(如單像素相機(jī))、磁共振成像(MRI)、計(jì)算機(jī)斷層掃描(CT)和合成孔徑雷達(dá)(SAR)等應(yīng)用[1?2,13]中。
使用Kalman 濾波器可以保證從有噪聲的測(cè)量中得到最優(yōu)的重構(gòu)效果[14?18]。文獻(xiàn)[19?21]提出了利用Kalman 濾波器結(jié)構(gòu)進(jìn)行CS 稀疏信號(hào)重構(gòu)的方法,這些方法保持了狀態(tài)向量的維數(shù)與真實(shí)維數(shù)一致,因此,其重構(gòu)迭代時(shí)間長(zhǎng)、效率低。實(shí)際上,信號(hào)所在的子空間的維數(shù)可以很低。為此,本文提出利用l1最小化的方法構(gòu)造信號(hào)維數(shù)的最佳表示。即采用Aitken 的delta-squared 過程外推法對(duì)Kalman 濾波的l1最小化(KML1)進(jìn)行改進(jìn),提出了一種改進(jìn)的基于Kalman 濾波的l1最小化加速算法(以下簡(jiǎn)稱“加速算法”),以提高算法的精確度,縮短重構(gòu)時(shí)間,并將加速算法應(yīng)用于語(yǔ)音信號(hào)的重構(gòu)。最后,本文比較了不同迭代次數(shù)、不同重構(gòu)算法之間的區(qū)別。
且m<<n。令為s-稀疏信號(hào)。式(1)的目標(biāo)是求解一個(gè)欠定線性方程組。
式中:A∈Cm×n為 感知或觀測(cè)矩陣;∈Cm為含噪觀測(cè)向量;R∈Cm×m為觀測(cè)噪聲協(xié)方差矩陣,且假設(shè)該矩陣服從零均值循環(huán)對(duì)稱高斯分布;λ為拉格朗日乘子。
對(duì)于l1的重建,通過引入零空間屬性(null space property,NSP)來(lái)驗(yàn)證l0最小化問題和l1最小化問題之間的等價(jià)性。NSP 保證了A的零空間中的所有向量都不會(huì)過于稀疏。矩陣的零空間被定義為由它投影到0 的向量集,即 N (A)=。令集合 [N]:={1,···,n}的 子集S,SC=:[N]S表示互補(bǔ)集。m×n矩陣A具 有s階的零空間性質(zhì),如果對(duì)所有索引集|S|≤s滿足則重構(gòu)精確稀疏向量所需的最小測(cè)量次數(shù)[22]為
對(duì)于線性傳感模型,Kalman 濾波器可以提供時(shí)變狀態(tài)的最佳估計(jì),同時(shí),KML1 的時(shí)變狀態(tài)也會(huì)根據(jù)線性模型更新。l1范數(shù)可以理解為稀疏狀態(tài)向量的度量,并使用迭代擴(kuò)展線性化Kalman 濾波器(iterative extension linearization Kalman filter,EKF)以遞歸方式逼近估計(jì)值[23?25]。
對(duì)觀測(cè)矩陣A進(jìn)行LQ 分解,即將矩陣A分解成A=LQ的形式,其中L是下三角陣,Q是酉(正交)陣。將L轉(zhuǎn)化為單位下三角矩陣EN(A),即A的零空間生成基,這里A的零空間是 Cn的n-m維子空間。
用k表示迭代次數(shù)。在每一次迭代中,通過零空間基上的系數(shù)來(lái)計(jì)算要添加到解中的差分向量。非線性測(cè)量模型為
KML1 算法并不總是收斂于解l1的范數(shù)。對(duì)于維數(shù)較小的A,如n=64,可以觀察到其收斂性;而對(duì)于大維數(shù),如n=120,則不能精確地收斂于最小l1,如果 γ(k)(k→∞)逼 近1,則l1范數(shù)不再減小,這并不能保證此時(shí)已經(jīng)達(dá)到最小l1標(biāo)準(zhǔn)。因此,在這種情況下,不能精確地重構(gòu)。KML1 算法流程如圖1 所示。
圖1 KML1 算法流程
Aitken 的Δ2-基本過程是迭代交錯(cuò)解過程的可靠、高效的加速收斂方法[27]。它是一種典型的加速過程。如果所考慮的序列與幾何序列足夠相似,則該過程將導(dǎo)致收斂加速。Steffensen 方法就是將Aitken 方法的收斂速度迭代加速到二階。
令uk為收斂于u的序列,如果式(8)成立,則序列收斂更快[27]。
使用外推過程從收斂序列uk構(gòu)造出新的序列比 原始序列uk收斂更快。2 種外推方案如下。
Aitken 的delta-squared 過程外推法是在Aitken的Δ2-基本過程的基礎(chǔ)上的改進(jìn),其具體流程如圖2所示。
圖2 基于Aitken 的delta-squared 過程外推法算法流程
擴(kuò)展卡爾曼濾波EKF 包含了對(duì)附加測(cè)量噪聲過程的假設(shè),對(duì)于EKF 的實(shí)現(xiàn)來(lái)說(shuō),這個(gè)假設(shè)并不是必要條件。如果測(cè)量噪聲v不是疊加噪聲,則測(cè) 。測(cè)量量函數(shù)h(·)具 有的形式為值會(huì)隨著函數(shù)狀態(tài)和測(cè)量噪聲而變化,因此得到的雅可比矩陣為。
加速算法具體流程如圖3 所示。加速算法從KML1 的初始化開始,初始化變量r。根據(jù)3.1 節(jié)采用的Steffensen 方法,在KML1 中定義的變量,在每次迭代中都會(huì)更改,因此,在第2 步的迭代中,根據(jù)Aitken 的delta-squared 過程,使用改進(jìn)的外推法式(11)的松弛參數(shù)ω來(lái)確定減少的測(cè)量值,即在圖3 中執(zhí)行當(dāng)K=2時(shí)的圖右側(cè)分支的流程。
圖3 改進(jìn)KML1 加速算法流程
在第3 步迭代中,采用Steffensen 方法計(jì)算減少的測(cè)量值。從第3 步迭代開始,用Steffensen 方法在收斂序列上求得系數(shù)r,即在圖3 中執(zhí)行K≥3時(shí) 的圖左側(cè)分支的流程。此外,當(dāng)k→∞時(shí),Steffensen 方法使r(k) 趨于0,y?值收斂于一個(gè)不等于0 的極限值,→x的估計(jì)值收斂到一個(gè)固定點(diǎn)。
本文實(shí)驗(yàn)采集了30 個(gè)實(shí)時(shí)語(yǔ)音信號(hào),并將它們?cè)谛〔ㄓ蛏线M(jìn)行稀疏化、歸一化處理。采用Gauss 隨機(jī)矩陣作為測(cè)量矩陣,分別對(duì)比在不同矩陣大小、稀疏度和迭代次數(shù)下的KML1 算法和加速算法的實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)通過l1范數(shù)恢復(fù)的最終值和均方誤差(MSE)來(lái)比較2 種算法的優(yōu)劣。
本文在高維情況(n=128)下進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)分別取每個(gè)語(yǔ)音信號(hào)的128 個(gè)采樣點(diǎn),測(cè)量矩陣的大小為128×256,稀疏度s=30,迭代次數(shù)設(shè)置為1000。圖4 示出KML1 算法、加速算法的實(shí)驗(yàn)結(jié)果與應(yīng)該達(dá)到的真實(shí)l1范數(shù)的對(duì)比情況。由圖可知:KML1 算法和加速算法的l1范數(shù)基本都會(huì)隨著迭代次數(shù)的增加而減?。籏ML1 算法在280 次迭代左右的偏差最大,在迭代次數(shù)達(dá)到500 次后趨于平穩(wěn),收斂于5 左右,接近真實(shí)值;加速算法在迭代100 次之后收斂于4.88,達(dá)到與真實(shí)值4.82 接近的水平,并一直保持在這個(gè)狀態(tài)。
圖4 采樣數(shù)n=128,l1模值的對(duì)比
由圖4 還可以看出:KML1 算法的l1范數(shù)不能收斂到真實(shí)的l1范數(shù);紅線表示的通過加速算法獲得的l1范數(shù),經(jīng)過100 次迭代后,不僅達(dá)到了真正的l1范數(shù),并且均方誤差MSE 值達(dá)到了2.1×10?4。
此外,本文還在低維情況(采樣數(shù)n=64)下進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)分別取每個(gè)語(yǔ)音信號(hào)的64 個(gè)采樣點(diǎn),迭代1 000 次,其結(jié)果如圖5 所示。2 種算法的實(shí)驗(yàn)結(jié)果與真實(shí)值都比較接近,其中KML1 算法在迭代650 次左右達(dá)到準(zhǔn)確值,迭代1 000 次的平均值為4.72,加速算法在迭代500 次達(dá)到準(zhǔn)確值,迭代1 000 次的平均值為4.82,加速算法重構(gòu)的效果更為精確。
圖5 采樣數(shù)n=64,l1 模值的對(duì)比
綜合實(shí)驗(yàn)結(jié)果,表明加速算法比KML1 算法更精確地重構(gòu)了。KML1 并不能一直收斂于解的真實(shí)l1范 數(shù),因此無(wú)法獲得精確的解。使用加速算法重建語(yǔ)音信號(hào),不僅收斂速度更快,而且可以收斂到最接近原始信號(hào)的解。
對(duì)采集到的語(yǔ)音信號(hào),選取長(zhǎng)度n=500,并在小波域進(jìn)行稀疏化后,隨機(jī)生成一個(gè)s-稀疏信號(hào)∈Cn,每個(gè)非零復(fù)數(shù)的實(shí)部和虛部都是從零均值和單位方差的i.i.d.(獨(dú)立同分布)正態(tài)分布中提取的,然后對(duì)所得的進(jìn)行l(wèi)2歸一化處理。測(cè)量矩陣采用隨機(jī)Toeplitz 矩陣。實(shí)驗(yàn)分別采用KML1 算法、加速算法以及傳統(tǒng)的正交匹配追蹤(OMP)算法對(duì)稀疏歸一化之后的信號(hào)進(jìn)行重構(gòu),其結(jié)果如圖6 所示。從圖中可以看出,加速算法與原始信號(hào)的相似度最高。
圖6 3 種重構(gòu)算法對(duì)選取的語(yǔ)音信號(hào)重構(gòu)的對(duì)比
本文通過對(duì)信號(hào)進(jìn)行1000 次和3000 次迭代的重構(gòu)誤差評(píng)估來(lái)衡量不同重構(gòu)算法的性能。重構(gòu)誤差的評(píng)估采用平均均方誤差MSE 的值來(lái)衡量,如圖7 所示,具體的MSE 對(duì)比值如表1 所示。重構(gòu)時(shí)間的評(píng)估結(jié)果如圖8 所示。
圖7 3 種重構(gòu)算法的均方誤差對(duì)比
表1 3 種重構(gòu)算法迭代1 000 次和3 000 次的均方誤差和重構(gòu)時(shí)間對(duì)比
圖8 3 種重構(gòu)算法的時(shí)間對(duì)比
從圖7 可以看出:紅色線表示的加速算法重構(gòu)的均方誤差最低;綠色線表示的KML1 算法略高;藍(lán)色線表示的OMP 算法的均方誤差值相對(duì)最高。迭代3000 次的均方誤差和重構(gòu)時(shí)間的具體對(duì)比數(shù)據(jù)如表1 所示。
由表1 可以看出:3000 次迭代之后,加速算法在時(shí)間上的優(yōu)勢(shì)非常明顯,OMP 算法的重構(gòu)時(shí)間比加速算法高近20 倍,并且MSE 的值也比加速算法多近2.5 倍;通過1000 次和3000 次的迭代結(jié)果發(fā)現(xiàn),迭代次數(shù)越多,KML1 算法和加速算法的MSE 值越低,重構(gòu)信號(hào)的準(zhǔn)確率越高,而OMP 算法的MSE 跟迭代次數(shù)的關(guān)系并不很明顯。
由圖7 和表1 可知,在1000 次和3000 次迭代的情況下,采用KML1 算法和加速算法對(duì)信號(hào)進(jìn)行重構(gòu)的恢復(fù)誤差變化并不是特別明顯,變化值分別為0.1×10?4和1.4×10?4,基本可以忽略不計(jì)。
實(shí)驗(yàn)還分別對(duì)比了稀疏度從5 到90 不同情況下3 種重構(gòu)算法的誤差率,即真實(shí)信號(hào)與重構(gòu)信號(hào)的誤差,如圖9 所示。在迭代次數(shù)均為100 次、稀疏度s<35 時(shí),KLM1 算法和加速算法重構(gòu)信號(hào)的誤差接近0,但隨著稀疏度的增加,加速算法的穩(wěn)定性較KML1 算法更好。加速算法的均方誤差為0.002 5,KML1 算法的均方誤差為0.002 8,OMP 算法的誤差率最大。
圖9 不同稀疏度下3 種重構(gòu)算法的誤差率對(duì)比
綜合實(shí)驗(yàn)結(jié)果,表明加速算法是一種穩(wěn)定的算法,改變稀疏度s或測(cè)量數(shù)量m,對(duì)恢復(fù)誤差的影響很小。
本文通過Kalman 濾波器來(lái)實(shí)現(xiàn)線性約束l1最小化,提出了改進(jìn)的KML1 加速算法,保證了在稀疏度s未知的情況下對(duì)語(yǔ)音信號(hào)的精確重建。實(shí)驗(yàn)分別對(duì)傳統(tǒng)OMP 算法、KML1 算法以及加速算法進(jìn)行了對(duì)比,其結(jié)果表明:本文的加速算法對(duì)語(yǔ)音信號(hào)恢復(fù)的精確度更高,恢復(fù)的時(shí)間也縮短很多,與OMP 算法相比,具有更穩(wěn)定的恢復(fù)效果;在信號(hào)維數(shù)非常低的情況下,KML1 算法和加速算法的結(jié)果并沒有顯著差異,隨著維數(shù)的增加,加速算法的收斂速度更快,并且可以收斂到優(yōu)化問題的精確解。