前提・実現したいこと
周期的に変化するグラフをフーリエ変換したい
発生している問題・エラーメッセージ
TypeError: only size-1 arrays can be converted to Python scalars
該当のソースコード
Python3
1import numpy as np 2from scipy import fftpack 3import matplotlib.pyplot as plt 4import pylab as plb 5 6x = np.arange(750, 950.1, 0.4) 7y = np.load('dac_0p4MHz_ampl_list.npy') 8 9plb.figure(figsize=(12,8)) 10plt.plot(x, y, marker='', linewidth=1) 11plt.xlabel('Frequency') 12plt.ylabel('Amplitude') 13plt.grid(linestyle=':') 14plt.show() 15 16yf = fftpack.fft(y)/(len(x)/2) 17freq = fftpack.fftfreq(len(x), 1) 18 19fs = 0.05 20yf2 = np.copy(yf) 21yf2[(freq > fs)] = 0 22yf2[(freq < 0.02)] = 0 23 24y2 = np.real(fftpack.ifft(yf2)*len(x)) 25 26plt.rcParams['font.family'] = 'Times New Roman' 27 28plb.figure(figsize=(12,12)) 29plt.figure(1) 30 31plt.subplot(311) 32plt.plot(freq[1:int(len(x)/2)], np.abs(yf[1:int(x)/2])) <= ここでエラーが発生する。 33plt.xlabel('Frequency[Hz]') # Hz? 34plt.ylabel('Amplitude') 35plt.axis('tight')
試したこと
以前同じような解析をやっていたので、その時のコードの細かい部分を変更して作ったのが上記のコードです。
何度も元コードと違いが無いかを検討しましたが、大きな間違いなどはありませんでした。
補足情報(FW/ツールのバージョンなど)
python (3.6.1)
Anaconda (4.4.0)
numpy (1.14.3)
scipy (0.19.0)
matplotlib (2.0.2)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/21 11:30