吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Moku自定義實時數字濾波器實現降噪與去尖峰

上海昊量光電設備有限公司 ? 2024-01-04 08:15 ? 次閱讀

在本應用筆記中,我們利用 Moku 云編譯和多儀器模式來解釋常用移動平均濾波器的開發。我們使用示波器和頻率響應分析儀來檢測有限脈沖響應(FIR)濾波器。然后,我們使用Moku:Pro、MokuGo設備開發、部署和檢測五點中值濾波器。以這種方式組合線性和非線性濾波器,可用于抑制許多控制或傳感應用中的尖峰并降低噪聲。

Moku云編譯

Moku云編譯(Moku Cloud Compile, MCC)是Liquid Instruments的一項功能,可讓您快速編譯自定義硬件描述語言(HDL)代碼并將其部署到Moku設備。MCC將Moku內的FPGA開放,可以自定義代碼,并允許特定的功能和特性。我們提供一系列示例和支持來幫助您部署自定義功能。

移動平均濾波器

移動平均濾波器是n個連續信號樣本的平均值。方程為:

5fd867f2-aa96-11ee-8a62-92fbcf53809c.png

其中x(t)是離散時間序列輸入信號,y(t)是輸出信號。例如,當n = 4時:

5fe35bbc-aa96-11ee-8a62-92fbcf53809c.png

這種濾波器在降低信號噪聲方面具有非常有用的應用。對于不相關的白噪聲,此移動平均函數最適合抑制噪聲并保留尖銳的階躍響應,但阻帶性能較差。在硬件中實現這一點僅需要加法器和一次除法,因此在硬件資源有限的情況下非常有用。在硬件中,除以任意數字在FPGA中并不簡單。通常,該濾波器是通過確保n是2的冪(即n=2N)來實現的,從而將除法減少為右移N個二進制位。

5fee209c-aa96-11ee-8a62-92fbcf53809c.png

圖1二進制按位移位示意圖

直接硬件實現如圖2所示。

5ffbe8c6-aa96-11ee-8a62-92fbcf53809c.png

圖2 以一系列加法器實現移動平均

此方案需要2N個加法器,硬件成本比較昂貴。深度加法器還可能需要時鐘寄存器來滿足合理的時序性能。我們可以通過以下方式改進這一點:

600ed9a4-aa96-11ee-8a62-92fbcf53809c.png

因此,圖3更概括地說明了這一點:

601592d0-aa96-11ee-8a62-92fbcf53809c.png

圖3累加器實現

這說明每個輸出取決于先前的輸出和當前的輸入。現在,我們已將移動平均簡化為一個累加器、一個減法器和一個n級移位寄存器,后者用于2N除法的按位右移。當N > 4時,硬件明顯有了節省,限制因素是2N級移位寄存器。此外,不需要更多的時鐘元件來滿足時序限制。

VHDL實現

圖4顯示了VHDL實現的核心。這個過濾器的核心非常簡單,只有12行代碼。p_moving_average是最后N個樣本的時間歷史記錄,其中第8行在前面添加最新的輸入并刪除最舊的輸入。在第9行,累加器r_acc正在添加新的輸入,而第10行正在生成輸出所需的按位移位(除法器)。

602cd1de-aa96-11ee-8a62-92fbcf53809c.png

編譯和部署

編譯該VHDL代碼非常便捷。

首先,請訪問compile.liquidinstruments.com,上傳代碼,然后選擇構建。Liquid Instruments服務器將生成一個文件或比特流,定義FPGA上實現代碼所需的硬件配置。對于MokuLab,編譯大約需要5分鐘;對于 Moku:Pro,由于 FPGA 的尺寸更大,該時間接近20分鐘。

此處提供了指導您完成編譯和部署的詳細說明:

https://www.liquidinstruments.com/blog/2022/09/02/starting-with-moku-cloud-compile/

測試MCC移動
平均濾波器

為了測試該移動平均濾波器,我們使用Moku:Go的多儀器模式(MiM),如圖5所示。在此模式下,我們可以部署兩臺采樣率為31.25 MHz的儀器。我們同樣可以在Moku:Pro,Moku:Lab上測試該濾波器。

插槽1插入MCC移動平均濾波器,插槽2插入示波器儀器。我們使用示波器觀察從輸入1輸入的的已濾波和未濾波信號。示波器還具有一個集成波形發生器,用于生成測試信號。在本例中,我們使用示波器的內置波形發生器生成2 kHz 的方波,并將其連接到輸出1。我們在外部將信號衰減 60 dB,使其接近Moku:Go的本底噪聲。然后我們將該信號路由回輸入1。

603c5f1e-aa96-11ee-8a62-92fbcf53809c.png

圖 5:多儀器模式下的濾波器測試設置

在圖6中,我們可以在藍色軌跡中看到衰減后的噪聲方波。紅色跡線顯示移動平均器的輸出,具有明顯更干凈的方波。這是一種十分有效的降噪技術,我們使用了MiM,并在一個插槽啟用了MCC功能。

6050533e-aa96-11ee-8a62-92fbcf53809c.png

現在我們轉為關注噪聲功率,我們知道該平均濾波器將噪聲功率降低了2N倍;噪聲幅度降低了2N/2。我們的實現使用N=8,因此噪聲幅度應減少到原始值的6.25%(1/16)。

因此,這種最簡單的濾波器對于降低噪聲很有用。它的計算量也非常小,只需要累加器、減法器和按位移位。這意味著它可以以非常高的速度運行,在 Moku:Pro 上為 312.5 MSa/s,在 Moku:Go 上為 31.25 MSa/s。

圖7顯示了 Moku:Go 輸入噪聲(藍色線)和幅度分別為161.2 mV和9.162 mV的移動平均濾波器信號(紅色線)。由此我們可以看出,濾波器后的噪聲幅度接近于原始噪聲的預期因子1/16,即 9.162161.2 = 0.057。該過濾器正在運行并滿足我們的期望。

6064adb6-aa96-11ee-8a62-92fbcf53809c.png

圖7輸入噪聲與濾波后信號

頻率響應

我們可以使用Moku頻率響應分析儀(FRA)儀器輕松確定移動平均濾波器的頻率響應。FRA在其輸出上驅動掃頻正弦波,并測量其輸入上產生的幅度和相位。圖8顯示了測試設置:

60738764-aa96-11ee-8a62-92fbcf53809c.png

圖 8:頻率響應分析儀設置

圖9顯示了MCC濾波器的頻率響應結果。與圖10(理想移動平均濾波器的MATLAB圖)相比,我們發現移動平均濾波器沒有提供特別好的阻帶衰減。

60860c68-aa96-11ee-8a62-92fbcf53809c.png

圖9移動平均濾波器的頻率響應

60926b70-aa96-11ee-8a62-92fbcf53809c.png

圖10理想移動平均濾波器的MATLAB圖

中值濾波器

中值濾波器是一種非線性濾波器,用于確定小移動窗口的中值。輸入樣本通過窗口,輸出給定任何時間樣本的中值。移動平均濾波器適合過濾均勻分布的隨機噪聲,中值濾波器適合濾除非常短的尖峰或脈沖噪聲。雖然它經常部署在圖像處理中,但它在更一般的信號處理中也很有用。

通常,為窗口長度選擇奇數個樣本:3、5或7個點。這意味著輸出只是值排序窗口的中間樣本。

VHDL實現

圖11顯示了VHDL五點中值函數的實現。在時鐘信號的每個上升沿,圖11中的函數將五個輸入樣本從低值到高值排序。這種排序發生在第12行到第20行的兩個嵌套“for”循環中。因此,中位數是排序窗口中的第三個樣本;這被分配給第22行的輸出。

609d60ac-aa96-11ee-8a62-92fbcf53809c.png

圖 11:中值VHDL代碼

我們可以使用示波器和云編譯器插槽以及示波器的波形生成器,以與移動平均濾波器相同的方式分析中值濾波器的時域性能。

圖12顯示噪聲峰值顯著降低,未濾波噪聲的峰峰值測量值從 3.66 mV 降低至濾波后的305 μV。這減少了1/12,不如移動平均濾波器(1/16)有效。

613a2432-aa96-11ee-8a62-92fbcf53809c.png

圖12中值濾波器時域性能

由于中值濾波器的一個關鍵功能是消除脈沖噪聲,因此我們還使用帶有附加脈沖的方波來檢查其性能。圖13顯示了具有前沿尖峰和低電平中途尖峰的方波(藍色線),濾波信號顯示中值濾波器去除尖峰后的方波(紅色線)。

6163307a-aa96-11ee-8a62-92fbcf53809c.png

圖13去除尖峰噪聲的中值

我們在Moku:Go上編譯并測試了這個中值濾波器,它的MCC時鐘速率為31.25 MHz。然而,在為Moku:Pro測試此示例時,由于時鐘速率增加到312.5 MHz,我們需要調整我們的示例。圖 11 中的實現使用帶有變量的嵌套 for 循環。這合成了一個復雜的組合邏輯網絡,其轉遞延遲(圖14)超過了Moku:Pro時鐘速率的3.2 ns周期。為了滿足時序要求,時鐘元件之間的邏輯轉遞延遲必須小于時鐘周期。

61701a92-aa96-11ee-8a62-92fbcf53809c.png

圖 14:通過邏輯的傳遞延遲

我們需要將大型邏輯塊分成由寄存器或時鐘元件分隔成段。在VHDL中,我們通過使用信號而不是變量來實現這一點。在本例中,為了便于編碼,我們將邏輯分為五個階段。這意味著輸入到輸出的延遲約為五個時鐘周期,這適合我們的應用程序。

圖15顯示了該五階段線性中值算法的一個階段。可以在此處下載的項目文件中找到完整的VHDL:https://gitlab.com/liquidinstruments/cloud-compile/examples

6181378c-aa96-11ee-8a62-92fbcf53809c.png

圖15VHDL代碼部分示例

Moku:Pro

中值濾波器測試

我們使用MiM中的Moku:Pro和任意波形發生器(AWG)來創建帶有噪聲尖峰的方波。然后,我們將AWG的輸出連接到MCC中值濾波器,并使用示波器觀察效果。

此MiM設置如圖16所示。我們配置了AWG,如圖17所示。它的輸出將模擬信號驅動到Moku:Pro的輸出 3,而該信號又通過同軸電纜環接到輸入3。中值濾波器部署在MCC中,并使用示波器來觀察性能。

61910176-aa96-11ee-8a62-92fbcf53809c.png

圖16Moku:Pro中值濾波器測試系統

61a3551a-aa96-11ee-8a62-92fbcf53809c.png

圖17任意波形發生器,帶有脈沖的方波

最后,我們觀察中值濾波器的性能,如圖18所示。中值濾波器消除了尖峰,同時保留了方波的尖銳邊緣。由于插入分級時鐘線程而導致的處理延遲導致大約44 ns的延遲。

61b69300-aa96-11ee-8a62-92fbcf53809c.png

圖 18:Moku:Pro中值濾波器現象

總結

在本應用筆記中,我們討論了移動平均濾波器和中值濾波器的實現。為了實現這些,我們利用Moku Cloud Compile來構建過濾器并將其部署到Moku:Go。然后我們修改了設計以確保與增加的Moku:Pro時鐘速率兼容。為了驗證MCC濾波器,我們使用多儀器模式連接完全可定制的濾波器、示波器和任意波形發生器。這種實現方式可以有效降低噪聲,同時保留數字信號處理應用中的信號邊緣。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 示波器
    +關注

    關注

    113

    文章

    6282

    瀏覽量

    185845
  • 數字濾波器
    +關注

    關注

    4

    文章

    270

    瀏覽量

    47095
  • FIR
    FIR
    +關注

    關注

    4

    文章

    147

    瀏覽量

    33287
收藏 人收藏

    評論

    相關推薦

    使用FPGA構建的數字濾波器設計方案

    本文簡要介紹了FIR數字濾波器的結構特點和基本原理,提出基于FPGA和DSP Builder的FIR數字濾波器的基本設計流程和實現方案。##FIR 數字濾波器的詳細設計。
    發表于 07-24 15:30 ?8900次閱讀
    使用FPGA構建的<b class='flag-5'>數字濾波器</b>設計方案

    LabVIEW如何實現數字濾波器的設計

    設計的數字濾波器具有高效、靈活、界面友好、集成性強、費用低、用戶自定義功能強等諸多優點[1]。1. 數字濾波器及其傳統設計方法1.1 數字濾波器概述
    發表于 07-26 05:30

    數字濾波器的結構

    數字網絡的信號流圖表示 IIR數字濾波器的結構 FIR數字濾波器的結構數字濾波器的格形結構信號流圖的基本概念1、定義:信
    發表于 01-07 10:24 ?30次下載

    數字濾波器在FPGA中的實現

    數字濾波器在FPGA中的實現
    發表于 02-09 10:21 ?77次下載
    <b class='flag-5'>數字濾波器</b>在FPGA中的<b class='flag-5'>實現</b>

    數字濾波器的設計實驗

    數字濾波器的設計實驗 一. 數字濾波器設計:(1) 數字濾波器設計步驟:a. 整理給定的濾波器設計要求
    發表于 10-30 13:34 ?5812次閱讀
    <b class='flag-5'>數字濾波器</b>的設計實驗

    什么是數字濾波器

    什么是數字濾波器 數字濾波器(digital filter)是由數字乘法器、加法器
    發表于 06-30 12:37 ?4002次閱讀
    什么是<b class='flag-5'>數字濾波器</b>

    數字濾波器,數字濾波器原理是什么?

    數字濾波器,數字濾波器原理是什么? 在信號處理領域中,對于信號處理的實時性、快速性的要求越來越高。而在許多信息處理過程中
    發表于 03-24 14:06 ?2.9w次閱讀

    數字濾波器的MATLAB與DSP上設計實現

    數字濾波器的MATLAB與DSP上設計實現 概述:以窗函數法設計線性相位FIR數字濾波器為例,介紹用MATLAB工具軟件設計數字濾波器的方法和在定點DSP
    發表于 04-12 09:32 ?1900次閱讀
    <b class='flag-5'>數字濾波器</b>的MATLAB與DSP上設計<b class='flag-5'>實現</b>

    基于Matlab/Simulink的FIR數字濾波器的設計與實現

    基于Matlab/Simulink的FIR數字濾波器的設計與實現
    發表于 01-15 15:16 ?39次下載

    基于matlab的數字濾波器的設計及數字濾波器基本結構

    本文主要介紹了基于matlab的數字濾波器的設計及數字濾波器基本結構。
    發表于 06-05 08:00 ?27次下載

    基于LabVIEW的數字濾波器設計過程

    通常,要設計數字濾波器,您需要依賴各種用于迭代設計,優化和最終實現的軟件工具。但是,使用數字濾波器設計工具包(基于NI的 LabVIEW Express 技術),您可以在整個濾波器設計
    的頭像 發表于 09-14 17:20 ?1.2w次閱讀
    基于LabVIEW的<b class='flag-5'>數字濾波器</b>設計過程

    如何使用FPGA實現IIR數字濾波器的設計

    數字濾波器、DSP器件或可編程邏輯器件(如FPGA)實現。因為,用FPGA實現數字濾波器具有實時性強、靈活性高、處理速度快以及小批量生產成本
    發表于 08-06 18:50 ?3次下載
    如何使用FPGA<b class='flag-5'>實現</b>IIR<b class='flag-5'>數字濾波器</b>的設計

    FIR數字濾波器設計

    數字濾波器的輸入輸出均為數字信號,信號通過數字濾波器后,可以改變頻率成分的相對比例或濾除某些頻率成分。數字濾波器可以分為IIR數字濾波器和F
    的頭像 發表于 04-05 09:47 ?5746次閱讀

    Moku:Go中的數字濾波器、FIR濾波器生成器和鎖相放大器

    數字濾波器、FIR濾波器生成器、鎖相放大器三個儀器功能。用戶現在可以使用數字濾波器來創建IIR濾波器,使用FIR濾波器生成器來設計FIR
    發表于 04-22 14:11 ?1147次閱讀
    <b class='flag-5'>Moku</b>:Go中的<b class='flag-5'>數字濾波器</b>、FIR<b class='flag-5'>濾波器</b>生成器和鎖相放大器

    數字濾波器是什么 數字濾波器的性能指標

      數字濾波器的原理基于數字信號處理技術和濾波器算法,通過對離散時間信號進行處理和濾波實現對信號頻率的選擇性衰減和增強。
    發表于 02-24 11:23 ?5740次閱讀
    博彩百家乐官网软件| 三亚市| 广州百家乐牌具公司| 百家乐官网真人娱乐城| 大西洋城娱乐| 皇家国际娱乐| 百家乐出千赌具| 赌博百家乐官网赢钱方法| 网上百家乐有假的吗| 百家乐官网有多少种游戏| 大发888登陆器下载| 百家乐波音平台开户导航| 易球百家乐官网娱乐城| 壹贰博备用网址| 木星百家乐的玩法技巧和规则| 喜来登百家乐官网的玩法技巧和规则 | 凯斯百家乐的玩法技巧和规则| 游戏百家乐押金| 八大胜备用网址| 全讯网5532555| 百家乐秘诀| 免费百家乐官网预测工具| 博彩百家乐官网规则| 会东县| bet365 app| 合肥太阳城在哪| 百家乐牌路分析仪| 高级百家乐官网桌布| 新锦江百家乐官网娱乐场| 金百家乐官网博彩公司| 一二博国际| 百家乐五湖四海赌场娱乐网规则 | 百家乐官网开户送8彩金| 千亿国际| 大发888娱乐场下载 游戏平台| 可信百家乐的玩法技巧和规则| 广州百家乐官网赌场娱乐网规则 | 大发888娱乐城 建账号| 赌神网百家乐的玩法技巧和规则 | 百家乐官网软件l柳州| 贵州省|