私は複素平面に閉曲線を記述する点の集合を持っています。それは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_a
とz_b
間のみ、例えば曲線の特定の領域にポイントを追加したいと思います)
これは良い答えです。本当にありがとう! (私はフォローアップの質問が時々迷惑をかけることを知っていますが、実際に働くようにここでやろうとしているように、ポイントを追加する方法を提案できますか? – Alex
答えははいです。ポイントを追加して、本質的にこれらの離散的な周波数で補間することができます。その形式で書くことができるノードがあれば(つまり、何らかの方法で一様に配置されている) 'czt'関数をチェックしてください。さもなければ、あなたが探しているものはおそらく非一様なFFTでしょう。 – CKT