256Hz でサンプリングされた 64 チャネルの EEG データがあり、各チャネルの時間周波数分析を実行してスペクトログラムをプロットしようとしています。
データは NumPy 3d 配列に格納されます。次元の 1 つは長さ 256 で、各要素には、サンプリングされたすべての時点で読み取ったマイクロボルトが含まれます (データの各チャネルの合計長は 1 秒です)。
明確にするために: 私の 3D アレイは 64 256 913 (電極 * 電圧 * 試行) です。試行は、実験の 1 回の試行にすぎません。そこで私がやりたいことは、1 回の試行から 1 つの電極と 1D 電圧ベクトル全体を取り出し、時間-周波数スペクトログラムを作成することです。たとえば、 data[0,:,0] からスペクトログラム プロットを作成したいとします。
各電極について、y 軸が周波数、x 軸が時間、色/強度が電力であるプロットが必要です
私はpythonでこれを使ってみました:
from matplotlib.pyplot import specgram
#data = np.random.rand(256)
specgram(data, NFFT=256, Fs=256)
これにより、次のようなものが得られます。
すぐに、軸の範囲が正しくないため、これは正しくないように見えます
さらに、すべての EEG チャネルに対して同じコードを実行すると、すべてのデータに対して、まったく同じプロットが得られます (データがそれぞれ異なることを確認したにもかかわらず)。
私は信号処理にかなり慣れていません。データの配置方法または関数の使用方法のいずれかで間違っていた場所はありますか?