學習LabVIEW(九)——匹配濾波的簡單仿真之二 作者: 時間:2017-01-09 來源:網(wǎng)絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 之前在《學習LabVIEW(六)——匹配濾波的簡單仿真》中,我們直接利用“信號處理->信號運算->互相關”節(jié)點實現(xiàn)了匹配濾波。框圖非常簡單,把信號序列和同步序列同時輸入到互相關節(jié)點,輸出就是想要的結果了?;ハ嚓P節(jié)點如何運算互相關呢?它包含了兩種算法,一種是時域的卷積,另一種是頻域的相乘,利用FFT提高計算效率。今天我們自己利用數(shù)據(jù)隊列和向量點積(內積)實現(xiàn)互相關的運算。數(shù)據(jù)隊列節(jié)點發(fā)揮了一組移位寄存器的作用(見《幽默的LabVIEW編程之濫用多個移位寄存器》),點積節(jié)點則實現(xiàn)了加權求和。這就是內積或者相關的運算本質。首先,信號的構造還是使用了MATLAB節(jié)點,這樣比較方便而且便于調整,如下圖所示:MATLAB節(jié)點輸出的信號是一個數(shù)組,我們利用for-loop和索引模式的隧道,將數(shù)組拆成一個一個的元素,在循環(huán)中依次處理,相當于把一個Buffer中的數(shù)據(jù)轉換成了一個標量構成的數(shù)據(jù)流。注意syncHead進入循環(huán)的隧道沒有使用索引模式,因為在循環(huán)內部要把syncHead當做一個整體來處理。在循環(huán)內部,將外部來的數(shù)據(jù)流中的標量數(shù)據(jù)輸入到數(shù)據(jù)隊列節(jié)點,然后將數(shù)據(jù)隊列節(jié)點的輸出與同步頭使用點積節(jié)點作內積運算。運算得到的標量通過一個索引模式的隧道連接到循環(huán)之外的scope,這樣就能在界面上看到濾波的結果。完整的程序框圖如下所示:程序的一次運行結果如下圖所示:至于這種在時域實現(xiàn)的相關運算,是不是不如基于FFT的頻域運算高效呢?實際上,序列點數(shù)很少時,時域的實現(xiàn)更高效一些。
評論