[求助]椭圆的跟踪拟合
图中的小黑点表示数据点,这些数据点是角度编码器在转动过程中依次得到(可以理解为这些数据点表示转轴当时的角度位置),理想情况下编码器转动一圈得到的数据点应组成一个圆(圆心为原点,半径R)。但由于数据存在噪声,并且在转动过程中有直流偏差,而且x轴和y轴的增益大小不同,所以数据点形成如图所示的椭圆状。我的目的是找到一种算法能求出由数据点拟合出的最佳椭圆(即椭圆的长轴a,短轴b以及圆心位置)。
导师建议的思路:从一个单位圆开始(如图),根据不断得到的每个数据将单位圆进行调整(不断变化圆心位置及半径大小,每次的变化量都很小,所谓的跟踪算法),使得单位圆在编码器转动时不断逼近最佳椭圆,经过转动若干圈后逼近这个椭圆。数据点存储个数越少越好(因为片上存储器很小)。因为每一圈得到的数据值都不同,所以这种方法优点是不用关联很多数据点,可以实时跟踪数据点的变化,拟合出比较精确椭圆。如果有更好的解决方法也欢迎指教。
小弟之前从来没有类似的经验,拜托各位大哥大姐给点建议,先谢过!