新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 學(xué)習(xí)LabVIEW(九)——匹配濾波的簡單仿真之二

學(xué)習(xí)LabVIEW(九)——匹配濾波的簡單仿真之二

作者: 時間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
之前在《學(xué)習(xí)LabVIEW(六)——匹配濾波的簡單仿真》中,我們直接利用“信號處理->信號運(yùn)算->互相關(guān)”節(jié)點(diǎn)實(shí)現(xiàn)了匹配濾波。框圖非常簡單,把信號序列和同步序列同時輸入到互相關(guān)節(jié)點(diǎn),輸出就是想要的結(jié)果了?;ハ嚓P(guān)節(jié)點(diǎn)如何運(yùn)算互相關(guān)呢?它包含了兩種算法,一種是時域的卷積,另一種是頻域的相乘,利用FFT提高計算效率。今天我們自己利用數(shù)據(jù)隊列和向量點(diǎn)積(內(nèi)積)實(shí)現(xiàn)互相關(guān)的運(yùn)算。數(shù)據(jù)隊列節(jié)點(diǎn)發(fā)揮了一組移位寄存器的作用(見《幽默的LabVIEW編程之濫用多個移位寄存器》),點(diǎn)積節(jié)點(diǎn)則實(shí)現(xiàn)了加權(quán)求和。這就是內(nèi)積或者相關(guān)的運(yùn)算本質(zhì)。
首先,信號的構(gòu)造還是使用了MATLAB節(jié)點(diǎn),這樣比較方便而且便于調(diào)整,如下圖所示:


MATLAB節(jié)點(diǎn)輸出的信號是一個數(shù)組,我們利用for-loop和索引模式的隧道,將數(shù)組拆成一個一個的元素,在循環(huán)中依次處理,相當(dāng)于把一個Buffer中的數(shù)據(jù)轉(zhuǎn)換成了一個標(biāo)量構(gòu)成的數(shù)據(jù)流。注意syncHead進(jìn)入循環(huán)的隧道沒有使用索引模式,因?yàn)樵谘h(huán)內(nèi)部要把syncHead當(dāng)做一個整體來處理。在循環(huán)內(nèi)部,將外部來的數(shù)據(jù)流中的標(biāo)量數(shù)據(jù)輸入到數(shù)據(jù)隊列節(jié)點(diǎn),然后將數(shù)據(jù)隊列節(jié)點(diǎn)的輸出與同步頭使用點(diǎn)積節(jié)點(diǎn)作內(nèi)積運(yùn)算。運(yùn)算得到的標(biāo)量通過一個索引模式的隧道連接到循環(huán)之外的scope,這樣就能在界面上看到濾波的結(jié)果。完整的程序框圖如下所示:


程序的一次運(yùn)行結(jié)果如下圖所示:


至于這種在時域?qū)崿F(xiàn)的相關(guān)運(yùn)算,是不是不如基于FFT的頻域運(yùn)算高效呢?實(shí)際上,序列點(diǎn)數(shù)很少時,時域的實(shí)現(xiàn)更高效一些。


關(guān)鍵詞: LabVIEW匹配濾波簡單仿

評論


技術(shù)專區(qū)

關(guān)閉