• 締切済み

hilbert(ヒルベルト)変換について教えてください.

こんにちは. ある時系列実験データ(f0[Hz]の周波数成分の振幅が周期的に変化する信号にノイズが含まれている)の包絡線を求めるために,hilbert変換を用いています.しかし,求めた信号をスペクトル解析するとf0[Hz]や1/2*f0[Hz],2*f0[Hz]などが含まれます.ヒルベルト変換によって,このような問題が生じるのでしょうか? それとも,他に原因があるのでしょうか. また,包絡線を求める良い方法がありましたらご紹介いただけないでしょうか. よろしくお願いします.

みんなの回答

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

これはAMラジオの検波と同じことをやりたいんですね。 ヒルベルト変換てのは要するに局所的に重み付き平均を作るわけですから、余計な周波数成分だって出ますよね。 w=2πf0 とおくと、データは p(t) = A(t) sin(wt+α) + noise(t) です。このときA(t)の帯域とf0とがかなり違っているのでない限り、包絡線そのものが定義できないでしょう。だから、A(t)はf0よりうんと低い周波数であると考えていいと思います。さらにノイズが小さくて、また信号A(t)や搬送周波数f0とはかけ離れた周波数帯域にあるんなら、データp(t)に対してフーリエ変換をやって、包絡線A(t)の帯域以外をカットしてやれば良い。逆に言えば、A(t)の帯域だけを取り出すband path filterを構成して、それをp(t)に畳み込み積分すれば良い訳です。もっと手抜きをするなら、安いラジオと同様、|p(t)|をtについて適当に平滑化(f0が消える程度)してやれば概ね|A(t)|が得られます。  欲しい結果の精度、データの帯域、ノイズのレベルによっては、処理の仕方を色々工夫しなくちゃダメでしょうね。

mixed_flow
質問者

補足

stomachman先生,回答ありがとうございます.御礼の返事が遅れまして申し訳ありません(メールがきませんでした,言い訳じみてますが). さて,さらに教えていただきたいのですが,人工的にパソコン上で作ったデータ(ノイズあり,無し)ではこのような成分は出ません.しかし,ファンクションジェネレータからの信号をAD変換してPCに取り込んだデータの場合,A(t)=constant.の場合でもf0Hzの成分が卓越します.これは,どのような影響が考えられますでしょうか. 余談ですが,実験で得ようとしているデータは位相遅れが生じると使えないので,フィルタは考えていません.時間変化をきれいに見せるために積算平均は使っていますが. お忙しい中大変恐縮ですが,アドバイスの程よろしくお願い致します.

関連するQ&A

  • hilbert(ヒルベルト)変換について教えてください.

    ヒルベルト変換を用いて,ある信号の包絡線を求めたいのですが,これは高周波ノイズが乗っていても問題ないのでしょうか?また,ノイズの影響等で,位相遅れが出るという事は考えられますか?よろしくお願い致します.

  • フーリエ変換による周波数解析についてなのですが

    フーリエ変換による周波数解析についてなのですが 時々刻々と微小な変動がおこる測定量をセンサを用いて測定し、AD変換したのちにマイコンに取り込んだとします。 しかし画面上に表示される測定値の変動が本当に現象によるものなのか、それともノイズによるものなのか分からず、フーリエ変換を行い、周波数解析を行おうとおもったのですが フーリエ変換によって求められるパワースペクトルは振幅の二乗ですよね? ノイズによる振幅と現象による振幅がほぼ同じくらいのときは フーリエ変換を行っても何もわからないのでしょうか?

  • フーリエ変換により得られる周波数スペクトルの単位

    離散フーリエ変換(デジタル信号に対して行う周波数解析)により得られる 周波数スペクトルの単位について教えて頂きたいと思い,質問させて頂きました. デジタル信号処理やフーリエ変換に関する書籍,またはホームページを調べてみますと 周波数スペクトルには ・振幅スペクトル ・位相スペクトル ・パワースペクトル ・パワースペクトル密度 というような様々な表現方法があることがわかりました. しかし,それぞれが持つ意味や単位がはっきりと書かれた書籍をみつけることができませんでした. 離散フーリエ変換の定義式やホームページを参考にして考えてみますと 周波数解析を行う対象の波形の縦軸の単位がVで,横軸の単位が秒であれば, 求められるスペクトルの単位は,以下のようになると考えております. しかし,確信がなく不安な気持ちです. ・振幅スペクトル [VまたはdB] ・位相スペクトル [rad] ・パワースペクトル [V^2またはdB] ・パワースペクトル密度 [(V^2)/Hz] もしスペクトルに関してご存知の方がいらっしゃいましたら, 教えて頂けると本当にうれしいです. 参考になるホームページや書籍等も教えて頂けると助かります. つたない文章ですが,どうぞよろしくお願い致します.

  • フーリエ変換のスペクトル

    フーリエ変換を勉強しても、なかなかわからないことが多くて困っています。現在EXCELのフーリエ解析ツールで変換して、パワースペクトルまで求められるようになっていますが、パワースペクトルがよくわかりません。 パワースペクトルは周波数領域の比みたいなものと勝手に認識しているのですが、例えばsin波の振幅を2倍するとピークのパワースペクトルはどうなるのか等、法則みないなものはありますか?実際に色々試しているのですが、よくわかりません。また、周波数0以外のデータの総和に何か法則がありそうなのですが、やはりよくわかりません。 1次元の周期成分を持つデータをフーリエ変換して、ピークが出るのですが、その値が何を示してるのかを上司に説明できるようになりたいので、アドバイスお願いします。

  • ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値に

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、正弦波の元の振幅値を正確に求めることは出来ません。 この例の場合、フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。 当方、数学についてはあまり詳しくないため、簡単に説明して頂けると幸いです。

  • 周波数解析について

    ある信号をFFTを用いて周波数解析をしているのですが、単純なことについて教えて下さい。 自分の中のイメージとしては、周波数解析とは、 ある波を一定の周波数ごとに分解して、ある周波数帯域にどれくらいの成分が含まれているかを検討する物だと思っています。 自分のイメージが正しければ、あることが疑問に浮かんでいます。 現在、ある信号を周波数解析する前段階として、エラー(人工産物的な要素)を除外しています。 方法としては、時系列の信号データを一定時間毎に区切ってFFTをかけると言う物です。 自分が解析したい、周波数帯域は1Hz~35Hzまでの帯域と考えています。 綺麗な信号ならば問題なのですが、先のようなエラーと言うかノイズが載っている信号に対して、35Hzのフィルターをかけるとノイズの部分がなくなりクリアーな波形が見られます。 自分の知識が少ないため、ノイズが見られる信号は破棄していましたが、考えてみれば、必要な部分は1Hz~35Hzなので、35Hz以上のノイズ(フィルターをかけてなくなる領域のノイズ)が乗っていても、自分が必要な周波数帯域での周波数解析には関係ないのではないだろうか?と考えています。 少々ややこしい内容の質問になりましたが、アドバイス宜しくお願いいたします。

  • フーリエ変換についてF(ω)

    フーリエ変換についてF(ω) 次の信号のフーリエ変換と振幅スペクトルを求めたいのですが、算出式、解答を教えていただけますでしょうか。 f(t)={(e^(-at))+(e^(-2at),t≧0      {0,t<0 上の信号のフーリエ変換F(ω)と振幅スペクトルをお願いいたします。

  • フーリエ変換 位相の範囲

    フーリエ変換の位相の範囲について質問です. ある信号をフーリエ変換すると 周波数スペクトルがわかります. 周波数スペクトルには振幅スペクトルと位相スペクトルがあって それぞれ 振幅スペクトル: Xn=√An^2+Bn^2 位相スペクトル:θn=arctanBn/An で表されることは理解できたのですが、 この場合、 θnがとる範囲は0~πですか? 考え方がよくわからないので説明も一緒にわかる方いらっしゃいましたら 教えてください. よろしくお願いいたします.

  • フーリエスペクトルの振幅について

    ある時間関数を離散フーリエ変換して得られるフーリエスペクトルの 振幅値について教えて下さい。 今想定している離散フーリエ変換の式は一般的なもので Σ(k=0~N-1) f(k)exp(-2πkni/N) を考えています。 また、離散フーリエ変換して得られるスペクトルは √(Re^2+Im^2) で計算します。 離散フーリエ変換を適用する関数を、 振幅1の直流、及び振幅1で周波数5[Hz]の正弦波とします。 (この2つの信号は別々の信号で合成されていません。) サンプリング周波数を20[Hz]とした場合、 サンプリングして得られるデータ列はそれぞれ、 直流: 「1, 1, 1, 1」 正弦波: 「0, 1, 0, -1」 となると想定されます。 (正弦波をサンプリングする場合は位相が関わってきますが、 今回は気にしないで下さい。) このデータ列に対して上記の離散フーリエ変換を適用した場合、 得られるフーリエスペクトルの振幅値はそれぞれ、 直流: 「4」(直流のフーリエスペクトルの振幅値値) 正弦波: 「2」(5[Hz]のフーリエスペクトルの振幅値) となります。 (データ点数は上の通り4点) ここで質問なのですが、 離散フーリエ変換して得られるスペクトルの振幅値から 元の関数の振幅値を求める場合、 フーリエスペクトルをサンプリングの総データ点数で割ることは 数学的に納得できます。 しかしこの例の場合、フーリエスペクトルを総データ点数で割ると、 直流: 「4 -> 1」 正弦波: 「2 -> 0.5」 となってしまい、直流は正しいのですが、 正弦波の元の振幅値を正確に求めることは出来ません。 フーリエスペクトルの振幅値から正弦波の振幅値を正しく求めるには、 「フーリエスペクトルの振幅値*2/データ点数」 としてやらなければいけません。 上記のことに関して、 なぜこのようになるのかを(2をかける理由を)教えて頂けないでしょうか。

  • フーリエ変換の最大周波数

    5kHzでAD変換した信号があり、解析したい成分は0~1kHzに含まれています。 上記の前提で、256点で128点オーバーラップしながらFFT処理を行った場合、FFTを行うデータ数をN、サンプリング間隔Δt(1/5kHz=0.0002sec)とした時、 分解能 Δf=1/N*Δt=19.53 最大周波数 Fmax=(N/2NΔt)-(1-Δf)=2480.47 という計算式をインターネット上で見つけました。つまり0~2480Hzまで20Hzごとのパワースペクトル時間変化が128点データが並ぶということになると思うのですが・・・・ 一方、最大周波数はFFTデータ数の半分だという記載も見つけました。すると、最大周波数は半分も128Hzだと思うのですが、どちらが正しいのでしょうか?