ルックアップ テーブルの最悪誤差
関数ルックアップ テーブルの任意の点における誤差は、その点での理想関数と対応する Y 値との差分の絶対値であり、隣接するブレークポイント間を線形内挿することで求められます。ルックアップ テーブルの "最悪誤差"、すなわち "最大絶対誤差" は、ブレークポイントを含む区間内のすべての誤差の最大絶対値です。
たとえば、理想関数が平方根でルックアップ テーブルのブレークポイントが 0、0.25、および 1 の場合、ルックアップ テーブルの完全な実装では、最悪誤差は 1/8 = 0.125 で 1/16 = 0.0625 の点で発生します。実際には、固定小数点の量子化や他の要因に応じて、誤差は大きくなる可能性があります。
次の節では、関数 fixpt_look1_func_plot
を使用して平方根関数に対するルックアップ テーブルの最悪誤差を見つける方法を示します。
平方根関数の近似
この例は、関数 fixpt_look1_func_plot
を使用して、ブレークポイントが 0、0.25、および 1 にある単純なルックアップ テーブルの最大絶対誤差を見つける方法を示します。ブレークポイントの平方根を使用して見つけられるルックアップ テーブルの対応する Y データ点は 0、0.5、および 1 です。
関数 fixpt_look1_func_plot
を使用するには、最初にパラメーターを定義する必要があります。これを行うには、MATLAB プロンプトで以下のように入力します。
funcstr = 'sqrt(x)'; % Define the square root function xdata = [0;.25;1]; % Set the breakpoints ydata = sqrt(xdata); % Find the square root of the breakpoints xmin = 0; % Set the minimum breakpoint xmax = 1; % Set the maximum breakpoint xdt = ufix(16); % Set the x data type xscale = 2^-16; % Set the x data scaling ydt = sfix(16); % Set the y data type yscale = 2^-14; % Set the y data scaling rndmeth = 'Floor'; % Set the rounding method
ルックアップ テーブルの最悪誤差および誤差のプロットを取得するには、以下を入力します。
errworst = fixpt_look1_func_plot(xdata,ydata,funcstr, ...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth)
errworst = 0.1250
上のボックス (出力) には、平方根関数のプロットが表示され、固定小数点ルックアップ近似のプロットがその下に表示されます。近似はブレークポイント間の線形内挿で求められます。下のボックス (絶対誤差) には、0 ~ 1 の区間内のすべての点の誤差が表示されます。最大絶対誤差は 0.0625 で発生していることに注意してください。ブレークポイントの誤差は 0 です。