[LabVIEW for Arduino] 感測器的移動平均與加權平均結果

大家好,今天的小範例要告訴您如何使用 LabVIEW 的 shift register 來平滑 Arduino A0腳位上的光敏電阻值,使用的移動平均法與加權平均法取歷史的3筆資料來平均。

Front Panel 執行結果如下圖,菱形方格是光敏電阻原始值,紅線是移動平均法,黑線是加權平均法

所謂的移動平均法是指所有資料的比重相同,因此計算方式就是把所有資料相加之後除以總筆數就好。

換言之加權則代表每一筆資料的權重 (weight) 不同,您可以根據需求來調整。以本範例來說,時間愈近的資料權重愈高。

ave_03

程式畫面,上段是 Arduino 指令,可能看到我們要使用 A0 腳位上的光敏電阻值,與 Arduino IDE 不同的地方在於回傳值是 0~ 100 而非 0~1023。

中段是移動平均法,您可看到我們使用 shift register 抓到光敏電阻值的前三筆資料,相加之後除以4就好。下段是加權平均法,在此加權平均法採用 Formula node 讓畫面更簡潔,不然以下算式容易讓畫面雜亂喔

最後使用 Bundle 指令將這兩筆資料匯集以來之後丟給 Waveform chart 來顯示就可以了。

ave_01

Formula node 內容,可以看到愈久的資料權重就愈低 (0.4 > 0.3 > 0.2 >0.1),請注意權重相加需等於 1

ave_02

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *