2017-09-01 154 views
2

は、私はそれらの間の位相差と時間的に周期的である二つの信号リサージュ図形の面積を計算するアルゴリズムはありますか?

V = V(t) and U = U(t) 

の測定値を有すると仮定する。グラフの中でお互いにプロットすると、彼らはリサジュー図を形成し、その内部の面積を計算したいと思います。

このような計算のアルゴリズムはありますか?

私はPythonを使用してこの問題を解決したいと思います。しかし、それを行うための言語やアルゴリズムの応答は非常に高く評価されます。 V及びU信号の

例は次のように式を使用して生成することができる。

V(t) = V0*sin(2*pi*t) ; U(t) = U0*sin(2*pi*t + delta) 

図1 V0=10, U0=5, t=np.arange(0.0,2.0,0.01)delta = pi/5ためt VS V,Uのグラフを示します。

img1

図2は、対応するリサージュ図形VUを示しています。

img2

これは、より一般的な質問の具体的な問題である:離散(x_i,y_i)データセットで得られた、閉じたパスの積分を計算する方法は?自己交差曲線下の実領域が何であるか - -

+0

を。一般的な状況では、点を極角でソートし、隣接する点の各ペアと原点によって形成される三角形の領域を加算する必要があります – meowgoesthedog

+3

リサジュー図形の面積を求めている場合は、ちょうどあなたがこのような曲線のためのエリアによって意味するのですか?https://en.m.wikipedia.org/wiki/Lissajous_curve#/media/File%3ALissajous_curve_5by4.svg – algrid

+0

はい@アルグリッド、これは何の領域ですか?一種のリサージュ曲線(私の推測では、外側の輪郭が領域を定義しているということです)。しかし、同じ周波数(私が尋ねたもの)でVとUの信号を使って生成されたカーブでは、この問題はありません。 –

答えて

2

は、デカルト座標で(閉じた状態)パラメトリック曲線の面積を見つけるには、あなたがグリーンの定理(4-th formula here

A = 1/2 * Abs(Integral[t=0..t=period] {(V(t) * U'(t) - V'(t) * U(t))dt}) 

を使用しますが、その解釈を思い出すことができ、曖昧です@algridは、通常のリサージュ図形の最も外側の曲線の面積のコメント

1

に気づいたように私はこれをしようとするだろう:

  1. 信号の検索期間

    ようTような見つける:間隔t=<0,T>上の座標Iは平均U,Vに等しい中心を極座標系を使用するt=<0,T>

    U(t) = U(t+T) 
    V(t) = V(t+T) 
    
  2. サンプルデータ及びそれをU0,V0と呼んでください。極座標でデータを変換して保存する:

    a(t)=atan2(V(t)-V0 , U(t)-U0) 
    r(t)=sqrt((U(t)-U0)^2 + (V(t)-V0)^2) 
    

    各角度の位置に最大半径の点のみを覚えておいてください。これは、重なり合ったセグメントとのポリライン交差を計算することによって、配列(角度の精度を制限する)または幾何学的な方法のいずれかで行うことができます。内側の部品を取り除く。

  3. 計算サンプリングデータ

    から領域So全体円を覆う各角度位置に対してパイ三角形を合計することによって面積を計算します。

これはエキゾチックな形状では機能しない可能性があります。

0

@MBoと@Spektre(およびコメントの@meowgoesthedog)による上記の両方の解決策はうまくいきます。君たちありがとう。

しかし、私は楕円リサジュー図形の面積Aを計算する別の方法を発見した:A = Pi*a*b式(abはそれぞれ、楕円のメジャーおよびマイナー半軸)を使用します。

ステップ:

1からV(又はU)信号の周期Tを探します。

2 - 時間間隔0<t<Tにおいて:

2.A - 楕円の中心を決定するために、V及びUV0U0)の平均値を計算します。

2.B - 使用ポイント(V0U0)からの距離r(t)を計算する: - :

a = max(r(t)); b = min(r(t)) 

4からAを計算用いab値を探す

r(t)=sqrt((U(t)-U0)^2 + (V(t)-V0)^2) 

3: A = Pi*a*b

リサージュ曲線は常にelli U、V信号が正弦波の場合のようなもので、同じ周波数のものがある場合はです。

V、U信号が三角形で同じ周波数の場合の解決策を提案します。この場合には、リサジュー図形が平行四辺形となり、その後、一方が|D||d|はそれぞれ、A = 2*|D|*|d|*sin(q)を使用して、その領域Aを計算することができ、メジャー及びマイナー半対角線平行四辺形のqの長さとの間の角度でありますベクターDおよびd

楕円形の場合は、手順1と2を繰り返します。 t1t2を入手し、座標(V(t1)=V1U(t1)=U1)及び(V(t2)=V2U(t2)=U2)を取得するためにそれらを使用する -

|D| = max(r(t)) = r(t1); |d| = min(r(t)) = r(t2) 

4' :

ステップ3では、私たちは持っています。次いでベクターDdのように書くことができる:

D=(V1,U1)-(V0,U0); d=(V2,U2)-(V0,U0) 

5' - Dd間の角度qを計算します。

6' - Aの計算を実行:あなたは 'T'は、極角に関連している状況で不可欠な極性の領域を使用することができますA = 2*|D|*|d|*sin(q)

関連する問題