python
1def ndft(time,U): 2 3 #データ数 4 data_N = time.shape[0] 5 print("time.shape",time.shape[0]) 6 Xk = np.zeros(data_N) 7 8 for k in range(data_N): 9 for n in range(data_N): 10 Xk_tmp = U[n]*np.exp(-1j*k*(2*np.pi/data_N)*n) 11 Xk[k] = Xk[k] + Xk_tmp 12 13 14 print(Xk.imag) 15 16 17 print("sss")
pythonでフーリエ変換のプログラムを作っています。
上記のようにプログラムを作成したところ
以下のような警告が出ました。
Casting complex values to real discards the imaginary part
U[n]np.exp(-1jk*(2*np.pi/data_N)*n)
で虚数部分が実数にキャストされているようです。
虚数が実数にキャストされないように計算をしたいのですが解決策など
ございますでしょうか。
補足
Xk_tmp = U[n]cmath.e*(-1jk(2*cmath.pi/data_N)*n)
と書き換えましたが駄目でした
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。