2017-08-07 16 views
2

私は複素平面に閉曲線を記述する点の集合を持っています。それはZ = [z_1, ..., z_N]となります。私はこの曲線を補間したいと思います。周期的なので、三角法の補間は(特にその精度が向上したため)自然な選択と思われました。 FFTを実行することによって、我々はフーリエ係数を得る:この時点で逆離散フーリエ変換を実行するときに、インデックスを連続変数として扱うことができないのはなぜですか?

F = fft(Z); 

を、我々は式バックZを得ることができる(1iは虚数単位であり、MATLABのインデックス付けは、1から始まるので、我々は、(k-1)*(n-1)を使用)

    N 
    Z(n) = (1/N) sum F(k)*exp(1i*2*pi*(k-1)*(n-1)/N), 1 <= n <= N. 
       k=1 

私の質問

nは整数でなければならない理由はいかなる理由がありますか?おそらく、nを1とNの間の任​​意の実数として扱うと、補間された曲線上でより多くの点が得られます。 これは本当ですか?たとえば、ポイント数を2倍にしたい場合、設定できない可能性があります

    N 
    Z_new(n) = (1/N) sum F(k)*exp(1i*2*pi*(k-1)*(n-1)/N), with n = 1, 1.5, 2, 2.5, ..., N-1, N-0.5, N 
       k=1 

もちろん、新しい点には補間誤差がありますが、それはかなり正確でしょうか? 私がこの質問をしている理由は、この方法が私のために働いていないからです。私がこれをしようとすると、意味をなさない点の文字化けが起こります。


(ちなみに、私はinterpft()コマンドを使用することができることを知っているが、私はz_az_b間のみ、例えば曲線の特定の領域にポイントを追加したいと思います)

答えて

3

ポイントは、nが整数であるときに、直交し、空間の基礎となる主な機能をいくつか持っていることです。 nが整数でない場合、式の指数関数は直交しません。したがって、これらの非直交基底に基づく関数の表現は、期待したほど意味がありません。

直交性の場合、例として次のものが表示されます(here)。確認できるように、2つのn_1n_2は整数ではなく、次の積分はもはやゼロではなく、直交していません。

enter image description here

+0

これは良い答えです。本当にありがとう! (私はフォローアップの質問が時々迷惑をかけることを知っていますが、実際に働くようにここでやろうとしているように、ポイントを追加する方法を提案できますか? – Alex

+0

答えははいです。ポイントを追加して、本質的にこれらの離散的な周波数で補間することができます。その形式で書くことができるノードがあれば(つまり、何らかの方法で一様に配置されている) 'czt'関数をチェックしてください。さもなければ、あなたが探しているものはおそらく非一様なFFTでしょう。 – CKT

関連する問題