EEG低速ドリフト用の0.01 Hzのハイパスフィルター


10

非常に遅いドリフトを取り除くために、脳波(EEG)データセット用のハイパスフィルターを作成しようとしています。ただし、0.3 Hz前後の周波数は、これらのデータが提供する研究にとって非常に重要です。

私はMatlabを使って色々試しました。FIRフィルターでは、3 dBの非常に低いdB減衰で問題ないようです。たとえば、私はそれを使用しました:

h=fdesign.highpass('Fst,Fp,Ast,Ap',0.005,0.01,3,1,250); % i needed to cut 
d=design(h,'butter');
fvtool(d)

ただし、このフィルターはデータの開始時にDCドリフトを発生させるため、これらの最初のデータポイントを失いたくありません。

賢いアイデアはローパスフィルターを設計することであり、後で実際のデータから差し引くことです。私はそれを等リップルフィルターで行いましたが、それは機能しましたが、ベースラインリフトを残しました。これは分析プロトコルの次のステップなので、今は平均除去を実行したくありません。

助言がありますか?


1
では、問題はフィルターの初期応答にすぎませんか?この事前に記録されたデータの先頭にゼロを追加することはできますか、それともリアルタイムですか?
エンドリス、2011年

ローパスと減算のアプローチも、あなたが見ている問題の影響を受けます。問題は、すべてのフィルターに遅延があることです。希望するもののような鋭いカットオフを持つフィルターは、非常に長い遅延を持つ可能性があります。次に平均的な削除を行う理由がわかりません。表示したフィルターのDCゲインはゼロであるため、除去できるかなりの平均はありません(フィルターの遅延による出力開始時の過渡期間を除く)。
Jason R

回答:


6

t=0

NNNg(t)=g(t)=f(t)N 出力のサンプル、およびDCバンプがなくなるはずです。

t=0


6

filtfilt関数を見てください。ゼロ位相応答と完全なステップ応答を提供します。特に、filtfiltフィルタリングのステップ応答プロパティは問題を解決する場合があります。


0

私はrtollert氏が説明したトリックを実行し、それが私ができる最善だと思いました。

継続的なサンプリング/ハードウェア補正のルートをたどると、2008年3月のdsp Tips&TricksのRandy YatesとRichard Lyonsによって説明されているように、効率がDCブロッカーに興味を持つようになるかもしれません。



-1

絶対DC値は気にしないでしょ?

静的オフセットをデータに追加して、最初のデータポイントがゼロになるようにしませんか?

もちろん、すべてのデータポイントにオフセットを追加する必要がありますが、フィルターで発生している大きなステップ応答の問題は完全に回避されます。

事実上、フィルターはゼロに初期化されて起動します。したがって、データが始まると、フィルターはゼロからあなたが持っているあらゆるDCレベルへの大きな階段を見つけます。

階段を削除するには、オフセットを追加するだけです。


-1

平均的な除去を行わないのはなぜですか?「もう一度」それを行う後のステップは、効果がありません(ゼロを差し引くことになります)。


これはクエリの詳細であり、実際の質問に対する回答ではありません。質問は非常に古く、この時点では無意味に思われるかもしれませんが、それはある時点ではコメントとして適切だったかもしれません。
Sam Maloney
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.