信号 (サウンド サンプル) をあるサンプリング レートからより高いサンプリング レートにリサンプリングしようとしています。残念ながら、何らかの「エイリアシング」が発生しているように見えるため、何らかのフィルターが必要であり、私はフィルターに精通していません。これが私が思いついたものです:
int i, j, a, b, z;
a = 44100;
b = 8363;
// upsample by a
for(i = z = 0; i < samplen; i++)
for(j = 0; j < a; j++)
cbuf[z++] = sampdata[i];
// some filter goes here???
// downsample by b
for(j = i = 0; i < z; i += b)
buf[j++] = cbuf[i];
新しいサンプルはオリジナルに非常に似ていますが、何らかのノイズがあります。追加する必要があるフィルターと、できればそのフィルターに関連するコードを教えてください。
オリジナルサウンド: http://www.mediafire.com/?9gnga1in52d6t4x リサンプリングサウンド: http://www.mediafire.com/?x34h7ggk8n9k8z1