アップサンプリングする際に、サンプリング周波数を上げるためにゼロ点を挿入する。

ゼロ点を挿入した信号のスペクトラムをみてみると、もとの信号のスペクトラムが繰り返えされている。

ゼロ点を2点追加
resample_interpolate
スペクトラムが繰り返される
resample_fft_after_interpolate

このことを考えてみる。

サンプリング周波数をTとし、周波数をk/Tとする信号S \[ \cos(2 \pi \frac{k}{T} n ) \] を考える。

信号Sのフーリエ変換は \[ F(k') = \sum_{n=-T/2} ^{T/2}S[n] \cos(2 \pi \frac{k'}{T} n) \] と表現できる

信号Sのサンプル点間にa個のゼロ点を挿入してみる。ゼロ点を挿入した信号をSmとする。信号Smは \[ \cos(2 \pi \frac{k}{aT} n ) \ \ n=0,1,...,aT-1\] とあらわされる。

信号Smはn=am (m=0,1,...,T-1)のときのみ値を持つので \[ \cos(2 \pi \frac{k}{aT} am ) \ \ m=0,1,...,T-1 \] と表現できる。整理すると、 \[ \cos(2 \pi \frac{k}{T} m ) \ \ m=0,1,...,T-1 \] となる。

さて、信号Smのフーリエ変換を考えると \[ F(k') = \sum_{n=-aT/2}^{aT/2} Sm[n] \cos(2 \pi \frac{k'}{aT} n) \] となる。ただ、信号Sm[n]はn=am(m=0,1,...,T-1)のときのみ値を持つので \[ F(k') = \sum_{m=-T/2}^{T/2} Sm[m] \cos(2 \pi \frac{k'}{T} m) \] と表現することもできる。

信号Smは \[ \cos(2 \pi \frac{k}{T} m )\] であったので、フーリエ変換の結果として値を持つのは \[ \cos(2 \pi \frac{k'}{T} m) \] において \[ 2 \pi \frac{k'}{T} \pm 2\pi l = \pm 2 \pi \frac{k}{T} \] が成り立つ$k'$の値のときとなる。

したがって \[k' = \pm k \pm T l \] となり、この$k'$がナイキスト周波数以下の範囲$0 \le k' \le \frac{aT}{2}$を満たす範囲内で値を持つことになる。

例えば、a=3のとき$k'=k,\frac{aT}{2}\pm k$で値を持つことになる。

つまり、3回スペクトラムが繰り返されることになる。