- 締切済み
3次たたみ込み内挿法について…
この”教えて!goo”に載っていた「3次たたみ込み内挿法による補間」についてわからないことがあります. f(t) = sin(π*t)/(π*t) と言う標本化関数を近似するやり方をとっています.近似すると… 1-2|t|^2+|t|^3 (0≦|t|<1) ≒ 4-8|t|+5|t|^2-|t|^3 (1≦|t|<2) 0 (2≦|t|) となるみたいですが,近似はどのようにするのでしょうか?いろいろと画像処理の本を調べて見ても,近似をする途中が載っていないので,誰か教えてください.
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- stomachman
- ベストアンサー率57% (1014/1775)
区間の両端で値と一階微係数が合うようにしてあるんですね。 f(t)=sinc(πt) = (sin πt)/(πt) とすると f'(t)=(d/dt)sinc(πt) = (cos πt))/t-(sin πt)/(π t^2) 従って f(0)=1, f(1)=0, f'(0)=0, f'(1)=-1 です。これを満たす3次式g(t)=A+Bt+Ct^2+Dt^3が g(t)=1-2t^2+t^3 です。条件が4つあるから係数を4個持つ3次式が必要なのです。 h(t)=4-8|t|+5|t|^2-|t|^3 の方はsinc(πt)とあまり似てません。(excelなどで計算してみると良いです。) h(1) = f(1)=0, h(2)=f(2)=0, h'(1) = f'(1)= -1 は良いけれど、f'(2)=1/2 に対して、h'(2)=0です。 これは|t|>2を0で近似したいために、無理矢理h'(2)=0(滑らかに0に繋がる)を要請したものと考えられます。 3次式でもっと広い範囲を扱いたければ、n≧1において f(n)= 0, f(n+1)=0 f'(n)={(-1)^n}/n , f'(n+1)=-{(-1)^n}/(n+1) を使って、x=t-n, g(x)=A+Bx+Cx^2+Dx^3 を決定すればf(t)≒g(|t-n|)と近似できます。すなわち g'(x)=(d/dx)g(x) = B+2Cx+3Dx^2 g(0)=0, g(1)=0より、 g'(n)={(-1)^n}/n , g'(n+1)=-{(-1)^n}/(n+1) 従って、 A = 0 B={(-1)^n}/n C={(-1)^n}{-(n+2)/(n(n+1))} D={(-1)^n}{1/(n(n+1))} です。 なお、もっと高次の近似式を使える場合には、 sin πt = (πt) - {(πt)^3}/3! + {(πt)^5}/5! - {(πt)^7}/7! + ..... を使って、 f(t)=sinc(πt) =1 - {(πt)^2}/3! + {(πt)^4}/5! - {(πt)^6}/7! + ..... とすることもできます。(これもexcelなどでグラフに描いてみるとよく分かります) なおstomachmanは計算間違いの常習犯です。
お礼
す・すばらしすぎる…(感涙) 本当にどうもありがとうございます!! 研究をしているんですが,教授に聞かれて,求め方がぜんぜんわからずに困っていました。EXCELでもやってみます。ありがとうございました.