2011年4月28日木曜日

簡単な処理で、滑らかに信号を補間(内挿)したいとき。



世の中にはスプラインだとか色々あるんだけれども、実装が楽で滑らかに繋がる方法を見つけたのでメモ。


式の導出はhttp://www.empitsu.com/pdf/sgd.20080718.pdf に譲るとして、結論のみメモ


データがa,b,c,d,・・・・とあった時



(-a+9b+c9-d)/16



がbとcの間にある点の値です。同様に一ずつずらして計算していけば、cとdの間dとeの間・・・・と求まります。これで2倍のサンプリング点数に補間できます。


16倍はシフトで実装できますし、9倍も8倍+1と言う風に分解すればシフトと加算で実装できます。なので古いマイコンにやさしい実装ができます。


同様の処理を2回かければ4倍アップサンプリングもOKっす。


追記:16倍アップサンプリング例


16倍アップサンプリング例をおいておきますね。


https://picasaweb.google.com/lh/photo/fQMfMkMIUqsiwTFVudy8Kw?feat=directlink