質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

616閲覧

1[s](1000個のデータごとの)間の平均パワー周波数を算出したい

k1ppa

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/10/27 08:38

###所望の出力
・筋電図(サンプリング周波数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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問