問題タブ [fftw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ で FFTW を使用して 1D 熱方程式を解く
私は最近、学校で再びプログラミングを始めたばかりで、高速フーリエ変換パッケージ FFTW に関連するコードの問題に遭遇しています。
私のコードでは、初期関数 (この場合は u(x,t=0) = sin(x) + sin(3*x)) から始め、RK4 を使用して熱方程式の U_t を解こうとします。サイズ N の配列を送信して変換し、2 つの導関数を取得してから、逆変換を行って熱方程式の U_xx を解きます。
t を数回繰り返した後に y[i] のグラフをプロットすると、値が急速に爆発し、正と負の間で交互に変化します。
これらの奇妙な結果を引き起こしている可能性のある構文の問題について提案がある場合、または私の数学的方法にエラーが見つかった場合は、情報をいただければ幸いです。ありがとうございました。
c - データの転置配列で fftw_plan_many_dft を使用するにはどうすればよいですか?
列優先 (Fortran スタイル) 形式で格納されたデータの 2D 配列があり、各行の FFT を取得したいと考えています。配列の転置を避けたい (正方形ではない)。たとえば、私の配列
エントリが含まれています[r0_val0, r1_val0,..., r20_val0, r0_val1,...,r20_val255]
。
行優先の場合fftw_plan_many_dft
、配列内の 21 個の FFT のそれぞれをインプレースで解決する計画を立てるために使用できます。data
[r0_val0, r0_val1,..., r0_val255, r1_val0,...,r20_val255]
ドキュメント ( FFTW マニュアルのセクション 4.4.1 ) によると、関数のシグネチャは次のとおりです。
stride
パラメータとdist
パラメータを使用してインデックスを設定できるはずです。ドキュメントから理解できることから、変換される配列内のエントリはin + j*istride + k*idist
wherej=0..n-1
およびとしてインデックス付けされますk=0..howmany-1
。(私の配列は1Dでhowmany
、それらの配列があります)。ただし、次のコードはセグメントになります。障害 (編集:歩幅が間違っています。以下の更新を参照してください):
アップデート:
歩幅の選択を間違えました。正しいコールは次のとおりです (正しい歩幅はhowmany
であり、 ではありませんN
)。
c - FFTW Segfault (おそらく単純な答え)
私は単純な FFTW ルーチン (バージョン 2) を作成しようとしています。ほぼ骨が折れたと思いますが、fftwnd_one 関数を呼び出すと永続的なセグメンテーション違反が発生します (私は 1 つを実行しています)。次元変換ですが、モジュール性のために n 次元コードを使用しています)。しかし、私の問題は計画の作成にあると思います。このコードの何が問題なのか、誰か洞察を提供できますか? もしそうなら、私はそれを大いに感謝します - ありがとう!
参考までに、ここで使用している関数は sin(x) です。すべての数学演算が実装されているわけではないことに気付きました。最初に FFTW2 ライブラリを機能させようとしているだけです。
c++ - fftw mingwプリコンパイル済みバイナリとvs2010によるメモリの破損?
Visual Studio2010プロジェクトにリンクされたプリコンパイル済みのmingwfftwバイナリを使用して、メモリ破損の問題が発生したことがないかどうかを知りたいです。奇妙なことに、fftw APIが呼び出されなくても、fftw libsリンク(fftwdocで説明されているようにlib/def:libfftw3-3.defで生成された)だけでプロジェクトに問題が発生します。さて、著者が示唆しているように、vs 2010でfftwを最初からコンパイルしてみますが、libをリンクするだけで副作用が発生する可能性があるという事実に興味があります。私が知る限り、それは私たちのc++コードの問題ではないようです...
いくつかの環境。詳細:2010年と比較して32ビット、アンマネージドC++プロジェクトに勝つ
ありがとうございました!
c - Cのcomplex.hとのfftwインターフェース
このコードを使用して、複雑なデータ型を持つ 2D 配列を作成しています (c の complex.h から)。次に、その配列の fft を「その場で」見つけたいと思います。ただし、セグメンテーション違反が発生しています。これは、ポインターの不適切なキャストが原因であると考えられます。fftw で複雑なデータ型を使用するにはどうすればよいですか?
fftw_complex や fftw_malloc を使用したくないことに注意してください。ありがとうございました。
c++ - C/C++ で JACK と fftw を使用したオーディオ スペクトラム
C/C++ で JACK と fftw を使用してオーディオ スペクトルを作成する方法について、支援 (ドキュメント、サンプル コードなど) が必要です。Mac OS X (10.6+) で開発しています。どんな助けでも大歓迎です。
python - Python での FFT パフォーマンスの向上
Pythonで最速のFFT実装は何ですか?
numpy.fft と scipy.fftpack はどちらも FFTW ではなく、fftpack に基づいているようです。fftpack は FFTW と同じくらい高速ですか? マルチスレッド FFT や分散型 (MPI) FFT の使用はどうでしょうか?
c - FFTW3 で 2 次導関数を取得する
フォワード FFT と IFFT (結果を正規化) を使用して実際の関数のコードをテストしましたが、これは正常に動作します。
ただし、実関数の二次導関数を取得したいと思います。簡単にするためにsin(2*pi*t)
、テストケースとして取り上げます。これが私が使用する関連コードです(ライブラリ内のFFT関数):
sin( 2*pi*t*K)
問題は次のとおりです。このアルゴリズムは、K が整数である形式の任意の関数に対して完全に機能しますが、関数 をテスト関数として使用するsin(3*pi*t)
と、アルゴリズムは失敗します。コーディングの間違いを見つけることができません。
k
関数は実数であるため、半分の値を取得するだけでよいことに注意してください。これは問題ではありません。
c++ - ITKの倍精度とスマートポインターの問題
私が抱えている問題は、Qtを使用してGUIから画像を開くことです(ImageFrameを作成したクラスを通じて、このクラスはPixelTypeを次のように定義しています。
画像を抽出した後、入力が実際のデータであるFFTを作成することになります。エラーは次のように述べています。ImageFrameクラス(ピクセルタイプをdoubleとして定義している)のオブジェクトを使用して、「itk::SmartPointer」の3番目のパラメーターを「double*」に変換することはできません。
1>。\prueba_r01.cpp(126):エラーC2664:'fftw_plan_dft_r2c_2d':no sepuedeconvertirelparámetro3de'itk:: SmartPointer' a'double *'
1> with
1> [
1> TObjectType = itk ::画像
1>]
1>干し草なしdisponibleningúnoperadordeconversióndefinipodorelusuario que pueda realizarestaconversión、o bien no se puede llamar al operador
ピクセルがdouble形式の場合、なぜfftを計算できないのか理解できません。誰かが私にこの問題を解決する方法のアイデアを与えることができますか?よろしくお願いします!