sinc関数
#DSP #信号処理 #数学
sinc関数は、正弦関数$ \sin(x)を$ xで割ることでできる関数
https://ja.wikipedia.org/wiki/Sinc関数
定義
$ {\rm sinc}(x) = \frac{\sin(x)}{x}
$ x = 0のとき、ゼロ除算となってしまうため、しばしば$ {\rm sinc}(0) = 1と定義する
正規化sinc関数
信号処理等で使う場合は、変数に$ \piを掛ける
これを正規化sinc関数と呼び、標本化関数とも呼ぶらしい
信号処理文脈では、単にsinc関数と呼んでてもこっちだったりするので注意
$ {\rm sinc}(x) = \frac{\sin(\pi x)}{\pi x}
用法
信号処理においては、sinc補間やLanczos filterなどに用いられる
Desmos
https://gyazo.com/aae18f2aa6af2b58a2e9a3bd23313404
https://www.desmos.com/calculator/vobpwjaq6z
Code
code:js
function sinc(x) {
x *= Math.PI;
return x === 0.0 ? 1.0 : Math.sin(x) / x;
}
code:glsl
float sinc(float x) {
return x == 0.0 ? 1.0 : sin(PI * x) / PI / x;
}