前提・実現したいこと
超初心者です。
csvファイルの値をPythonで読みこんでFFT処理がしたいです。
発生している問題・エラーメッセージ
csvファイルの中は
1 591
2 591
3 587
4 597
:
:
1024 497
といったように左の列にデータ数、右の列に計測した値(加速度)が入っています。
これらの値を下記コードのようにpandasライブラリを用いて読み込むところまでは上手くいきました。print(df)として出力を見てみると
正しく出力されます。また、波形を下図のようにプロットすることもできました。
しかし、F=np.fft.fft(df)として、フーリエ変換後の波形を表示させても形が全く変わらず、同じ波形が表示されてしまいます。
実際にprint(F)としてFの値を確認すると正しくフーリエ変換されていませんでした。
591+0j
591+0j
:
:
といったように実部にcsvに書かれている値が付いただけの結果になりました。
dfに入っている値から作られる波形を正しくフーリエ変換してくれるプログラムの書き方を教えていただきたいです。説明が下手で申し訳ございません。
該当のソースコード
import
1import matplotlib.pyplot as plt 2import csv 3import pandas as pd 4from scipy import signal 5 6N = 1024 # サンプル数 7df=pd.read_csv('test2.csv',names=['time','value']) 8df=df[['value']] 9print(df) 10F=np.fft.fft(df) 11print(F) 12F_abs=np.abs(F) 13 14plt.plot(F_abs) 15plt.xlabel('n') 16plt.ylabel('Signal') 17plt.show() 18 19コード
試したこと
リンク内容を参考にしながらコードを書きました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー