首頁(yè)  技術(shù)文章  使用Moku自定義實(shí)時(shí)數(shù)字濾波器實(shí)現(xiàn)降噪與去尖峰

使用Moku自定義實(shí)時(shí)數(shù)字濾波器實(shí)現(xiàn)降噪與去尖峰

發(fā)布時(shí)間:2023-12-28 11:22:36 瀏覽量:2523 作者:Gible

摘要

在本應(yīng)用筆記中石挂,我們利用Moku云編譯博助,通過(guò)VHDL進(jìn)行可自定義的編程,來(lái)解釋常用的移動(dòng)平均濾波器的開(kāi)發(fā)痹愚,并通過(guò)多儀器并行功能對(duì)其性能進(jìn)行了測(cè)試富岳。

正文


使用Moku自定義實(shí)時(shí)數(shù)字濾波實(shí)現(xiàn)降噪與去尖峰


在本應(yīng)用筆記中,我們利用 Moku 云編譯和多儀器模式來(lái)解釋常用移動(dòng)平均濾波器的開(kāi)發(fā)拯腮。我們使用示波器和頻率響應(yīng)分析儀來(lái)檢測(cè)有限脈沖響應(yīng)(FIR)濾波器窖式。然后,我們使用Moku:Pro疾瓮、Moku:Lab或Moku:Go設(shè)備開(kāi)發(fā)脖镀、部署和檢測(cè)五點(diǎn)中值濾波器。以這種方式組合線(xiàn)性和非線(xiàn)性濾波器狼电,可用于抑制許多控制或傳感應(yīng)用中的尖峰并降低噪聲。


Moku云編譯


Moku云編譯(Moku Cloud Compile, MCC)是Liquid Instruments的一項(xiàng)功能弦蹂,可讓您快速編譯自定義硬件描述語(yǔ)言(HDL)代碼并將其部署到Moku設(shè)備肩碟。MCC將Moku內(nèi)的FPGA開(kāi)放,可以自定義代碼凸椿,并允許特定的功能和特性削祈。我們提供一系列示例和支持來(lái)幫助您部署自定義功能。


移動(dòng)平均濾波器


移動(dòng)平均濾波器是n個(gè)連續(xù)信號(hào)樣本的平均值脑漫。方程為:



其中x(t)是離散時(shí)間序列輸入信號(hào)髓抑,y(t)是輸出信號(hào)。例如优幸,當(dāng)n = 4時(shí):



這種濾波器在降低信號(hào)噪聲方面具有非常有用的應(yīng)用吨拍。對(duì)于不相關(guān)的白噪聲,此移動(dòng)平均函數(shù)zui適合抑制噪聲并保留尖銳的階躍響應(yīng)网杆,但阻帶性能較差羹饰。在硬件中實(shí)現(xiàn)這一點(diǎn)僅需要加法器和一次除法,因此在硬件資源有限的情況下非常有用碳却。在硬件中队秩,除以任意數(shù)字在FPGA中并不簡(jiǎn)單。通常昼浦,該濾波器是通過(guò)確保n是2的冪(即n =2N)來(lái)實(shí)現(xiàn)的馍资,從而將除法減少為右移N個(gè)二進(jìn)制位。


圖1 二進(jìn)制按位移位示意圖


直接硬件實(shí)現(xiàn)如圖2所示关噪。


圖2 以一系列加法器實(shí)現(xiàn)移動(dòng)平均


此方案需要2N個(gè)加法器鸟蟹,硬件成本比較昂貴乌妙。深度加法器還可能需要時(shí)鐘寄存器來(lái)滿(mǎn)足合理的時(shí)序性能。我們可以通過(guò)以下方式改進(jìn)這一點(diǎn):



因此戏锹,圖3更概括地說(shuō)明了這一點(diǎn):


圖3 累加器實(shí)現(xiàn)


這說(shuō)明每個(gè)輸出取決于先前的輸出和當(dāng)前的輸入」诳瑁現(xiàn)在,我們已將移動(dòng)平均簡(jiǎn)化為一個(gè)累加器锦针、一個(gè)減法器和一個(gè)n級(jí)移位寄存器荠察,后者用于2N除法的按位右移。當(dāng)N > 4時(shí)奈搜,硬件明顯有了節(jié)省悉盆,限制因素是2N級(jí)移位寄存器。此外馋吗,不需要更多的時(shí)鐘元件來(lái)滿(mǎn)足時(shí)序限制焕盟。


VHDL實(shí)現(xiàn)


圖4顯示了VHDL實(shí)現(xiàn)的核心。這個(gè)過(guò)濾器的核心非常簡(jiǎn)單宏粤,只有12行代碼脚翘。p_moving_average是zui后N個(gè)樣本的時(shí)間歷史記錄,其中第8行在前面添加zui新的輸入并刪除zui舊的輸入绍哎。在第9行来农,累加器r_acc正在添加新的輸入,而第10行正在生成輸出所需的按位移位(除法器)崇堰。



編譯和部署


編譯該VHDL代碼非常便捷沃于。


首先,請(qǐng)?jiān)L問(wèn)compile.liquidinstruments.com海诲,上傳代碼繁莹,然后選擇構(gòu)建。Liquid Instruments服務(wù)器將生成一個(gè)文件或比特流特幔,定義FPGA上實(shí)現(xiàn)代碼所需的硬件配置咨演。對(duì)于Moku:Go和Moku:Lab,編譯大約需要5分鐘敬辣;對(duì)于 Moku:Pro雪标,由于 FPGA 的尺寸更大,該時(shí)間接近20分鐘溉跃。


此處提供了指導(dǎo)您完成編譯和部署的詳細(xì)說(shuō)明:

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


測(cè)試MCC移動(dòng)平均濾波器


為了測(cè)試該移動(dòng)平均濾波器村刨,我們使用Moku:Go的多儀器模式(MiM),如圖5所示撰茎。在此模式下嵌牺,我們可以部署兩臺(tái)采樣率為31.25 MHz的儀器。我們同樣可以在Moku:Pro,Moku:Lab上測(cè)試該濾波器逆粹。


插槽1插入MCC移動(dòng)平均濾波器募疮,插槽2插入示波器儀器。我們使用示波器觀察從輸入1輸入的的已濾波和未濾波信號(hào)僻弹。示波器還具有一個(gè)集成波形發(fā)生器阿浓,用于生成測(cè)試信號(hào)。在本例中蹋绽,我們使用示波器的內(nèi)置波形發(fā)生器生成2 kHz 的方波芭毙,并將其連接到輸出1。我們?cè)谕獠繉⑿盘?hào)衰減 60 dB卸耘,使其接近Moku:Go的本底噪聲退敦。然后我們將該信號(hào)路由回輸入1。


圖 5:多儀器模式下的濾波器測(cè)試設(shè)置


在圖6中蚣抗,我們可以在藍(lán)色軌跡中看到衰減后的噪聲方波侈百。紅色跡線(xiàn)顯示移動(dòng)平均器的輸出,具有明顯更干凈的方波翰铡。這是一種十分有效的降噪技術(shù)钝域,我們使用了MiM,并在一個(gè)插槽啟用了MCC功能锭魔。


現(xiàn)在我們轉(zhuǎn)為關(guān)注噪聲功率网梢,我們知道該平均濾波器將噪聲功率降低了2N倍;噪聲幅度降低了赂毯。我們的實(shí)現(xiàn)使用N=8,因此噪聲幅度應(yīng)減少到原始值的6.25% (1/16)拣宰。


因此党涕,這種zui簡(jiǎn)單的濾波器對(duì)于降低噪聲很有用淹遵。它的計(jì)算量也非常小扼仲,只需要累加器吕晌、減法器和按位移位导街。這意味著它可以以非常高的速度運(yùn)行拜轨,在 Moku:Pro 上為 312.5 MSa/s航棱,在 Moku:Go 上為 31.25 MSa/s骇两。


圖7顯示了 Moku:Go 輸入噪聲(藍(lán)色線(xiàn))和幅度分別為161.2 mV和9.162 mV的移動(dòng)平均濾波器信號(hào)(紅色線(xiàn))宴咧。由此我們可以看出朝群,濾波器后的噪聲幅度接近于原始噪聲的預(yù)期因子1/16燕耿,即 9.162161.2 = 0.057。該過(guò)濾器正在運(yùn)行并滿(mǎn)足我們的期望姜胖。


圖7 輸入噪聲與濾波后信號(hào)


頻率響應(yīng)


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


圖 8:頻率響應(yīng)分析儀設(shè)置


圖9顯示了MCC濾波器的頻率響應(yīng)結(jié)果蚜锨。與圖10(理想移動(dòng)平均濾波器的MATLAB圖)相比档插,我們發(fā)現(xiàn)移動(dòng)平均濾波器沒(méi)有提供特別好的阻帶衰減。


圖9 移動(dòng)平均濾波器的頻率響應(yīng)


圖10 理想移動(dòng)平均濾波器的MATLAB圖


中值濾波器


中值濾波器是一種非線(xiàn)性濾波器亚再,用于確定小移動(dòng)窗口的中值郭膛。輸入樣本通過(guò)窗口,輸出給定任何時(shí)間樣本的中值氛悬。移動(dòng)平均濾波器適合過(guò)濾均勻分布的隨機(jī)噪聲则剃,中值濾波器適合濾除非常短的尖峰或脈沖噪聲。雖然它經(jīng)常部署在圖像處理中圆雁,但它在更一般的信號(hào)處理中也很有用忍级。


通常,為窗口長(zhǎng)度選擇奇數(shù)個(gè)樣本:3伪朽、5或7個(gè)點(diǎn)轴咱。這意味著輸出只是值排序窗口的中間樣本。


VHDL實(shí)現(xiàn)


圖11顯示了VHDL五點(diǎn)中值函數(shù)的實(shí)現(xiàn)烈涮。在時(shí)鐘信號(hào)的每個(gè)上升沿朴肺,圖11中的函數(shù)將五個(gè)輸入樣本從低值到高值排序。這種排序發(fā)生在第12行到第20行的兩個(gè)嵌套“for”循環(huán)中坚洽。因此戈稿,中位數(shù)是排序窗口中的第三個(gè)樣本;這被分配給第22行的輸出讶舰。


圖 11:中值VHDL代碼


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


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


圖12 中值濾波器時(shí)域性能


由于中值濾波器的一個(gè)關(guān)鍵功能是消除脈沖噪聲敷存,因此我們還使用帶有附加脈沖的方波來(lái)檢查其性能。圖13顯示了具有前沿尖峰和低電平中途尖峰的方波(藍(lán)色線(xiàn))堪伍,濾波信號(hào)顯示中值濾波器去除尖峰后的方波(紅色線(xiàn))锚烦。


圖13 去除尖峰噪聲的中值


我們?cè)贛oku:Go上編譯并測(cè)試了這個(gè)中值濾波器,它的MCC時(shí)鐘速率為31.25 MHz帝雇。然而涮俄,在為Moku:Pro測(cè)試此示例時(shí),由于時(shí)鐘速率增加到312.5 MHz摊求,我們需要調(diào)整我們的示例禽拔。圖 11 中的實(shí)現(xiàn)使用帶有變量的嵌套 for 循環(huán)刘离。這合成了一個(gè)復(fù)雜的組合邏輯網(wǎng)絡(luò),其轉(zhuǎn)遞延遲(圖14)超過(guò)了Moku:Pro時(shí)鐘速率的3.2 ns周期睹栖。為了滿(mǎn)足時(shí)序要求硫惕,時(shí)鐘元件之間的邏輯轉(zhuǎn)遞延遲必須小于時(shí)鐘周期。


圖 14:通過(guò)邏輯的傳遞延遲


我們需要將大型邏輯塊分成由寄存器或時(shí)鐘元件分隔成段野来。在VHDL中恼除,我們通過(guò)使用信號(hào)而不是變量來(lái)實(shí)現(xiàn)這一點(diǎn)。在本例中曼氛,為了便于編碼豁辉,我們將邏輯分為五個(gè)階段。這意味著輸入到輸出的延遲約為五個(gè)時(shí)鐘周期舀患,這適合我們的應(yīng)用程序徽级。


圖15顯示了該五階段線(xiàn)性中值算法的一個(gè)階段×那常可以在此處下載的項(xiàng)目文件中找到完整的VHDL:

https://gitlab.com/liquidinstruments/cloud-compile/examples


圖15 VHDL代碼部分示例


Moku:Pro 中值濾波器測(cè)試


我們使用MiM中的Moku:Pro和任意波形發(fā)生器(AWG)來(lái)創(chuàng)建帶有噪聲尖峰的方波餐抢。然后,我們將AWG的輸出連接到MCC中值濾波器低匙,并使用示波器觀察效果旷痕。


此MiM設(shè)置如圖16所示。我們配置了AWG顽冶,如圖17所示欺抗。它的輸出將模擬信號(hào)驅(qū)動(dòng)到Moku:Pro的輸出 3,而該信號(hào)又通過(guò)同軸電纜環(huán)接到輸入3强重。中值濾波器部署在MCC中绞呈,并使用示波器來(lái)觀察性能。


圖16 Moku:Pro中值濾波器測(cè)試系統(tǒng)


圖17 任意波形發(fā)生器间景,帶有脈沖的方波


zui后报强,我們觀察中值濾波器的性能,如圖18所示拱燃。中值濾波器消除了尖峰,同時(shí)保留了方波的尖銳邊緣力惯。由于插入分級(jí)時(shí)鐘線(xiàn)程而導(dǎo)致的處理延遲導(dǎo)致大約44 ns的延遲碗誉。


圖 18:Moku:Pro中值濾波器現(xiàn)象


總結(jié)


在本應(yīng)用筆記中,我們討論了移動(dòng)平均濾波器和中值濾波器的實(shí)現(xiàn)父晶。為了實(shí)現(xiàn)這些哮缺,我們利用Moku Cloud Compile來(lái)構(gòu)建過(guò)濾器并將其部署到Moku:Go。然后我們修改了設(shè)計(jì)以確保與增加的Moku:Pro時(shí)鐘速率兼容甲喝。為了驗(yàn)證MCC濾波器尝苇,我們使用多儀器模式連接完全可定制的濾波器、示波器和任意波形發(fā)生器。這種實(shí)現(xiàn)方式可以有效降低噪聲糠溜,同時(shí)保留數(shù)字信號(hào)處理應(yīng)用中的信號(hào)邊緣淳玩。


本文的代碼可在此處下載:

https://gitlab.com/liquidinstruments/cloud-compile/examples


了解更多詳情,請(qǐng)?jiān)L問(wèn)上海昊量光電的官方網(wǎng)頁(yè):

http://www.wjjzl.com/three-level-333.html


相關(guān)文獻(xiàn):

https://www.liquidinstruments.com/blog/2022/12/15/reducing-noise-and-transients-with-custom-real-time-digital-filtering/


更多詳情請(qǐng)聯(lián)系昊量光電/歡迎直接聯(lián)系昊量光電

關(guān)于昊量光電:

上海昊量光電設(shè)備有限公司是光電產(chǎn)品專(zhuān)業(yè)代理商非竿,產(chǎn)品包括各類(lèi)激光器蜕着、光電調(diào)制器、光學(xué)測(cè)量設(shè)備红柱、光學(xué)元件等承匣,涉及應(yīng)用涵蓋了材料加工、光通訊锤悄、生物醫(yī)療韧骗、科學(xué)研究、國(guó)防零聚、量子光學(xué)袍暴、生物顯微、物聯(lián)傳感握牧、激光制造等容诬;可為客戶(hù)提供完整的設(shè)備安裝,培訓(xùn)沿腰,硬件開(kāi)發(fā)览徒,軟件開(kāi)發(fā),系統(tǒng)集成等服務(wù)颂龙。

您可以通過(guò)我們昊量光電的官方網(wǎng)站www.wjjzl.com了解更多的產(chǎn)品信息习蓬,或直接來(lái)電咨詢(xún)4006-888-532。

国产福利姬视频在线观看,国产原创激情在线观看网站,亚洲欧美日韩激色国产精品,日韩精品亚洲国产