2016-09-15 14 views
1

私はいくつかの加速度計のデータを扱っています。信号内のさまざまなイベントを分離するためにいくつかのウィンドウ処理を行うことが推奨されています。ほとんどのものとは異なり、ウィンドウ処理はMATLABではあまり記述されておらず、私はウィンドウイングの簡単な例(または示唆された読み込みとリンク)が実装されることを期待していました。また、データをセクションに分割し、個々のフレームを分析するのではなく、なぜウィンドウを表示するのか不思議でした。ありがとう。MATLABのウィンドウ信号

試験またはイベントの例を以下に示す:enter image description here

私の初期データは、このように見えた:上に示した単一スパイクが拡張されます。

また、MATLABを使用して最初のプロットをどのようにウィンドウに表示するか提案することもできます。

enter image description here

答えて

1

ウィンドウイングは、プログラミングよりも信号処理理論のレルムでより多くのですもう少し詳細に説明するので、おそらく価値は、FFTの出力を理解するときしかし、それは非常に重要です。

信号を切り捨てると(ブロック単位で処理するなど)、周波数ドメインをかなり驚くように変更しています。すべての周波数タームを「ウィンドウ」機能で畳み込む(つまり、塗りつぶす)ことになります。 truncate以外の操作を行うと、その関数はsin()/ sin()になります。これは、元の信号の周波数成分をスペクトル全体に広げ、支配的な成分があれば、それによってすべてが埋もれてしまいます。ブロックが短くなればなるほど、ウィンドウが周波数領域でより豊かになるほど悪化します。

Hamming、Hanning、Blackmanなどのウィンドウを使用したウィンドウ処理では、周波数領域のレスポンスが変更され、スミアが元の信号にさらにローカライズされます。結果として生じる周波数領域は結果としてはるかに明瞭である。

は、データ、xのブロックを分析するために、あなたは行うには https://cnx.org/contents/[email protected]/Spectrum-Analysis-Using-the-Diを参照してくださいあなたは、数学的分析のため plot(20*log10(abs(transform)))

で表示することができます

transform=fft(x.*hanning(length(x))); 

結果は複雑になりますが、どうあるべきかである

ウィンドウ操作の実践的な体験をお望みなら、https://cnx.org/contents/[email protected]/Spectrum-Analyzer-MATLAB-Exerc

+0

詳細@Daveありがとうございます。私が扱っているシグナルの中には、互いに独立したいくつかの短い離散イベントから構成されているものがあります。この場合、単一のイベントに信号を分割し、各イベントのFFTを計算するだけでOKです。 – Michael

+0

イベントが短い場合は、間違いなくデータをウィンドウする必要があります。短いシーケンスの結果、幅の広いウィンドウが生成され、切り捨てのみに起因する最悪のスミアリングが発生します。異なるウィンドウを試してみるのは簡単なことです。単に「ハミング」をより適切なものに置き換えてください。しかし、より強力な窓(強力なスペクトル成分により遠く離れた周波数でのスミアリング)が低いほど、主成分が広くなり、周波数領域の分解能が低下するので、少し注意する必要があります。あなたは何のために何かを得ることはありません! – Dave

+0

イベントは短いですが、信号はイベント間で完全にゼロになります。それは私たちがデータを記録したばかりの方法でした。イベントやテストごとに信号を記録するのではなく、次のテストを行う前にすべてのトランジェントが絶えず記録され、許可されました。私は元の質問に例を掲示します。 – Michael

関連する問題