Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
I am using CFFT for calculations in Mathcad 14. Mathcad Prime 10 recommends using dtf rather than CFFT.
However, CFFT and dft have different scaling.
Could you tell me how to change the program to change from CFFT to dft and get the same calculation results?
--------------------------------------------
Translated text from Japanese to English using google translate -
Subject - CFFTとdftの関係
Body - mathcad14でCFFTを使って計算しています。mathcad prime10ではCFFTよりdtfを使用することを推奨しています。
しかしCFFTとdftではスケーリングが異なります。
CFFTからdftに変更し、計算結果を同じにするために、どのようにプログラムを変更したらいいか教えていただけませんか?
-By Community Moderation Team
--------------------------------------------
@TT_12301010 wrote:
mathcad14でCFFTを使って計算しています。mathcad prime10ではCFFTよりdtfを使用することを推奨しています。
しかしCFFTとdftではスケーリングが異なります。
CFFTからdftに変更し、計算結果を同じにするために、どのようにプログラムを変更したらいいか教えていただけませんか?
(Divide dft results by the number of samples) to convert to CFFT results.
Take the idft of the (CFFT multiplied by the number of samples).
Stuart
Hi just wanted to share this.
I have used a C++ FFT library called fftw3 and have written a custom DLL function that can be called from Prime. Custom function is called myCFFT and takes a complex array as input and returns a complex array as output. Using Stuart's sheet and definition of y as a 128 value sequence get the following timings. myCFFT running in C++ is four times as fast as the Prime function. There is calling overhead in the myCFFT function meaning time is gained for larger sequences and repeated CFFT's
This means it is possible with larger sequences and multiple sequences a large increase in speed for the OP's previous post is possible. Will work on this over the next few days.
Cheers
Terry
こんにちは、これを共有したかっただけです。
fftw3 という C++ FFT ライブラリを使用し、Prime から呼び出せるカスタム DLL 関数を作成しました。 カスタム関数は myCFFT と呼ばれ、入力として複素数配列を受け取り、出力として複素数配列を返します。 Stuart のシートを使用し、y を 128 の値のシーケンスとして定義すると、次のタイミングが得られます。 C++ で実行される myCFFT は、Prime 関数の 4 倍高速です。 myCFFT 関数には呼び出しオーバーヘッドがあり、より大きなシーケンスや CFFT の繰り返しで時間がかかることを意味します。
これは、より大きなシーケンスや複数のシーケンスを使用すると、OP の以前のポストの速度を大幅に向上できる可能性があることを意味します。 今後数日かけてこれに取り組む予定です。