MATLAB中,若干種捨入模式的簡單介紹

2021-08-18 14:21:27 字數 1017 閱讀 9542

在 fdatool 中發現在對濾波器的資料進行定點化時,可以選擇不同的 rounding mode 和 overflow mode,對於捨入模式,我以前只用過round  fix  floor  ceiling,但是這次發現預設的捨入模式是 nearest convergent ,沒有見過這種捨入模式,因此看了下幫助文件,對 convergent 捨入模式有了初步了解。以下即為幫助文件內相關部分的簡單翻譯,如果有不對的地方,還請大家指正。

在一些演算法的定點實現中,經常要用有限位寬的定點數去表示浮點數,因此就要用到不同的捨入模式round mode。此外還有將大位寬的資料截斷為小位寬的資料,此時也要用到不同的捨入模式round mode。

雖然在捨入過程中總會損失精度,但是不同的捨入模式還是會引入不同的資源消耗和精度誤差,為了給您提供在資源消耗和精度誤差之間權衡的靈活性,dsp system toolbox software 支援以下幾種捨入模式:

1. ceiling ,將計算結果向著正無窮的方向捨入到最近的整數;對應 ceil 函式。

2. convergent,將計算結果向著最近的整數捨入,如果出現1/2的情況,向著最近的偶數捨入;在dsp system toolbox中,這是 least biased 的捨入模式;對應 convergent 函式。

3. floor, 等效於 truncation ,將計算結果向著負無窮的方向捨入到最近的整數;對應 floor 函式。

4. nearest , 將計算結果向著最近的整數捨入,如果出現1/2的情況,向著正無窮的方向捨入到最近的整數;對應 nearest 函式。

5. round , 將計算結果向著最近的整數捨入,如果出現1/2的情況,對於正數,向著正無窮的方向捨入到最近的整數;對於負數,向著負無窮的方向捨入到最近的整數;對應 round函式。

6. ******st , 用在 simulink 中,有 simulink 根據情況判斷,自動進行捨入。

7. zero , 將計算結果向著0方向捨入,對應 fix 函式。

8. saturati

on  當輸出超範圍是,放置乙個有限的極值

BigDecimal運算以及8種捨入模式

bigdecimal是不可變 任意精度的有符號十進位制數。一般是用在大金額結算等對數值精度要求較高的領域 因為浮點數如float double表示小數的精確度不足,僅可以處理16位有效數字 但其運算效能低於double float等,在一般的工程領域數值計算也不會隨便用bigdecimal。本文將介...

BigDecimal中八種捨入方式

1 round up 始終對非捨棄部分前面的數字加1。0.1203456789,當精度為3的時候,按照round up模式,結果是0.121 0.1203456789,當精度為3的時候,按照round up模式,結果是 0.121 注意 0.1891,當精度為3的時候,按照round up模式,結果...

BigDecimal 的捨入模式

eg bigdecimal x1b new bigdecimal 54d bigdecimal x2b new bigdecimal 20d double x x1b.add x2b divide new bigdecimal 2 6,roundingmode.half up doublevalue...