我正在JavaScript中使用物理,我有一個值指示「物理」世界中的聯繫人數量。這個值可以在0-6之間。問題是我波動很大。我想要的是過濾掉尖峯。說這個數字是3,然後在幾分之一秒內它變成零,然後又回到3。有關如何最好地做到這一點的任何想法?價值波動的阻尼,濾除峯值
0
A
回答
0
感謝@ Yves-Daoust指出我在中值過濾器的方向。
更多在這裏:https://www.youtube.com/watch?v=xFaddafLbcg
我做了一個類誰比誰有同樣的問題。 查看:
MedianFilter = function (size) {
var that = this;
that.vales = [];
that.sorted = [];
that.size = size || 7;
that.middelIndex = Math.round(that.size/2);
};
MedianFilter.prototype = {};
MedianFilter.prototype.input = function (val) {
var that = this;
//If it's empty fill it up
if (that.vales.length === 0) {
that.fill(val);
return val;
}
//Remove last
that.vales.shift();
//Add new value
that.vales.push(val);
//Sort
that.sorted = that.vales.slice(0);
that.sorted = that.sorted.sort(function (a, b) { return a - b; });
//return medium value
return that.sorted[that.middelIndex];
};
MedianFilter.prototype.fill = function (val) {
var that = this;
if (that.vales.length === 0) {
for (var i = 0; i < that.size; i++) {
that.vales.push(val);
}
}
};
//Usage
var toucheFix = new MedianFilter(10); //Number is size of array to get median value from, default 7
var val = toucheFix.input(touches); //Apply a median filter to this to make it more stable
3
一個很好的擬合可以是滑動窗口中的中值濾波器。考慮最後的N個值,其中N至少是下降持續時間的兩倍。然後你的濾波值就是N的中值。你可以永遠重複N個樣本移動一個位置。
由於您的值在很小的範圍內是離散的,所以中值算法將非常簡單。您保留七個可能值的直方圖,即七個計數器。每當你移動一個位置時,倒數最舊的值並計算新的值。中值是累計計數達到N/2。
會有一定的慣性,即真正的變化需要一定的時間才能得到確認,但這是不可避免的,因爲任何算法都需要確認永久性變化與臨時性下降。
+0
這是一個奇妙的解決方案。謝謝! – arpo
相關問題
- 1. 阻尼波的計算fft
- 2. MATLAB峯值(中發現的峯值,但想知道的價值)
- 3. pyplot/matplotlib(阻尼)振動/聲波圖
- 4. 電網濾波器doesn't工作價值
- 5. log4j.properties值濾波
- 6. 帶阻帶阻濾波器
- 7. Angularjs - falsy值濾波
- 8. 動態更改的Webkit濾波器值
- 9. 放大高阻值和低值阻尼器
- 10. 正常化音頻波形代碼實現(峯值,有效值)
- 11. 平行中值濾波器
- 12. 濾波基於日期值
- 13. 蟒濾波器無值
- 14. vue2無功濾波器值?
- 15. T-SQL函數駝峯值駝峯值
- 16. SonataAdminBundle model_type值濾波形式過濾
- 17. 剪切波峯和波谷
- 18. 擦除價值
- 19. 用SVG濾波器實現自適應閾值濾波器
- 20. matlab中中值濾波器與僞隨機濾波器
- 21. 如何將fir1阻帶濾波器轉換成多阻帶濾波器
- 22. C#濾波器雙[]的值的列表
- 23. Redis的CPU峯值
- 24. 掩蔽陣列的中值濾波器
- 25. 快速的7x7中值濾波2D C++
- 26. python中的環中值濾波器
- 27. 整數值的濾波器陣列
- 28. 彩色圖像的中值濾波器
- 29. python中的圓形中值濾波器
- 30. Django中使用的列值濾波
我們是否在談論隨着時間推移測量的數據?你能把它處理成一個數組嗎?也許最重要的是,關於它有多少數據? – Programmer1994
不,它不是一個數組,它是一個變化超時的變量,我使用請求幀動畫每秒鐘60次監視它。所以是的,這是關於隨着時間的推移測量的數據:) – arpo
你不能在中間放置一個過濾器方法,它會接收一系列的數字,然後刪除所有與平均值差別很大的值? – Programmer1994