吳 潮 邵 帥
(1.蘭州交通大學(xué) 機電技術(shù)研究所,甘肅 蘭州 730070; 2.甘肅省物流及運輸裝備信息化工程技術(shù)研究中心,甘肅 蘭州 730070; 3.甘肅省物流與信息技術(shù)研究院,甘肅 蘭州 730070; 4.蘭州交通大學(xué) 機電工程學(xué)院,甘肅 蘭州 730070)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN) 是將大數(shù)量的傳感器節(jié)點布置在目標(biāo)區(qū)域中,這些節(jié)點通過自組織(感知、采集、處理和傳輸)的方式構(gòu)成數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò),最終到達用戶手中。目前風(fēng)電場普遍采用測風(fēng)塔來對風(fēng)電數(shù)據(jù)進行采集,數(shù)據(jù)量大、錯誤數(shù)據(jù)、冗余數(shù)據(jù)多,通過GPRS傳輸會出現(xiàn)丟包嚴(yán)重的現(xiàn)象,而使用無線傳感器節(jié)點來對風(fēng)電場進行布局,構(gòu)成網(wǎng)絡(luò),能夠使采集的數(shù)據(jù)更加全面與準(zhǔn)確,從而全面準(zhǔn)確地反映整個預(yù)測區(qū)域的真實氣象情況[1-5]。但是風(fēng)電場的地域面積寬闊,在用無線傳感網(wǎng)絡(luò)對風(fēng)電場進行布局,為了得到全面、精準(zhǔn)的采集數(shù)據(jù),需要提高無線傳感器網(wǎng)絡(luò)的覆蓋性和可靠性,采用高密度的節(jié)點部署方式,會產(chǎn)生覆蓋區(qū)域的重疊、數(shù)據(jù)冗余的現(xiàn)象,這樣不加篩選的大數(shù)據(jù)傳播會快速耗盡傳感器節(jié)點的能量。因而,應(yīng)融合傳感器節(jié)點采集的數(shù)據(jù),減少網(wǎng)絡(luò)中的數(shù)據(jù)傳輸量,提高數(shù)據(jù)的傳輸效率。壓縮感知算法作為近年來研究較為廣泛的一種數(shù)據(jù)融合算法,能夠從較少的采樣數(shù)據(jù)中精準(zhǔn)重構(gòu)出原始數(shù)據(jù),有效減少數(shù)據(jù)的采樣和傳輸。
壓縮感知理論是由華裔科學(xué)家陶哲軒等人近年提出來的[6]。將壓縮感知理論與常用的奈奎斯特采樣理論進行比較發(fā)現(xiàn),壓縮感知理論在對數(shù)據(jù)進行采集的過程中,同時對數(shù)據(jù)進行處理篩選,這就保證了傳輸過程中數(shù)據(jù)的完整性與真實性[7]。稀疏基、觀測矩陣和重構(gòu)算法是壓縮感知理論的3個組成部分,重構(gòu)算法對于整個壓縮與重構(gòu)過程起著決定性的作用。目前比較成用的重構(gòu)算法可以分為三大類:凸優(yōu)化算法[11-12]、組合算法[13]和貪婪算法[8],其中凸優(yōu)化算法與其他兩種算法比較具有運行速度快、運算量小的優(yōu)點,更加適合應(yīng)用在WSN中。
分段弱正交平匹配追蹤(SWOMP)算法是目前應(yīng)用較為廣泛的貪婪算法之一。這一算法的運算速度快,且算法簡單,但是該算法在運行的時候需要對門限參數(shù)進行設(shè)定,門限參數(shù)的選取對于重構(gòu)精度的影響較大[8];再者是該算法在從冗余字典中選取最佳因子時,采用的是內(nèi)積法則度量準(zhǔn)則,這種方法在殘差信號匹配的過程中會導(dǎo)致部分原始信號的丟失[9]。本文就門限參數(shù)與度量準(zhǔn)則對于SWOMP算法重構(gòu)精度的影響進行研究分析,首先采用自適應(yīng)的方法把最優(yōu)的門限參數(shù)選取出來,再通過Dice系數(shù)替換掉內(nèi)積法則,選取出最佳因子,提高重構(gòu)的成功的成功率。
與傳統(tǒng)的奈奎斯特采樣理論比較,壓縮感知理論在采集數(shù)據(jù)完整重構(gòu)中使用的數(shù)據(jù)數(shù)量更少。下面為壓縮感知理論的采樣公式[10],其中信號x為稀疏表示:
y=Φx
(1)
式中,Φ為M×N的觀測矩陣。但是實際中的信號大多是不稀疏的,這就需要通過稀疏基Ψ進行稀疏化處理,信號x表示為
x=Ψθ
(2)
式中,Ψ為N×N的稀疏基;θ為K稀疏的矩陣,為信號x通過某變換域進行稀疏的表示 ,令
A=ΦΨ
(3)
將采樣信號表示為
y=Aθ
(4)
使用選擇的Ψ與Φ矩陣對傳輸回來的信號y進行重構(gòu),得出信號x。
目前在無線傳感器網(wǎng)絡(luò)中常用的稀疏基有離散傅里葉變換、小波變換、離散小波變換等,測量矩陣目前常采用稀疏隨機測量矩陣、隨機高斯矩陣、隨機伯努利測量矩陣等。
分段弱正交匹配追蹤(SWOMP)算法是正交匹配追蹤(OMP)算法的一種改進的算法,對原有的原子選擇方法進行了改進,通過門限參數(shù)的設(shè)定,采用內(nèi)積法準(zhǔn)則度量方法來選擇最優(yōu)因子在冗余字典中。
傳統(tǒng)的SWOMP的算法流程如圖1所示。
從圖1中能夠發(fā)現(xiàn),門限參數(shù)在迭代中對原子的選擇起決定性作用,這樣無法得到最優(yōu)原子,過大或者過小的門限參數(shù)均會使原子的選擇結(jié)果偏差極大;當(dāng)觀測矩陣中存在兩個相似的原子時,如果選用內(nèi)積法來選擇最佳原子,這就會出現(xiàn)部分原始信號丟失的問題。這兩者均會直接影響重構(gòu)的效果。
采用的實驗數(shù)據(jù)是酒泉某風(fēng)電場2017年1月份的溫度數(shù)據(jù)。實驗時從風(fēng)電場的實測數(shù)據(jù)中選取長度為256的信號作為實驗數(shù)據(jù)。選取0.2、0.4、0.6、0.8 4個不同的門限參數(shù)進行重構(gòu)實驗,研究并分析門限參數(shù)對于重構(gòu)效果的影響。其中,實驗中采用的稀疏基為快速傅里葉變換,觀測矩陣選用的是高斯隨機矩陣。4個不同門限參數(shù)下,SWOMP算法的數(shù)據(jù)重構(gòu)效果如圖2所示。
通過分析SWOMP算法不同門限參數(shù)的數(shù)據(jù)重構(gòu)效果可以發(fā)現(xiàn),不同的門限參數(shù)的數(shù)據(jù)重構(gòu)效果差異較大,并且重構(gòu)的成功或失敗與門限參數(shù)選取關(guān)系較大。
圖2 SWOMP算法不同門限參數(shù)的數(shù)據(jù)重構(gòu)效果
通過對上面重構(gòu)實驗的結(jié)果分析,發(fā)現(xiàn)不恰當(dāng)?shù)拈T限參數(shù)會導(dǎo)致重構(gòu)的失敗。并且門限參數(shù)選取過程中,不同的采樣信號也將會產(chǎn)生極大的影響。針對重構(gòu)中存在的問題,自適應(yīng)的調(diào)整方法對于SWOMP算法的門限參數(shù)選取具有重要的意義。但是,在最佳門限參數(shù)的選取過程中,如果通過帶入的方式來不斷運行重構(gòu)算法,就會極大降低重構(gòu)的效率,因此在最優(yōu)門限參數(shù)的選取過程中,自調(diào)節(jié)的方式將會使運算的次數(shù)盡可能少。由于PID方法運算復(fù)雜度低、方法簡單,并且當(dāng)被控對象的數(shù)據(jù)動態(tài)性大、具有非線性時,控制效果較好。在風(fēng)電場這種條件復(fù)雜的無線傳感器網(wǎng)絡(luò)應(yīng)用環(huán)境中適合應(yīng)用。
在SWOMP算法中應(yīng)用PID方法如下:① 采用觀測矩陣處理采集的數(shù)據(jù),得出觀測向量y;② 采用傳統(tǒng)的SWOMP算法對觀測得到的矩陣進行重構(gòu),獲取重構(gòu)信號;③ 得出計算之后的誤差值,比較計算的誤差值與設(shè)定的誤差標(biāo)準(zhǔn);④ 對門限參數(shù)用PID方法進行調(diào)整。循環(huán)執(zhí)行上述的步驟,直到計算的誤差在設(shè)定的誤差標(biāo)準(zhǔn)之下,得出最優(yōu)的門限參數(shù)[14]。
其中,誤差值計算的公式為
(5)
式中,y為觀測向量;x_r為重構(gòu)信號;Φ為觀測矩陣。當(dāng)計算出來的誤差值大于設(shè)定的誤差標(biāo)準(zhǔn)時,使用PID方法對門限參數(shù)進行調(diào)整。門限參數(shù)的調(diào)整公式為
Ts(k)=ts(k-1)+(kp+ki+kd)*error+
(-kp-2kd)*error_1+kd*error_2
(6)
式中,kp為比例系數(shù);ki為積分系數(shù);kd為微分系數(shù)。
門限參數(shù)的調(diào)節(jié)值采用上述的式(6)進行計算,下一次計算使用的門限參數(shù)即為上一次的門限參數(shù)與計算得到的調(diào)節(jié)值進行相加,通過多次的循環(huán),使得到的誤差值在設(shè)定的誤差值之下,便得到需要的最優(yōu)門限參數(shù)。
下面為PID自適應(yīng)調(diào)整算法的流程。
輸入:設(shè)定初始門限參數(shù)alpha,誤差標(biāo)準(zhǔn)e_base,觀測值y,測量矩陣A。
輸出:重構(gòu)信號x_r。
① 設(shè)定error_1=0, error_2=0。
② theta = CS_SWOMP( y,A,10,alpha)。
③ x_r = Psi * theta。
④ error=norm(y-Phi*x_r)/norm(y)。
⑤ while error>e_base。
⑥ if 相鄰3次調(diào)整得出的誤差相似,循環(huán)結(jié)束 end。
⑦ 通過式(6)得出重構(gòu)誤差估計值。
比如一天中午,我本來興高采烈的,可媽媽說:“方舟,今天我發(fā)了八十八塊錢,和你考的一樣?!闭f完,又裝作天真無邪的樣子捂住嘴,好像說漏了嘴一樣。我警惕地看了爸爸一眼,爸爸正在做飯,不知他聽見沒有。
⑧ 計算調(diào)整后的門限參數(shù)。
⑨ error_2=error_1;error_1=error;alpha=a。
⑩ 利用調(diào)整后的門限參數(shù)再次進行信號重構(gòu)。
傳統(tǒng)的SWOMP算法在最佳原子的選取中是在冗余字典中使用內(nèi)積法,將選擇的最佳原子構(gòu)件為索引集矩陣再與殘差值進行匹配。內(nèi)積法的選擇方式,由于其分母是對向量分量的平方和求幾何平均值,無法使原子的原始狀態(tài)得到保證,不能區(qū)分相似的原子,當(dāng)通過觀測矩陣來匹配殘差信號時,當(dāng)觀測矩陣中存在兩個相似的原子時,如果選用內(nèi)積法來選擇最佳原子,這就會出現(xiàn)部分原始信號丟失的問題,影響重構(gòu)的效果。
在原子選擇的過程中,采用Dice系數(shù)匹配準(zhǔn)則,其分母是對向量分量的平方和求算數(shù)平均值,可以使得每個原子信號的原始狀態(tài)得到完整的保存,保證原子的特征不改變。因而最佳原子的選取使用Dice系數(shù),能夠使向量中的每個元素的相關(guān)性在求解過程中得到最大限度的應(yīng)用,從而使得原始信號丟失的問題得以解決。
內(nèi)積匹配準(zhǔn)則計算公式為
(7)
Dice系數(shù)匹配準(zhǔn)則計算公式為
(8)
Dice系數(shù)匹配準(zhǔn)則算法如下。
輸入:門限參數(shù)alpha,觀測值y,測量矩陣A,迭代次數(shù)S。
輸出:重構(gòu)信號x_r。
① 初始化r0=y,Λ0=φ,A0=φ,t=1。
②u=abs[Dice(ATrt-1)]選取其中大于門限參數(shù)alpha的值,將選取值對應(yīng)的傳感矩陣A的序列號j集合起來為集合J0。
③ 令Λt=Λt-1∪J0,At=At-1∪aj,如果Λr=Λt-1迭代結(jié)束。
④ 求y=Atθt的最小二乘解,即
⑤ 更新殘差:
⑥ 計算重構(gòu)信號x_r。其中,alpha為自適應(yīng)算法所得到最優(yōu)門限參數(shù)。
采用Matlab 7.0軟件在Windows 7系統(tǒng)上對上述算法進行仿真。通過仿真實驗得出最優(yōu)的門限參數(shù),然后再次仿真得出初始門限參數(shù)SWOMP算法,最優(yōu)門限參數(shù)SWOMP算法與Dice系數(shù)改進的SWOMP算法的對比圖,通過對稀疏度一定時,信號在不同觀測值M下的重構(gòu)成功概率進行對比,來對改進算法的性能進行評估。
成功概率公式為
(9)
式中,K為重構(gòu)成功率;P為重構(gòu)成功的次數(shù);T為測試的總次數(shù)。
驗證試驗通過仿真數(shù)據(jù)來進行。選用長度256、稀疏度20的數(shù)據(jù)來進行實驗。初始的門限參數(shù)選用0.2,設(shè)定的誤差標(biāo)準(zhǔn)為2×10-15。通過對自適應(yīng)調(diào)整方法的程序進行運行,當(dāng)門限參數(shù)為0.46時,誤差在設(shè)定的誤差標(biāo)準(zhǔn)之下。
實驗對數(shù)據(jù)長度為256、稀疏度K=20時,采用初始門限參數(shù)SWOMP算法、最優(yōu)門限參數(shù)SWOMP算法與通過Dice系數(shù)改進的SWOMP算法對不同觀測值M下進行仿真,得到重構(gòu)成功率趨勢圖,如圖3所示。
圖3 原始SWOMP與改進的SWOMP算法的重構(gòu)成功率
通過對仿真結(jié)果進行分析,隨著觀測值M的增大,3種設(shè)定情況的重構(gòu)成功率趨勢都是逐步增大的。當(dāng)觀測值M相同時,最優(yōu)門限參數(shù)比初始門限參數(shù)的重構(gòu)效果好,通過Dice系數(shù)改進后的SWOMP算法的重構(gòu)效果得到進一步的提升。對100%重構(gòu)時的觀測值M進行觀察,Dice系數(shù)改進后的觀測值M最低。
本文就應(yīng)用于WSN的SWOMP重構(gòu)算法進行研究分析,通過分析SWOMP算法最佳原子選擇方式以及最優(yōu)門限參數(shù)的選取,對不同門限參數(shù)的重構(gòu)效果進行仿真,得到的重構(gòu)效果差值較大,并且原子的選擇過程中,原始算法選用內(nèi)積法,不僅無法得到最佳原子,還可能丟失部分的原始信號。針對原始算法中存在的問題,采用自適應(yīng)的調(diào)整方法來選擇最優(yōu)的門限參數(shù),通過Dice系數(shù)匹配準(zhǔn)則來解決原始信號丟失的問題。通過實驗仿真,改進后的算法能夠得到最佳的門限參數(shù),重構(gòu)效果得到提升。在得出最優(yōu)門限參數(shù)的基礎(chǔ)上,使用Dice系數(shù)對原始的內(nèi)積法進行替換,仿真結(jié)果發(fā)現(xiàn),重構(gòu)效果能夠得到進一步的提升。