• 締切済み

フーリエ級数解析によって位相差から時間差を求めたい。

フーリエ級数解析によって位相差から時間差を求めたい。 異なる時間に発生する2つの信号S1,S2に対して,各々,フーリエ級数解析を行い,求められる各々の三角級数の位相差を時間差として求めたいと考えています。 フーリエ係数をAn,Bnとすると,各々の位相P1,P2は P1=atan(Bn1/An1) P2=atan(Bn2/An2) で求められると思います。 よって,位相差は, |P1-P2| で求められ,この位相差は角速度ラジアンで与えれるために時間(秒)に変換する必要があると解釈しています。 (今回は2πを3.2秒とする。) したがって,時間差は, time(秒)=(3.2*|P1-P2|)/2π で求められる。。。 と解釈しているのですが,理論値とは全く異なる値が求まります。 何が,いけないのかがわからずにおります。 詳細,ご教授いただければ,嬉しく思います。 よろしくお願いいたします。

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.6

#5です。少しどうして別の方式を考えたかについて追記します。 >任意の距離間にある検出器で,その上を任意の速度で走る微小物体を信号としてどれだけ正確に捉えることができるかについて検証しています あと少し実験の詳細イメージが分からないので誤った考え方をしているかも知れませんが、その場合はすみません。 主として周期信号の解析に使用されるフーリエ級数解析よりも、相関信号解析の考え方が適しているのではと考えたわけです。 先ず信号のサンプリング周期を十分上げることが必要だと考えられます。 サンプリング周期と共に、一定周期の元パルス信号列を対象としているのであれば、複数個の元パルス信号が含まれるように測定します。 その上で必要であれば2個のサンプル信号列の波形が略同じピーク値、信号強度となるように一方の信号列に一定の係数を掛けます。 次に2個のサンプル信号列をkだけずらしながらその内積和:Skを求めます。 特定のSkの値が十分他と比べて大きいものがあり、時間分解能も十分であればそれで解析は終わりです。 Skがなだらかなピーク状を示せば、ピーク前後の3-5個程度のデータを取り、最小二乗法等を使って仮想ピーク点を求め、それから時間差を計算すれば良いのではと考えられます。

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.5

"信号 時間差 相関係数" としてサーチしてみました。 その中に次のような情報がありましたが、参考になりそうなので検討されたらいかがですか。 http://www.kochi-tech.ac.jp/library/ron/2007/2007info/full/1080351.pdf 音の到着時間差を用いた音源空間推定

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.4

> An,Bn に負の値が出てきた際には,単純に絶対値として扱っても構わないのか んなの、良いわけがないでしょう! 式中の変数に値を代入するときに、勝手に絶対値を取ってから代入したら、 式の値は変わります。フーリエ級数とか、この質問に限った話ではない。 数学以前の問題です。 > 今回の質問の内容は実験系の話で 実験値であれば、測定誤差も含むし、実験系固有の系統的誤差も含みます。 No.2 の式が、全ての n で正確に成り立つわけではない。 どの n を使ったら、よい δ が求まるか?という問題が派生しますね。 どのような系統誤差が入るかは、実験系の具体的な内容を考察するか、 実際の測定値を統計処理して検討することもできるかと思います。 測定誤差は、高周波のノイズとして現われるはずですから、 補足のように、もとのデータがパルス信号の場合には、S/N 比によっては、 データとの切り分けが難しいこともあるかもしれません。

penumbra
質問者

お礼

再度にわたる,ご回答を頂き,ありがとうございます。 An,Bnに関してはきちんと極座標上で考え,計算をしてみます。 他の方からのご回答では「実験系」であれば「フーリエ級数解析」ではなく「離散フーリエ変換」を適応させなくてはならないとご指摘的を頂きました。 私が無知なために,大変に迷走をしております。 > 実験値であれば、測定誤差も含むし、実験系固有の系統的誤差も含みます ご指摘の通りです。 今回の実験は,基礎的な検討ですので,0.1秒間隔のサンプリング各々の検出器で1周期(3.2秒)中にパルス様信号が1つだけ入ります。 得られたデータは全てExcel上で扱うために,サンプリングデータ数は2のべき乗の32個としています。 > どの n を使ったら、よい δ が求まるか?という問題が派生しますね。 この点は,個人的にも検討課題でおります。 これまで,フーリエ級数解析によって得られたS1とS2の1次波における三角級数の基線の値を基に,Excelのソルバーを利用し,2つの信号の位相差,すなわち時間差を求めておりました。これらの結果は,理論値に近い値が得られていたために手応えを感じております。 教科書には「nが大きいほど,早い値の変化を表すことになる」と記載されており,高速信号の検出精度に影響するものを予想をしております。 しかし,ここに至ってもなお,スマートな計算での位相差を出せていないのが現状です。。。

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.3

実験系なら級数展開じゃなくてDFTですね。 それじゃその方法は多分だめです。 観測する波が分からない状態で、ただ切りとってDFTをしただけでは 単純な式では位相差は出せません。 上記の式で位相が測れるのは観測対象の周波数が切りとった窓の長さできれいに切りとれる場合だけです。

penumbra
質問者

お礼

ご指摘,誠にありがとうございます。 教えて頂いたに関わらず,私が無知なために迷走をしております。 様々な教科書などを参考にしながら,検出器の応答データに対しExcel上でFFTをし,そこからフーリエ級数の定義式に基づき,An,Bnを求めて三角級数を描いておりました。 この方法は「誤った方法」ということになるんですね。。。困りました。 これまで,フーリエ級数解析によって得られたS1とS2の1次波における三角級数の基線の値を基に,Excelのソルバーを利用し,2つの信号の位相差,すなわち時間差を求めておりました。これらの結果は,理論値に近い値が得られていたために手応えを感じておりました。 離散フーリエ変換について勉強をし,再度,考え直してみます。 様々,ご対応頂き,本当にありがとうございます。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.2

S1 と S2 が、同じ信号の時刻をズラしたものであれば、 時差 δ と、S1, S2 のフーリエ係数 An1, Bn1, An2, Bn2 の間に、 An2 - i Bn2 = (An1 - i Bn1)(cos nδ + i sin nδ) という関係が成立しているハズです。 これが、各 n について成立していなければ、 S2 は、S1 の時刻をズラしたものではありません。 上記の式が成立していれば、cos nδ と sin nδ についての 連立一次方程式を解いて、 cos nδ = (An1 An2 - Bn1 Bn2) / (An1 An2 + Bn1 Bn2) からでも、 sin nδ = (An2 Bn1 + An1 Bn2) / (An1 An2 + Bn1 Bn2) からでも、 tan nδ = (An2 Bn1 + An1 Bn2) / (An1 An2 - Bn1 Bn2) からでも、δ を求めることができます。 n は、どの自然数を使っても同じことです。

penumbra
質問者

お礼

ご回答頂き,誠にありがとうございます。 今回の質問の内容は実験系の話で,任意の距離間にある検出器で,その上を任意の速度で走る微小物体を信号としてどれだけ正確に捉えることができるかについて検証しています。検出器で拾う信号にはボケ成分も含まれるために,フーリエ級数解析を採用しました。 これから,alice_44さんから教えて頂いた方法で検証をしてみようと思いますが,一つだけ改めて質問をさせてください。 An,Bnに負の値が出てきた際には,単純に絶対値として扱っても構わないのか,それとも極座標上できちんと考える必要があるのかを教えて頂けないでしょうか?

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.1

周期が3.2秒ならそれでいいと思います。 式的には 3.2(|P1-P2|/2π) の方が見ためいい気がしますけど。 そもそも、級数展開を求めるような式を相手にしてるのですか? そうだとすると、1周期以上ずれた場合は正解は求まらないですね。 そうではなくて実は窓かけしてフーリエ変換してるとかならそもそもこの考え方はきびしいです。 ちょっと問題を見ないとなんとも言えませんが、問題を捉え切れてない気がします。

penumbra
質問者

お礼

ご回答頂き,ありがとうございます。 今回の質問は実験系の話で,周期3.2secのなかに必ず2つの信号が入力されます。 ご指摘の通り,私自身,不慣れなためフーリエ級数解析自体を捉え切れていない感は否めません。 これまでは,フーリエ級数解析によって得られる1次波における各々の三角級数の基線を求め,その基線の値をexcelで計算をして時間差を求めていましたが,あまりにもスマートではないので,計算で求めたいと考えました。 k_kotaさんによるご回答では,私の考え方に誤りは無さそうな感がします。 他の方のご回答も参考にして,悩んでみます。

関連するQ&A