1樓:namespacE
好問題。
最近在寫stm32的程式,對乙個陀螺儀的讀數結果進行多次測量取平均來減小誤差。眾所周知stm32的浮點運算效能是十分拉垮的,所以樓上用sin和cos的方法看似很有效,實則增大了很多運算量。
但是如果使用一些固定的純算術演算法,好像總能構造出反例讓平均值的計算出問題。
所以我重買了乙個內建了硬體卡爾曼濾波的陀螺儀
當然除了鈔能力以外,解決這個問題也是有純算數方法解決的。
解決問題的關鍵就在於讓參與計算的各個角度之間的差都不要超過180度。最簡單的方法是將所有的角度的【數值】通過加減360的方法挪到離第乙個角度±180的範圍之內,這樣就可以隨便取平均了。
當然最後結果有可能超出360,對360取模就好了。
例如:355,0,5,10
先變成355,360,365,370
然後平均362.5
最後對360取模得出平均角度2.5度。
再例如:5,0,355,350
先變成5,0,-5,-10
然後平均-2.5
最後對360取模得平均角度357.5度。
美滋滋補充:這麼應用還是有乙個前提的,就是這些角度的測量值在空間上都比較相近。如果一會測0度一會測180度,那平均值到底是90度還是-90度呢?
所以資料太離譜的話肯定沒法求,不管什麼演算法都沒法求的
2樓:桃子
可以圓中的角度想象成乙個向量 x=(cosα,sinα),然後用平面向量的方式解決這個問題。
具體做法,參考以下部落格,共同進步
角度的均值與標準差(circular data/ directional statistics)
3樓:yuan
樓上的方法對於我提出的特例是可以的,但是通用的卻不行。
我的做法是把180-360之間的數移到-180-0。原來的0-180剛好和-180-0形成對稱的區間,然後相加求和平均,結果如果是負值就再+360。但是在180附近不行
求解釋隨機變數的算術平均值的期望和期望的關係?
Moore Donnely 如果隨機變數滿足某些條件使得大數律成立,那麼你產生很多很多iid的隨機數,這些隨機數的算術平均值會和分布的期望很接近 當n趨於無窮時,算術均值在某種意義下趨於期望 就以拋硬幣為例,你拋一枚均勻的硬幣,當正面朝上時就記為1,反之記為0。那你每拋一次硬幣就相當於產生了乙個服從...
僅以鍛鍊身體的角度看,跳繩和跑步一樣嗎?
歲月忽已暮 看自己的喜好了,看自己到底是喜歡跑步呢還是跳繩呢兩個的感覺是不一樣的 跳繩的話略微帶了一點無氧,如果是一直跳下去的話還是比較累的。但是說堅持的話,每天這個身體的耐力也是會提公升的 跑步的話是一項有氧運動,我個人的話是比較喜歡的。尤其是速度慢一點,非常舒服是一種享受 哦哦 堅持長距離跑,能...
收銀和出納是一樣的嗎?
21世紀富女 完全不一樣。現在出納的工作內容 單位收付款 對公收付款是有點小要求的,網銀匯款理由什麼時候該寫,什麼時候不該寫,寫什麼 發票開具 普票 專票 根據合同怎樣開?承兌匯票接觸過嗎?銀行承兌匯票,商業承兌匯票。能要不能要承兌匯票,怎麼貼現?甚至有的出納賬務處理,是你完全接觸不到的,也是不考證...