什麼是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,剛好也是全國微電腦設計應用競賽的頒獎典禮,很可惜的時間上不允許,只好放棄上台領獎的機會了。
比起ATmel mega 128快多了!很棒!
回覆刪除