エリアシング

それでは、エリアシングのほとんどない波形を作ってみよう。

サンプリングレートの半分を「ナイキスト周波数」と呼ぶ。

サンプリングレートを十分高くすれば、ナイキスト周波数を超える高調波の振幅を十分小さくすることができる。サンプリングレートを16倍の128000Hzにあげてみる。

stacksize(1e7);
fs=128000;
l=fs*2;
n=0:l-1;
t=n / fs;
saw=modulo(n*440,fs)/fs - 0.5;
sawfft=fft(saw,-1);
plot2d(fs/l*n,abs(sawfft*2/l));

今度は高調波の折り返し成分がずっと少ない。

Q この音を劣化させないで8000Hzでサンプルするにはどうすればよいだろうか?

A ナイキスト周波数以上の周波数をカットすればよい。

実際にナイキスト周波数 8000/2 = 4000Hz以下の周波数をカットしてみよう。;

x2=convol(ffilt("lp",200,1/32,1/32),saw);
nn=0:16000-1;
x3=x2(nn*16+1);
savewave("sawlo.wav",x3,8000);

すると、以前より濁りのない鋸波の音になる。