簡體   English   中英

RSS BLE 陣列值的移動平均值

[英]Moving Average for RSS BLE array value

我想根據下面的輸出為 BLE RSS 數組值實現移動平均算法。 RSS 值的窗口期為 10,使得;

B1(信標 1)將計算 RSS 的前 10 個值。 然后,它將計算接下來的 10 個值並排除第一個 RSS 值。 接下來,它將通過排除 RSS 的前兩個值來平均 RSS。 其他 Beacon 也是如此(最多 4 個信標)。 有誰知道這是怎么做到的嗎

                    TextView.setText("Major:" + b.getMajor() + "Minor:" + b.getMinor() + " RSS:" + b.getRssi());
                    Log.d("test", String.valueOf(BeaconRssWrtId.get("1")));
                    Log.d("test", String.valueOf(BeaconRssWrtId.get("2")));
                    Log.d("test", String.valueOf(BeaconRssWrtId.get("3")));
                    Log.d("test", String.valueOf(BeaconRssWrtId.get("4")));

輸出

D/測試:[-88.0, -85.0, -85.0, -84.0, -84.0, -84.0, -81.0, -81.0, -84.0, -84.0, -85.0, -85.0, -87.0, -87.0, -87.0, -86.0, -86.0, -84.0, -84.0, -84.0, -82.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0, -81.0 , -81.0, -81.0, -81.0, -81.0, -86.0, -86.0, -82.0, -82.0, -82.0, -82.0, -83.0, -78.0, -80.0, -84.0, -80.0, -79.0 77.0, -76.0, -74.0, -78.0, -80.0, -80.0, -81.0, -81.0, -83.0, -84.0, -86.0, -87.0, -84.0, -83.0, -82.0, -86.0, -86.0, -83.0 -84.0, -86.0, -89.0, -85.0, -85.0, -80.0, -79.0, -79.0, -79.0, -88.0, -85.0, -82.0, -86.0, -86.0, -84.0, -85.0, -85.0, -85.0 , -89.0, -86.0, -86.0, -82.0, -82.0, -79.0, -81.0, -82.0, -83.0, -83.0, -81.0, -81.0, -81.0, -79.0, -76.0, -83.0 82.0, -80.0, -80.0, -82.0, -86.0, -89.0, -90.0, -90.0, -90.0, -88.0, -81.0, -80.0, -82.0, -82.0, -82.0, -81.0, -82.0, -82.0 -79.0, -84.0, -78.0, -78.0, -78.0, -82.0, -79.0, -81.0, -83.0, -85.0, -81.0, -78.0, -78.0, -80.0, -80.0, -80.0, -80.0, -80.0 , -80.0, -85.0, -81.0, -82.0, -84.0, -83.0, -83.0, -83.0, -83.0, -89。 0, -89.0, -86.0, -86.0, -86.0, -86.0, -87.0, -87.0, -85.0, -85.0, -83.0, -85.0, -84.0] D/test: [-98.0, -98.0, - 94.0, -95.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -96.0, -100.0, -100.0 -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -101.0, -101.0, -101,10.0, -101,10.0. , -101.0, -101.0, -101.0, -101.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -100.0. 100.0, -100.0, -100.0, -100.0, -100.0, -100.0, -101.0, -100.0, -100.0, -100.0, -100.0] D/測試:[-101.0, -101.0, -101.0, -101.0, -101.0, -100.0 101.0, -101.0, -101.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -101,10.0, -101,10.0. -100.0, -102.0, -102.0, -102.0, -101.0] D/test: [-105.0, -105.0, -105.0, -105.0, -105.0, -105.0, -106.0, -106.6., -106.0, -106.0, -106.0, -106.0, -105.0 -106.0, -106.0, -106.0, -106.0, -105.0, -105.0, -105.0, -105.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0 , -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -104.0, -103.0, -103. 103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -199.0, -99.0, -99.0.0 -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0, -99.0 , -104.0, -102.0, -102.0, -102.0, -103.0, -103.0, -103.0, -103.0, -103.0, -103.0, -104.0, -104.0, -104.0, -104.0, -104. 104.0, -104.0, -104.0, -104.0] 進程 4370 終止。

 const mean = array => array.reduce((sum, v) => sum + v, 0) / array.length; const movingAverage = (array, period) => array.map((v, i) => i < period -1 ? undefined : mean(array.slice(i - period + 1, i + 1))); console.log(movingAverage([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)) // [undefined, undefined, 2, 3, 4, 5, 6, 7, 8]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM