2008年12月8日 星期一

模擬RLS

什麼是RLS(Recursive Least Square),疊滯式的最小平方解。


這樣的好處是只需要計算當下的資料。並且會記住之前的資料。


老大寫了一個matlab,那我們就拿他的matlab轉成C 語言。


這是老大寫的m file。



這是我用C語言寫的矩陣相乘,說實在的,這只是其中一部分而已。轉起來還真麻煩。


還好配合MPLAB IDE 驗證,方便許多。


因為dsPIC,含有DSP的引擎,所以應該是可以用DSP 引擎來做才是。


改天有空再來用DSP內建的函式庫試試好了。


以下是用MATLAB和C語言計算過後找到的四個參數。看起來好像是一樣的。




放大來看,就可以看到有一點誤差。


為了加速程式方便寫作,所以所有變數宣告float。且皆使用浮點數運算,這樣一個回圈約1ms,在30MIPS下。



還沒有時間推導RLS的數學式,只是單純的把MATLAB 轉成C語言而已。


該準備星期六的電腦鼠走迷宮競賽,2008/12/13,剛好也是全國微電腦設計應用競賽的頒獎典禮,很可惜的時間上不允許,只好放棄上台領獎的機會了。


 


1 則留言: