1

私は、Matlab でさまざまな脳波の強度を見つけたい EEG デバイスからの一連のデータを持っています。EEGLAB を使用しようとしましたが、方法がよくわからなかったので、この時点では単に Matlab の dsp ツールボックスを使用しています。

背景: 15 エポック、長さ 4 秒。デバイスは 256 Hz でサンプリングし、264 個のセンサーがあるため、各エポックのセンサーごとに 1024 個のデータ ポイントがあります。つまり、生データは 264 x 1024 x 15 です。ベースラインは削除されます。各エポックのデータは、最終的に分類器のトレーニングに使用されるため、各エポックを個別に扱っています。後でさらに多くのデータ サンプルを考え出します。

とにかく、これまでに行ったことは、データにハン フィルターを適用し、フィルター処理されたデータに対して fft を実行することです。これで、周波数ドメインの情報が得られました。ただし、求めている値を取得するために、fft バケットのパワーから特定の周波数帯域 (アルファ 8-13 など) のパワーに移動する方法がよくわかりません。

答えが簡単であることはわかっていますが、必要な答えをオンラインで見つけることができないようです。その後、ウェーブレット変換の使用を推奨する特定の情報源によるさらなる混乱がありますか? ここに私がこれまでに持っている小さなコードがあります.入力「データ」は1つのエポック、つまり264 x 1024です.

% apply a hann window
siz = size(data);
hann_window = hann(siz(2));
hann_window = repmat(hann_window.', siz(1), 1);
hann_data = data.' * hann_window; 

% run fft
X = fft(hann_data, [], 2);
X_mag = abs(X);
X_mag = X_mag.';

助けてくれてありがとう!

4

1 に答える 1

0

あなたの質問を正しく理解している場合は、FFT出力をスケーリングして正しい電力を得たいと考えています。これを行うには、FFT に使用されるサンプル数で割る必要があります。

X_mag = abs(X)/length(hann_data); % This gives the correct power.

詳細については、この質問を参照してください。

コンテンツが正しくスケーリングされると、バンドの最初から最後までコンテンツを統合することにより、バンド (8 ~ 13 Hz など) のパワーを見つけることができます。離散値を扱っているので、それは離散積分です。概観すると、これはスペクトラム アナライザの分解能帯域幅を変更することと同じです。

于 2015-07-08T02:49:05.180 に答える