何繼愛 宋宇霄
(蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院,甘肅蘭州 730050)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,物聯(lián)網(wǎng)在各個(gè)行業(yè)中都發(fā)揮著及其重要的作用[1]。窄帶物聯(lián)網(wǎng)(NB-IoT)技術(shù)因功耗低,覆蓋廣等優(yōu)點(diǎn)越來越受到人們的關(guān)注。在窄帶物聯(lián)網(wǎng)通信中,由于物聯(lián)網(wǎng)環(huán)境下傳輸?shù)妮d體通常為單通道窄帶信號[2],在傳輸信號的過程中由于多設(shè)備的原因,接收機(jī)接收到的往往是多路混合的復(fù)雜信號[3- 4]。為了從復(fù)雜信號中得到有用的信號源,需要對其進(jìn)行分離提取。Kalman濾波算法是一種對動(dòng)態(tài)系統(tǒng)進(jìn)行數(shù)據(jù)狀態(tài)估計(jì)的有效辦法[5],它具有儲(chǔ)存歷史數(shù)據(jù)量少的優(yōu)點(diǎn),利用新的觀測值,通過對其不斷預(yù)測和修正估計(jì)出系統(tǒng)新的狀態(tài)。隨著計(jì)算機(jī)技術(shù)的不斷提升,Kalman濾波在實(shí)時(shí)性、有效性、可靠性有著高要求的系統(tǒng)中得到了廣泛的應(yīng)用。
針對單通道盲源分離問題,許多學(xué)者進(jìn)行探索并取得了一定的成果。文獻(xiàn)[6]提出了在窄帶物聯(lián)網(wǎng)中基于雙門限接收的單通道窄帶信號盲分離算法,構(gòu)造并設(shè)計(jì)了單通道窄帶相關(guān)處理器,提高了盲源分離效率,但是對于多信號混合成的觀測信號存在著計(jì)算量大的問題。文獻(xiàn)[7]為了達(dá)到增強(qiáng)語音信號的目的,使用Kalman濾波算法對于含噪聲的混合語音信號進(jìn)行濾波,之后利用Fast-ICA算法對陣列語音信號進(jìn)行分離,但是沒有利用信號的狀態(tài)空間特征對混合信號進(jìn)行分離,運(yùn)算復(fù)雜度較高。文獻(xiàn)[8]提出了一種通過計(jì)算信號循環(huán)頻率,構(gòu)造循環(huán)譜域?yàn)V波器實(shí)現(xiàn)信號分離的方法,文獻(xiàn)[9]在此基礎(chǔ)上對循環(huán)頻率誤差進(jìn)行修改,分析了在誤差條件下濾波器的性能,但是需要根據(jù)循環(huán)譜域譜相關(guān)性得到循環(huán)頻率,以確定濾波器頻移量,計(jì)算復(fù)雜度高。
基于以上的研究,為了解決單傳感器接收混合信號分離的準(zhǔn)確性,提高運(yùn)算效率,本文提出了一種基于Kalman濾波算法對混合信號進(jìn)行狀態(tài)空間估計(jì),并分離出源信號的算法。文章第2節(jié)主要介紹了窄帶物聯(lián)網(wǎng)SCH低階與高階調(diào)制后接收機(jī)模型,并簡單介紹了Kalman濾波算法基本模型,第3節(jié)介紹了基于Kalman濾波的多信號單通道盲源分離算法,第4節(jié)為仿真實(shí)驗(yàn)并對算法進(jìn)行驗(yàn)證,第5節(jié)對文章進(jìn)行總結(jié)。
在窄帶物聯(lián)網(wǎng)物理層的設(shè)計(jì)中,有SCH低階調(diào)制與SCH高階調(diào)制,其中SCH低階調(diào)制為BPSK信號與QPSK信號:
(1)
其中,ai=±1,k∈{1,2,3,4},g(t)為基帶碼元波形,n(t)為加性高斯噪聲。對于SCH高階調(diào)制,存在兩個(gè)不同載波的QPSK信號共同作用,可用下式描述:
(2)
Kalman濾波器是基于狀態(tài)空間模型的最優(yōu)濾波器,在離散時(shí)間動(dòng)態(tài)系統(tǒng)模型下,Kalman濾波由過程方程和觀測方程描述,過程方程為:
a(k+1)=F(k+1,k)a(k)+v1(k)
(3)
其中,a(k)是M×1維表示系統(tǒng)在離散時(shí)間n的狀態(tài)向量;F(k+1,k)為系統(tǒng)狀態(tài)轉(zhuǎn)移矩陣;v1(k)是M×1維的過程噪聲向量。系統(tǒng)的觀測方程:
y(k)=C(k)a(k)+v2(k)
(4)
其中,y(k)為N×1維,表示動(dòng)態(tài)系統(tǒng)在時(shí)間k的觀測向量;C(k)為N×M維觀測矩陣;v2(k)是M×1維的觀測噪聲向量。Kailath提出N×1維新息過程,定義為:
(5)
對于新息過程,定義狀態(tài)向量的一步預(yù)測誤差為:
(6)
R(k)=E{α(k)αH(k)}
(7)
增益矩陣在Kalman濾波中起到了至關(guān)重要的作用,在狀態(tài)向量的每一次迭代更新中,都會(huì)得到增益矩陣,由增益矩陣得到當(dāng)前狀態(tài)的優(yōu)化結(jié)果,定義增益矩陣為G(k),則有:
G(k)=E{a(k+1)αH(k)}R-1(k)
(8)
聯(lián)立式(7)與式(8),可以得到狀態(tài)向量一步預(yù)測更新公式:
(9)
由式(9)知,在k+1時(shí)刻的狀態(tài)向量是由第k時(shí)刻狀態(tài)向量的估計(jì)得到。在一個(gè)濾波周期內(nèi),從Kalman濾波使用的系統(tǒng)信息和觀測信息的過程來看,Kalman濾波可以分為時(shí)間更新和狀態(tài)更新兩個(gè)過程,具體過程如圖1所示。
圖1 Kalman算法原理Fig.1 Kalman algorithm principle
假設(shè)單通道混合信號C(k)是由源信號r(k)瞬時(shí)線性混合而來,為:C(k)=r1(k)+r2(k)+…+rn(k),且信號滿足以下假設(shè)條件:
(1)源信號為空間上相互獨(dú)立,且各源信號具有不同的時(shí)間結(jié)構(gòu),也就是說源信號之間統(tǒng)計(jì)獨(dú)立;
(2)觀測噪聲與過程噪聲均為加性高斯白噪聲。
為了將源信號從混合信號中分離,利用Kalman濾波算法,設(shè)其過程方程為:
a(k+1)=F(k+1,k)a(k)+v1(k)
(10)
其中,a(k)為已知源信號序列中的第一個(gè)值,a(k+1)是對信號下個(gè)狀態(tài)的估計(jì),由于在盲分離中,信號幅度具有不確定性,可將幅度對系統(tǒng)的影響弱化,所以F(k+1,k)為M×M的單位矩陣[11],v1(k)為過程高斯白噪聲向量。對于其觀測方程為:
y(k)=C(k)a(k)+v2(k)
(11)
其中,C(k)為瞬時(shí)線性混合信號,v2(k)為觀測高斯白噪聲向量。由于各個(gè)源信號與噪聲之間統(tǒng)計(jì)獨(dú)立,可排除噪聲對系統(tǒng)的影響,所以,式(10)過程方程、(11)觀測方程可變換為:
a(k+1)=F(k+1,k)a(k)
y(k)=C(k)a(k)
(12)
對于式(12)觀測方程中的觀測矩陣C(k),對其求協(xié)方差,得到:
(13)
在q中,用觀測矩陣中的每一個(gè)值與觀測平均值相減可得到觀測矩陣的協(xié)方差。定義初始迭代值為δ,δ為初始值接近于零,并在零值處擾動(dòng),即Sν=δ,將Sν看作最優(yōu)化的方差值,即為原始最優(yōu)化的結(jié)果,在濾波過程中每次都會(huì)對此值進(jìn)行更新。
在Kalman濾波算法中,我們需要對觀測值中的每一個(gè)元素進(jìn)行迭代并更新,得到最優(yōu)估計(jì)值,即為對信源信號的最優(yōu)估計(jì):
a(k)=F×a(k-1)+q(k-1)
(14)
其中,a(k)為上一狀態(tài)a(k-1)對當(dāng)前結(jié)果預(yù)測的狀態(tài)值,利用狀態(tài)轉(zhuǎn)移矩陣和上一個(gè)狀態(tài)乘積加上一個(gè)狀態(tài)的觀測協(xié)方差,可以得到當(dāng)前狀態(tài)的估計(jì)值。對于Kalman濾波而言,增益矩陣G(k)有著相當(dāng)重要的地位,其對每次觀測值的更新都起到了承接的作用,要得到系統(tǒng)增益,首先需要對當(dāng)前狀態(tài)的估計(jì)值進(jìn)行求方差處理:
p(k)=Sv(k)+q(k)
(15)
由上式可得增益的表達(dá)式為:
(16)
由式(15)和式(16)可得最佳的優(yōu)化結(jié)果為:
y(k)=a(k)+G(k)×(Me(k)-a(k))
(17)
其中Me(k)為初始測量值,y(k)為當(dāng)前時(shí)刻信號通過Kalman濾波器得到最佳估計(jì)結(jié)果,最后需要對方差進(jìn)行更新:
p(k)=(1-G(k))×p(k-1)
(18)
在下一時(shí)刻系統(tǒng)迭代過程中,將得到的最佳優(yōu)化方差視為方差的初值繼續(xù)進(jìn)行系統(tǒng)迭代,直到完成對源信號的估計(jì)。由此得到基于Kalman濾波的多信號單通道盲源分離算法如下:
(1)求觀測矩陣的協(xié)方差矩陣;
(2)對觀測值中的每一個(gè)元素進(jìn)行迭代并更新,得到最優(yōu)估計(jì)值;
(3)對當(dāng)前狀態(tài)的估計(jì)值求其方差;
(4)得到增益矩陣;
(5)得到當(dāng)前時(shí)刻最佳優(yōu)化結(jié)果;更新方差,返回(1)。
為了將分離效果以定量的形式描述,盲源分離通常是在假定源信號與混合系統(tǒng)的條件下,利用相關(guān)系數(shù)、信噪比、平均意見得分等作為評價(jià)指標(biāo)。本文使用相關(guān)系數(shù)來表示混合信號分離后的評價(jià)標(biāo)準(zhǔn)。試驗(yàn)中算法處理的數(shù)據(jù)長度是有限的,信號源r(k)和盲分離信號C(k)的相關(guān)系數(shù)用樣本相關(guān)系數(shù)來估計(jì)。即:
(19)
相關(guān)系數(shù)可以消除單通道盲源分離中恢復(fù)信號和源信號的幅度差異,減小了由于幅度的差異對系統(tǒng)造成的影響。由式(19)可知,若恢復(fù)信號與源信號相關(guān)性高,則ρij接近于1,若相關(guān)性差,則ρij接近于0。
為了驗(yàn)證本文算法的有效性,利用MATLAB 2014a語言在Windows10,主頻為2.60 GHz的計(jì)算機(jī)上進(jìn)行仿真驗(yàn)證。
實(shí)驗(yàn)1 假設(shè)在窄帶物聯(lián)網(wǎng)系統(tǒng)中,SCH低階調(diào)制上下行信號分別為BPSK與QPSK信號,研究以三路采樣點(diǎn)為1600,載波頻率為200 Hz,幅度為1的BPSK、4FSK、QPSK信號相混合作為混合信號,如式(20)所示。源信號為BPSK、4FSK、QPSK信號,觀測信號為三路信號的線性混合,如圖2、圖3所示,圖4為分離信號。
(20)
圖2 實(shí)驗(yàn)源信號圖Fig.2 Experimental source signal diagram
圖3 實(shí)驗(yàn)混合信號圖Fig.3 Experimental mixed signal diagram
從分離信號和源信號的圖2與圖4和相關(guān)系數(shù)表1可以得到,分離前后信號之間具有較高的相似程度。同樣地,利用本文算法與虛擬通道法分離后的相關(guān)系數(shù)進(jìn)行了對比,證明了Kalman濾波算法可以有效的將信號從混合信號中估計(jì)并有效分離。
表1 分離信號與源信號相關(guān)系數(shù)
實(shí)驗(yàn)2 實(shí)驗(yàn)1表明了算法可以有效的將SCH低階調(diào)制信號分離,提高調(diào)制效率。假設(shè)對于SCH高階調(diào)制,分別使用載波為200 Hz與300 Hz的QPSK信號,并夾雜隨機(jī)噪聲序列,如式(21)所示,其中f1=200 Hz、f2=300 Hz,idin(t)為高斯隨機(jī)噪聲序列。圖5和圖6分別為源信號和混合信號,圖7為分離后的信號。
(21)
圖4 實(shí)驗(yàn)分離信號圖Fig.4 Experimental separation of signal
圖5 實(shí)驗(yàn)源信號圖Fig.5 Experimental source signal diagram
圖6 實(shí)驗(yàn)混合信號圖Fig.6 Experimental mixed signal diagram
盲源分離信號與源信號相關(guān)系數(shù)分離前相關(guān)系數(shù)虛擬通道法分離后相關(guān)系數(shù)[8]200 Hz QPSK信號0.98340.59940.9332300 Hz QPSK信號0.97660.58520.9248隨機(jī)噪聲信號0.98550.41870.9354
從實(shí)驗(yàn)結(jié)果可以看出,分離信號與源信號相關(guān)系數(shù)近似為1,基于Kalman濾波算法下的單通道盲源分離算法不僅對窄帶物聯(lián)網(wǎng)物理層SCH低階不同信號之間調(diào)制有效,而且對SCH高階相同信號之間調(diào)制分離效果明顯。
為了對比利用Kalman濾波狀態(tài)估計(jì)盲源分算法得到的分離信號與Kalman算法濾除隨機(jī)噪聲信號后通過Fast-ICA算法得到分離信號的相關(guān)系數(shù)進(jìn)行比較,結(jié)果如表3所示,通過表3可知,本文算法較文獻(xiàn)[7]算法分離后信號具有較高的相關(guān)程度。
表3 Kalman濾波算法與Fast-ICA算法分離后相關(guān)系數(shù)比較
實(shí)驗(yàn)3 為了更好的證明Kalman濾波算法在單通道盲源分離中的有效性,假設(shè)使用了長度為1600的正弦波序列、三角波序列和隨機(jī)數(shù)序列,如式(22)所示,其中sin(ft)為正弦波序列、tri(t)為三角波序列,idin(t)為高斯隨機(jī)噪聲信號。圖8和圖9分別為源信號和混合信號,圖10為分離后的信號。
y(t)=sin(ft)+tri(t)+idin(t)
(22)
圖7 實(shí)驗(yàn)分離信號圖Fig.7 Experimental separation of signal
圖8 實(shí)驗(yàn)源信號圖Fig.8 Experimental source signal diagram
通過表4可知,本文使用的算法可以有效的將源信號從混合信號中分離,分離后的信號與源信號具有較高的相似度,證明了單通道盲源分離后的信號可以作為源信號的有效估計(jì)信號。
圖9 實(shí)驗(yàn)混合信號圖Fig.9 Experimental mixed signal diagram
表4 分離信號與源信號相關(guān)系數(shù)
圖10 實(shí)驗(yàn)分離信號圖Fig.10 Experimental separation of signal
本文在Kalman濾波算法的基礎(chǔ)上,提出了基于Kalman濾波的多信號單通道盲源分離算法。該方法利用信號的時(shí)序特征與Kalman濾波算法狀態(tài)空間的關(guān)系,對混合信號中的源信號進(jìn)行估計(jì),得到當(dāng)前時(shí)刻最優(yōu)估計(jì)狀態(tài),通過不斷的時(shí)間更新和狀態(tài)更新,最終得到分離信號,實(shí)現(xiàn)了多信號單通道盲源分離。通過仿真實(shí)驗(yàn)表明,本文使用的算法可以有效的從瞬時(shí)線性混合系統(tǒng)中恢復(fù)出源信號,具有良好的分離性能。