Kayの推定量を使用するには、実際の値の信号をどのように前処理する必要がありますか?


21

20kHzでサンプリングされた信号サンプルが100,000あります。データは回転機械からの振動データであり、機械の回転速度に関連する重要なスペクトル成分が含まれています。x[n]

マシンの速度はサンプルの持続時間にわたって変化するため、FFTのピークを使用しても、探している結果は得られません。

したがって、短期推定を可能にするケイの推定器などの推定器を使用したいのですが、次の信号モデルを想定しています。

x[n]=Aexp(jωn+θ)+z[n]

ここで、 = 0 ... 99,999、は振幅、は推定される周波数、は初期オフセット、は複素ノイズです。A ω θ Z [ N ]nAωθz[n]

ただし、私の信号は実数値であり、次のようになります。

x[n]=Acos(ωn+θ)+zr[n]

ここで、とは実数値です。 AzrA

Kayの推定量を使用できるように、実数値の信号を複素数値の信号に変換するにはどうすればよいですか?

回答:


12

実信号を解析的表現に変換するツールは、ヒルベルト変換です。

以下の画像のように、信号がリアルタイムプレーンへの可変振幅のらせん回転の投影であるとします。

ここに画像の説明を入力してください

ソース

ヒルベルト変換は、実数部を指定すると、このような複素信号を生成します。これは線形変換であり、周波数領域で非常に簡単に実行できます。数学とその導出に深く入り込むことなく、信号のフーリエ変換虚数部は、実際の信号に掛けたもの(90度回転)と同じです。実信号の対称特性により、次の関係が得られます。j

すべての負の周波数成分が0になります。

DCコンポーネントは変わりません。

すべての正の周波数成分が倍増

たとえば、Matlabでは、次のことを行います。

a = rand(1,201);

hilbert_a = ifft( [ 1, 2*ones(1,100), zeros(1,100)] .* fft(a) );

または、単に組み込みhilbert関数を使用します。


申し訳ありませんが、ソースを引用すべきでした。ここ
フォノン

7

Kayの推定器を使用する場合は、目的の信号を「分析信号」表現に変換する必要があります。これにより、元の実数値信号から冗長な(負の)周波数が本質的に排除されます。このプロセスでは、信号の周波数領域表現の共役対称性が破壊されるため、結果は複雑になります。その後、必要な手法を適用できるようになります。

周波数追跡の問題には他のアプローチも利用できます。LMSアルゴリズムを適用して、瞬時周波数推定を実行することができます(Haykin、「Adaptive Filter Theory」、pp。244-246)。または、位相ロックループを使用して、時間の経過に伴う離散スペクトル成分を追跡することもできます。適切なソリューションは、最終的な目標と信号の特定の特性の関数です。


-1

関係ないはずです。モデル:

Aexp(jωn+θ)

は、信号処理と電気工学で非常に一般的なモデルであり、フェーザーとして知られています。基本的に、位相オフセットと振幅オフセットのある正弦波信号です。変換を行う必要はまったくありません。信号はKayの推定量に送るのに十分です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.