4

Maxima コンピューター代数システムで正弦波項を持つ関数の振幅と位相をアルゴリズムで取得する方法を見つけようとしています。これは、定常状態にのみ適用されます (t -> 無限大および過渡現象が減衰するため)。たとえば、些細なケースは次のようになります。

f(t) = 1 / w * sin(w * t + theta) + exp(-a * t) + 8

この場合、ゲインは 1 / w になり、位相オフセットはシータになり、一時的な項 exp(-a * t) は無視されます。 a * t) -> 0 as t -> 無限. 「+ 8」という用語も無視します。これは単なる DC オフセットであるためです。エンジニアリングの授業で教えられた方法では、上記のような形式にするために、多くの経験則と退屈な方程式の再配置が必要であり、答えは見ただけで明らかです。

ゲインと位相遅延が存在すると仮定して、それを見つける一般的なアルゴリズム的方法を知っている人はいますか? ? Maximaで実装する可能性が高いですが、数学の観点から説明された一般的な回答をいただければ幸いです。

編集: 私の例から、wの観点から象徴的に答えが欲しいことは非常に明らかだと思いました。w は実際にはオメガであると想定されており、入力の周波数を表しています。私が本当に求めているのは、大量のヒューリスティックな手動式の再配置なしでゲイン項と位相項を生成する標準的な数学演算があるかどうかです。

4

4 に答える 4

7

象徴的ですか、それとも数値的ですか?

数値的には、フーリエ変換を実行したいと思います:

  • 予想される最大周波数の少なくとも 2 倍 (より正確な位相測定が必要な場合はさらに高い) で、少なくとも予想される最大波長の範囲で関数をサンプリングします。

  • フーリエ変換を実行します (FFT を検索すると、多くの例が表示されるはずです。私の検索では、maxima に fft 関数が組み込まれている可能性があることが示唆されています)。

  • これにより、関数の「周波数ドメイン」バージョンが得られます。大きさがその周波数の振幅であり、角度がその周波数成分の位相である一連の複素数値が得られます。あなたの場合、ピーク振幅の周波数を探したいようです

于 2009-09-19T19:42:39.787 に答える
1

ラプラス変換またはフーリエ変換のいずれかが役立つ場合があります。記号的にも数値的にも適用できます。しかし、一般的なアルゴリズム手法を作成できるかどうかはわかりません。通常、極がどこにあるかによってケースが異なります。

于 2009-09-19T20:24:24.457 に答える
1

これは理想的である場合とそうでない場合がありますが、波形を生成する関数で数学を実行できない (または関数が利用できない) と仮定しています-

周期よりも大幅に短い間隔で波をサンプリングします。これはおそらく困難です。波の周期がサンプリング間隔よりも大きいことを確実に知る必要がありますが、小さすぎたり、波の数サイクルを完了するのに永遠に時間がかかったりすることは望ましくありません。おそらく、最小値でサンプリングを開始し、値が許容可能な割合で変化するまで徐々に上げていくことができます。

これを行うと、波を X 軸の中心に移動し (平均値を減算または加算することによって)、1) 振幅を提供する最小/最大値と 2) X 切片を決定できます。限目。

于 2009-09-19T19:44:00.657 に答える
0

これについてしばらく考えた後、私はこれを自分で理解しました。なかなか面白いので載せておきます。仮定は次のとおりです。

  1. 信号は無期限に存在しているため、すべてが定常状態にあります。
  2. あなたの表現には 1 つの周波数しかありません。これは、非常に複雑な形式であっても、検査するだけで簡単に確認できます。たとえば、sin(w1 * t) + sin(w2 * t) を使用することはできません。そうしないと、機能しません。
  3. 周波数変数と時間変数の名前はわかっています。
  4. 適切なコンピューター代数システムと、それに付随するすべての標準関数が用意されています。

これらの仮定の下でのアルゴリズムは次のとおりです。

  1. ラプラス変換を取ります。実際には、これは些細なことです。このような問題に遭遇した場合、ほとんどの場合、答えはもともとラプラス領域にあり、最終的には時間領域に変換して正弦波で式を取得することになるからです。そうでない場合でも、まともな CAS にはすでに成熟したラプラス変換機能があります。
  2. sin(w*t) のラプラス変換で割ります。(周波数に w 、時間に t を使用していると仮定します)。これにより、伝達関数、つまり入力正弦波が乗算されるラプラス ドメイン定数が得られます。
  3. t -> 無限大、つまり無限の時間にわたって存在した信号の場合、ラプラス変数 s は i w に相当するため、s を i w に置き換えるだけで、周波数領域の伝達関数が得られます。つまり、フーリエ変換伝達関数の。
  4. 周波数 w の正弦波の場合、ゲインは伝達関数の複素絶対値です。(複素絶対値は、複素平面の原点からの複素数の距離、sqrt( realpart( my_number)^2 + imagpart( my_number)^2) です)。
  5. 位相オフセットは単に arctan( imaginarypart(transferFunction) / realpart( transferFunction)) です。
于 2009-09-20T22:46:35.903 に答える