
268
|
第九章
判別錯誤
上述使用的加法與乘法演算法有時候會造成錯誤,必須限制變數的大小,以及回傳錯誤
給呼叫的函數。讀者的責任之一就是理解上述 binary sacling 演算法的限制,對操作的數
字有深入的瞭解將能夠獲得最佳結果,如此才能夠處理溢位與驗證系統的穩定性。讀者
可以建立非常通用的函式庫處理各種可能發生的情況,但這可能會面臨實作所有浮點數
運算,並引進相同計算成本的風險。對於選用的演算法,必須知道變數範圍(最大與最
小值)及每個步驟需要處理的精確度。
讓我們回到溫度補償範例:
y = Ax2 + Bx + C
ADC 輸入值(
x
)是十位元,因此最小值是 0,最大值則是 1023,假設希望輸出值補償
後能在 0.0015 的浮點範圍之內(這包含在系統可容許誤差當中),補償係數
A
、
B
與
C
是
在工廠校正時設計。我們能夠控制製造程序,如果校正後無法落在容許範圍內就剔退產
品(通常這表示感應器有某種型式的損壞,並非為了方便程式撰寫。),參看表 9-3。
表 9-3 ADC 範例的參數限制
ADC 輸入值 A B C
最小值 0 –0.001 0.002 –2
最大值 1023 0.001 0.2 3
能夠使用方程式中最大參數值決定最大輸出值(以浮點數表示),最小值則稍稍複雜,因
為
A
可容許負值。最小的結果能夠透過
最大化
ADC,最小化
A
並將
B
、
C
參數設為零後
獲得,而非將所有參數採用最小值,以 0 作為最小 ADC 值。
首先必須確定能夠在 binary-scaled 浮點數值中存放所有可能的輸出值,透過試用各種不 ...