###所望の出力
・筋電図(サンプリング周波数1[kHz]をFFT解析し, 平均パワー周波数を算出したい
・その際, ある区間ごと(今回は1[s]ごと)の平均パワー周波数を算出したい
試したこと
・data_cut['group'] = [x // n for x in range(0,len(data_cut))]の処理で1000個毎に連番をつ
ける(現在の出力結果を参照)
・df.groupby()を用いて, FFTを行い平均パワー周波数を算出しようとした
分からないこと
df.groupby()を用いようと考えていますが, そこからどのように処理すればよいのかわからないです. ほとんど投げやり状態での質問になりますが, ご協力お願いいたします.
そもそものアプローチが間違っている場合もあると思いますので, その点に関してもご指摘頂きたいです.よろしくお願いいたします.
また, 疑問の点があれば質問内容の修正も致しますのでよろしくお願いいたします.
現在のコード
import
1import matplotlib.pyplot as plt 2import pandas as pd 3import csv 4 5FILE_PATH = './EMG01.txt' #サンプリング周波数1[kHz]の筋電データです 6HEADER_SIZE = 13 7n = 1000 8 9data = pd.read_table(FILE_PATH,skiprows = HEADER_SIZE, sep=',') 10data.columns = ["ch2", "ch3","ch5","NaN"] 11 12data_cut = data.iloc[4000:6000] #2[s]間のデータを抜き出しています 13 14data_cut['group'] = [x // n for x in range(0,len(data_cut))] 15 16dfg = data_cut.groupby('group').mean() #.mean になっていますが関係ありません 17 18print(data_cut) 19
現在の出力結果
ch2 ch3 ch5 NaN group
4000 -0.070 -0.001 0.098 NaN 0
4001 -0.036 -0.001 0.119 NaN 0
4002 -0.004 -0.001 0.080 NaN 0
4003 -0.004 -0.001 -0.118 NaN 0
4004 0.016 -0.001 -0.339 NaN 0
... ... ... ... ... ...
5995 0.037 -0.002 -0.047 NaN 1
5996 0.034 0.027 -0.024 NaN 1
5997 0.041 0.054 0.065 NaN 1
5998 0.057 0.030 0.011 NaN 1
5999 0.042 0.028 0.068 NaN 1
あなたの回答
tips
プレビュー