名前 題名 ▼ takiさん > 困っています。助けてください。 > > 音声の線形予測分析でスペクトル包括を求めています。 > n次のLPC係数とそれぞれの残差分散が配列a[n],e[n]として求まった段階です。 > スペクトル包括はFIRフィルター?のフィルタ係数として求めたa[n],e[n]を > 代入すれば求まるそうです。 > > 参考にしたWebページは > http://mitsui725.blogspot.jp/2013/08/c.html > > C言語で書かれたプログラムをPascalに書き直しているのですが、複素数を扱う > complexというのが出てきます。 > Delphi XE4 Starter ではVariant形式で複素数を扱うことができることが分かって > います。 > > 悩んでいる内容は以下のような事です。 > > === C言語 ========= > double N2pi = 2*M_PI/N; > for (n=0;n<N + 1; ++n){ > double complex z,x,・・略 > x=-I*N2pi * n; > z=cexp(x); > 略 > > これを(我流で)書き換えると > var > n:integer; > N2pi,x,z:Variant; > begin > N2pi := VarComplexCreate; > x := VarComplexCreate; > z := VarComplexCreate; > N2pi := 2.0 * PI / NN; // NNは分割する数で、外部からの値。 > for n := 0 to n do begin > x := -I*N2pi * n; // <- ここが分からない > z := exp(x); > > -I*N2pi * n;の意味を(-N2pi * n)を虚数部に代入する意味かなと思い、 > x.Imaginary := -1.0 * N2pi * n; とかしたのですが、自身がありません。 > 実数部は0.0のままでいいのかな? > > 分かっている人からすれば、実際に数値を代入して計算させたら > 正しいかどうか分かるんじゃない?と言われると思いますが、複素数の > 計算をやったことが無いので、どんな計算をして確かめたらいいのかすら > 分かりません。 > > 何かヒントください。 m(_ _)m > > 環境は > Win7 Pro(32bit) + Delphi XE4 Starter > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link