新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 學習LabVIEW(九)——匹配濾波的簡單仿真之二

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

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


        MATLAB節點輸出的信號是一個數組,我們利用for-loop和索引模式的隧道,將數組拆成一個一個的元素,在循環中依次處理,相當于把一個Buffer中的數據轉換成了一個標量構成的數據流。注意syncHead進入循環的隧道沒有使用索引模式,因為在循環內部要把syncHead當做一個整體來處理。在循環內部,將外部來的數據流中的標量數據輸入到數據隊列節點,然后將數據隊列節點的輸出與同步頭使用點積節點作內積運算。運算得到的標量通過一個索引模式的隧道連接到循環之外的scope,這樣就能在界面上看到濾波的結果。完整的程序框圖如下所示:


        程序的一次運行結果如下圖所示:


        至于這種在時域實現的相關運算,是不是不如基于FFT的頻域運算高效呢?實際上,序列點數很少時,時域的實現更高效一些。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 兰西县| 诸城市| 阜康市| 武邑县| 瑞昌市| 黄平县| 镇巴县| 阳城县| 沅江市| 潞西市| 西和县| 定远县| 寿光市| 镇江市| 祁门县| 额尔古纳市| 黔江区| 毕节市| 东城区| 安福县| 永春县| 泰来县| 剑阁县| 龙川县| 保德县| 雅江县| 宁波市| 青龙| 仁寿县| 惠来县| 乌鲁木齐县| 溆浦县| 疏附县| 调兵山市| 吴忠市| 曲沃县| 社会| 濮阳市| 永川市| 阳春市| 班玛县|