基于隨機(jī)解調(diào)的壓縮感知 Matlab仿真
目錄
壓縮感知的數(shù)學(xué)描述
基于隨機(jī)解調(diào)的壓縮感知理論推導(dǎo)
信號(hào)相乘
低通濾波
低速采樣
計(jì)算感知矩陣
信號(hào)重構(gòu) OMP算法
仿真驗(yàn)證

壓縮感知的數(shù)學(xué)描述
????????壓縮感知的過程可以簡單描述為,通過某種方式對原始信號(hào)加工,然后對加工后的信號(hào)進(jìn)行較少的采樣,最后通過重構(gòu)算法,從采樣信號(hào)中恢復(fù)出完整的原始信號(hào)。
????????這一過程要求原始信號(hào)具備某種稀疏性。將原始信號(hào)寫為某些基向量的線性組合,如果大部分系數(shù)都是0則稱該信號(hào)是稀疏的。

系數(shù)向量a=[a1, a2……an]中大部分元素是0,若有K個(gè)非零元素,則稱信號(hào)x的稀疏度是K。
壓縮感知的過程為

其中是觀測矩陣,由測量系統(tǒng)決定也就是先前所說的“加工過程”,測量得到的信號(hào)y就是觀測矩陣對原始信號(hào)x作用的結(jié)果,為了達(dá)到壓縮的效果,
應(yīng)當(dāng)是一個(gè)行數(shù)小于列數(shù)的矩陣。
Θ稱為感知矩陣,由觀測矩陣和稀疏基共同決定,信號(hào)重構(gòu)的過程就是求解x的過程。這看起來似乎是不現(xiàn)實(shí)的,因?yàn)榉匠探M中未知量的數(shù)目大于方程的數(shù)目。但是原始信號(hào)的稀疏性為其求解帶來了可能。
????????壓縮感知最明顯的優(yōu)勢就是降低對AD性能的要求,可以通過較低頻率的采樣得到高頻的原始信號(hào),某種意義上打破了奈奎斯特采樣定理的限制。

基于隨機(jī)解調(diào)的壓縮感知理論推導(dǎo)
????????隨機(jī)解調(diào)時(shí)壓縮感知框架下實(shí)現(xiàn)模擬信息轉(zhuǎn)換的一種方法,能夠?qū)嚎s感知理論從離散時(shí)間域擴(kuò)展到連續(xù)時(shí)間域,顯著降低信號(hào)采樣速率。
隨機(jī)解調(diào)系統(tǒng)流程如下:

? ? ? 信號(hào)相乘
?????????原始信號(hào)x(t)具備稀疏性,是實(shí)現(xiàn)壓縮感知的前提。即原始信號(hào)在某域展開后大部分系數(shù)均為0,若有K項(xiàng)不為0,則稱原始信號(hào)稀疏度為K。例如,原始信號(hào)包含頻率為3kHz與4kHz的正弦信號(hào),則將其在頻域展開后只有兩項(xiàng)系數(shù)不為0,原信號(hào)的稀疏度為2。
????????隨機(jī)信號(hào)P(t)的幅值近似隨機(jī)地跳變?yōu)?或-1,這種隨即特性使其頻譜近似于寬帶白噪聲,幾乎覆蓋整個(gè)頻率軸。
乘法器實(shí)現(xiàn)地?cái)?shù)學(xué)過程如下

????????其中y1是乘法器輸出地混頻信號(hào)。
????????在頻域看待這一過程則有

式中,是原始信號(hào)的傅里葉系數(shù),
是傅里葉變逆換的基向量。因?yàn)樵夹盘?hào)在頻域是稀疏的,所以式子中N是有限的整數(shù)。
Y1和 P分別是混頻信號(hào)和偽隨機(jī)信號(hào)的傅里葉變換。這一時(shí)域相乘的過程可以等效為兩信號(hào)在頻域做卷積。
這樣做的意義在于混頻信號(hào)頻譜中的每一點(diǎn)都包含著原始信號(hào)全部頻譜信息。從最后的化簡結(jié)果來解釋這一點(diǎn):混頻信號(hào)的頻譜中任意一點(diǎn)都包含了k從-N到N的全部,這為低頻采樣后的信號(hào)重構(gòu)提供了可能。
????????低通濾波
????????前文已經(jīng)解釋過,混頻信號(hào)頻譜中每一點(diǎn)都包含了原始信號(hào)的全部傅里葉系數(shù),因此濾除混頻信號(hào)的高頻成分,就可以用低速采樣獲取原始信號(hào)的信息。
濾波的數(shù)學(xué)過程為

其中y2是濾波后的信號(hào),h是濾波器的沖激響應(yīng)。????
????????低速采樣
????????低速采樣的過程可以描述為
????????

上式就是將連續(xù)信號(hào)離散化的過程,離散化的采樣信號(hào)可以寫為

其中

信號(hào)重構(gòu)的過程就是從y[m]中恢復(fù)出x(t)的過程。
????????計(jì)算感知矩陣

其中,c是原始信號(hào)離散后的點(diǎn)數(shù)與低速采樣信號(hào)點(diǎn)數(shù)的比例,形象的解釋如下:

低速采樣信號(hào)的采樣間隔是,在這段時(shí)間里從原始信號(hào)中取了c點(diǎn)。c可以用n/m計(jì)算,
其中n是原始信號(hào)點(diǎn)數(shù),m是低速采樣信號(hào)點(diǎn)數(shù)。

信號(hào)重構(gòu) OMP算法
首先介紹算法的流程
輸入?yún)?shù):感知矩陣Θ、低頻采樣信號(hào)y、原始信號(hào)稀疏度K
輸出參數(shù):重構(gòu)系數(shù)a
步驟1:初始化各參數(shù),包括殘差,支撐矩陣,計(jì)數(shù)變量
步驟2:計(jì)算感知矩陣每列向量與殘差的內(nèi)積,并找出內(nèi)積最大位置,記錄該位置,將該位置的列向量加入支撐矩陣A。
步驟3:求低頻采樣信號(hào)在支撐集上的投影得到逼近信號(hào)x(這里的x不是指前文中的原始信號(hào)),也即求解
?????????????????????????????????????????? ???????????????

需要最小二乘法。
步驟4:更新殘差,
????????????????????????????????????????????????

步驟5:計(jì)數(shù)變量加一,若小于等于K則回到步驟2;反之執(zhí)行步驟6。
步驟6:輸出重構(gòu)系數(shù)x,及其在a向量中的位置。
對OMP算法的簡單解釋:
????????初始?xì)埐罹褪堑皖l采樣信號(hào)y,y可以由感知矩陣列向量的線性組合得到,而且由于原始信號(hào)的稀疏性,這一線性組合中大多數(shù)系數(shù)都是0只有少部分非零,重構(gòu)信號(hào)的過程其實(shí)就是求解這些非零系數(shù)的過程。
????????換言之,我們希望知道,感知矩陣的每一列在y中的占比。初始?xì)埐钆c感知矩陣每一個(gè)列向量求內(nèi)積的過程可以類比自相關(guān),這一過程可以幫助我們判斷哪一列的系數(shù)非零。之后將這一列加入支撐集用最小二乘法讓支撐集逼近y,從而得到這一列對應(yīng)的系數(shù)。
????????更新殘差的過程本質(zhì)上是將y中已經(jīng)確定的成分剔除,然后繼續(xù)判斷去掉剛才的那一列之后,感知矩陣的哪一列在y中占比最高,再將其加入支撐集,用最小二乘法求解對應(yīng)的系數(shù)。不斷重復(fù)這一過程直至得到全部系數(shù)。

仿真驗(yàn)證
????????將頻率為3000Hz、4000Hz的正余弦信號(hào)疊加,與混頻信號(hào)相乘,通過低通濾波器,低頻采樣,得到采樣信號(hào)。

嘗試用OMP算法從采樣信號(hào)中恢復(fù)出原始信號(hào),并做對比

可以看到重構(gòu)信號(hào)與原始信號(hào)幾乎完全一致。
總結(jié)
????????偽隨機(jī)信號(hào)的頻譜幾乎遍布整個(gè)頻率軸,這是一個(gè)很重要的性質(zhì)。原始信號(hào)與為隨機(jī)信號(hào)在時(shí)域相乘,也即在頻域的卷積將原始信號(hào)的頻譜信息隱藏在了混頻信號(hào)的每一頻率中。這為后續(xù)的解調(diào)信號(hào)創(chuàng)造了可能。低通濾波器保留混頻信號(hào)的低頻成分,從而可以使用較低的采樣頻率采樣,但采樣頻率應(yīng)該至少高于低通濾波器截止頻率的兩倍。
????????OMP算法需要實(shí)先確定原始信號(hào)的稀疏度,導(dǎo)致這一算法可能并不實(shí)用。
????????另外,雖然仿真結(jié)果很美好,但這一系統(tǒng)的硬件實(shí)現(xiàn)似乎不太容易。
代碼放在云盤里了
壓縮感知仿真 https://www.aliyundrive.com/s/f6uEVnhPJuM 點(diǎn)擊鏈接保存,或者復(fù)制本段內(nèi)容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。