フーリエ変換(numpy)

In [9]:
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

Fs = 150                        # サンプリングレート(回数)
Ts = 1.0/Fs                     # サンプリング時間間隔
t = np.arange(0, 1, Ts)         # 時刻データ(ベクトル)
f = 5                           # 周波数(5Hz)
y = np.sin(2 * np.pi * f * t)  # sin(2Πft)

plt.subplot(2,1,1)             #入力波形の表示
plt.plot(t,y,'k-')
plt.xlabel('time')
plt.ylabel('amplitude')

n = len(y)                       # 信号の総サンプルリング数
k = np.arange(n)                 # 1,2,3,...,(n-1)
T = n/Fs
frq = k/T                       # 周波数レンジ(two side)
freq = frq[range(n/2)]          # 周波数レンジ(one side)

Y = np.fft.fft(y)/n             # FFT & 正規化
Y = Y[range(n/2)]

plt.subplot(2,1,2)              #出力波形の表示(FFT結果)
plt.plot(freq, abs(Y), 'r-')
plt.xlabel('freq (Hz)')
plt.ylabel('|Y(freq)|')

plt.show()  
inserted by FC2 system