最初と最後のサンプルであなたの正弦波はゼロだと思いますか?すべきではありません。最後のサンプルの後の次のサンプルがゼロになるように並べる必要があります。これにより、信号のコピーを次々とコピーして貼り付けることができ、サンプルが重複せずに連続して見えるようになります。たぶん、タイル張りのデスクトップの壁紙のようなものだと思うかもしれません。:)
Pythonの例については、https://gist.github.com/endolith/236567を参照してください。
# Sampling rate
fs = 128 # Hz
# Time is from 0 to 1 seconds, but leave off the endpoint, so that 1.0 seconds is the first sample of the *next* chunk
length = 1 # second
N = fs * length
t = linspace(0, length, num = N, endpoint = False)
# Generate a sinusoid at frequency f
f = 10 # Hz
a = cos(2 * pi * f * t)
# Use FFT to get the amplitude of the spectrum
ampl = 1/N * abs(fft(a))
信号の2つのコピーがエンドツーエンドでどのように組み合わさって連続波を作るかを確認します。
これが発生すると、FFTエネルギーは完全に1つのビンに含まれます。