FFTW@wiki内検索 / 「プラグイン」で検索した結果

検索 :
  • プラグイン/コメント
    コメントプラグイン @wikiのwikiモードでは #comment() と入力することでコメントフォームを簡単に作成することができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_60_ja.html たとえば、#comment() と入力すると以下のように表示されます。 名前 コメント
  • プラグイン/編集履歴
    更新履歴 @wikiのwikiモードでは #recent(数字) と入力することで、wikiのページ更新履歴を表示することができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_117_ja.html たとえば、#recent(20)と入力すると以下のように表示されます。 取得中です。
  • Planner Flags
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース - プランナーフラグ プランナーフラグ Planner Flags FFTWのすべてのプラン生成ルーチンは、整数のflags引数をとり、これは以下で定義される0個以上のビット毎定数フラグの、のOR( | )となります。これらのフラグは、プラン生成の計算の厳密性(および時間)に関係し、同時にまた、使われる変換アルゴリズムに制限を加えることも可能です。 重要 プラン生成時に、入力配列は上書きされます。したがって、プラン生成の後に入力配列の初期化を行う必要があります。これは、FFTW_ESTIMATEフラグを宣言することによってのみ、回避可能です。 プラン生成のの厳密さにかかわるフラグ Planning-rigor flags FFTW_ESTMATE FFTW_ESTIMATEは、異なるア...
  • Basic Interface
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース ベーシックインターフェース Basic Interface  ベーシックインターフェースは、おそらく大多数のユーザーの要望を満たすもので、FFTWのサポートする全てのタイプの、単一の連続した配列の変換に関するプランナールーチンを提供します。 複素離散フーリエ変換 プランナーフラグ 実データ離散フーリエ変換 実データ離散フーリエ変換の配列の形式 実数から実数への変換 実数から実数への変換種
  • Complex DFTs
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース - 複素離散フーリエ変換 複素離散フーリエ変換 fftw_plan fftw_plan_dft_1d( int n, fftw_complex *in, fftw_complex *out, int sign, unsigned flags ); fftw_plan fftw_plan_dft_2d( int nx, int ny, fftw_complex *in, fftw_complex *out, int sign, unsigned flags ); fftw_plan ff...
  • Real-Data DFTs
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース - 実データ離散フーリエ変換 実データ離散フーリエ変換 Real-Data DFTs fftw_plan fftw_plan_dft_r2c_1d( int n, double *in, fftw_complex *out, unsigned flags ); fftw_plan fftw_plan_dft_r2c_2d( int nx, int ny, double *in, fftw_complex *out, unsigned flags );...
  • FFTWマニュアル
      - 番目のお客様 (^-^)/~~ FFTWのページ  このページは、フリーのFFTライブラリFFTWが有効に活用されるように作られたページです。 マニュアルの日本語訳や、使用上の注意、サンプルプログラムがあります。 未完成のところも多いですが、常時更新していきます。 FFTWはバージョン2と3では大幅に仕様が異なるので、ご利用のバージョンにご注意ください。  ご意見や、感想を掲示板のほうへお寄せください。 動かない、分からないなどのお問い合わせは takaidohigasi あっと gmail.com へ!(回答あるかどうかは、保証しかねますが。。。) FFTW3.1.2 マニュアル FFTWとは?? FFTWの使い方 (簡単な使い方)複素1次元離散フーリエ変換 複素多次元離散フーリエ変換 実データ1次元離散フーリエ変換 実データ多次...
  • FFTW使用上の注意
    全般 # スケーリング 変換の結果は配列のスケール倍される。 プラン生成 プラン生成は、原則的にデータの”メモリ空間”に対して行われ、 (これはFFTWのバージョン3になってから大きく変更されたポイントである。) プラン生成時には、計算時間の最適化などを行うので、多少時間がかかる。 したがって、繰り返し計算を行う時には、一度生成したプランを繰り返し使うことが推奨されている。 すると、例えば、同じサイズの入力データが複数あるとき、一度プランを生成してから、プラン生成時に指定したメモリ空間にデータをコピーして演算を行うことが考えられる。 この際、プラン用のメモリ空間が、”バッファ”として余分に消費されることになるので、多くのメモリを必要とする場合には検討が必要だ。 また、ここまででプランは特定の”メモリ空間”に対して生成されると述べたが、データサイズが同じ、...
  • Complex One-Dimensional DFTs
    複素1次元離散フーリエ変換 Complex One-Dimensional DFTs  プランとは、偶然の結果を達成するための最善の方法をいろいろ思い悩むことである。 (Ambrose Bierce, The Enlarged Devil’s Dictionary.)  FFTWで、サイズNのデータの一次元DFTを計算する方法はいたって簡単で、おおよそ以下のようなコードになります。 #include fftw3.h ... { fftw_complex *in, *out; fftw_plan p; ... in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (...
  • Words of Wisdom-Saving Plans
    FFTWマニュアル - その他重要なこと - 知の利用-プランの保存 知の利用-プランの保存 Words of Wisdom - Saving Plans  FFTWは、プランを保存したり、保存してあるプランを復元したりする方法を実装しています。実際のところは、FFTWがやっていることは、プランを保存して読み込むというだけでなく、もっと一般的なことをやっています。そのメカニズムは、”wisdom(知)”と呼ばれます。ここでは、この特徴を大雑把に説明します。詳細は、4章のFFTW Referenceの21ページを見てください。ここには、FFTWでwisdomをどう利用するかについて、より難しくなりますが、細かいところまで完全に議論が展開されています。  FFTW_MEASURE,FFTW_PATIENT,FFTW_EXHAUSTIVEオプションで生成されたプランは、最適に近...
  • Using Plans
    FFTWマニュアル - FFTWリファレンス - プランの利用 プランの利用 Using Plans  FFTWにおけるすべての変換のプランは、fftw_plan型として(不透明なポインタ型)格納され、これからの節で述べる様々なルーチンによって生成されます。fftw_planは、変換を計算するのに必要なすべての情報を持っていて、たとえば入出力配列のポインタなどもそれに含まれます。 void fftw_execute( const fftw_plan plan );  上記によってプランが実行され、あらかじめ計画された配列に対する変換が計算されます(その配列はこの時、存在する必要があります)。プランに変更がなければ、fftw_executeは所望の回数だけ実行することができます。  既にあるプランを、違う配列に使いたいときは、グルインターフェースを使うことができ...
  • FFTW Introduction
    Introduction  このマニュアルはFFTW(the Fastest Fourier Transform in the West)バージョン3.1.2のものです.FFTWは離散フーリエ変換を計算する包括的な高速Cルーチン集であり、以下のような特徴があります. 複素数データ,実数データ,偶対称,奇対称な実数データのDFT(*1),実数データの離散Hartley変換(DHT)を計算可能 入力データは任意のサイズがとれる.O(nlogn)アルゴリズムを,素数を含む,すべてのサイズで採用. 計算の時間の次元がデータ数nに対して,nlogn 任意の多次元データをサポート SSE/SSE2/3DNow!/Altivecの命令セットをサポート FFTW3.1.2は共有メモリシステムに対しては、並列(マルチスレッド)変換が可能。FFTW3.1.2は分散メモリ並列変換ができないが、MP...
  • Complex Multi-Dimensional DFTs
    複素多次元離散フーリエ変換 Complex Multi-Dimensional DFTs  多次元変換も、一次元の変換とほとんど同じように動きます。すなわち、まずfftw_complexの配列のメモリを確保し、(fftw_mallocの使用を推奨)、次にfftw_planを作成し、3番目に、fftw_execute(plan)を必要な回数実行し、最後にfftw_destroy_plan(plan)とfftw_freeでメモリの解放を行います。唯一の違いは、プランを作るときに使うルーチンだけです。 すなわち、 fftw_plan fftw_plan_dft_2d(int nx, int ny, fftw_complex *in, fftw_complex *out, ...
  • メニュー
    メニュー FFTWマニュアルFFTWとは?? FFTWの使い方複素1次元離散フーリエ変換 複素多次元離散フーリエ変換 実データ1次元離散フーリエ変換 実データ多次元離散フーリエ変換 その他重要なことデータの並び 多次元配列のフォーマット 知の利用-プランの保存 知の利用上の注意 FFTWリファレンス データタイプとファイル プランの利用 ベーシックインターフェース FFTW使用上の注意 サンプルプログラム 掲示板/メッセージ リンク @wiki @wikiご利用ガイド 取得中です。 ここを編集
  • Column-major Format
    FFTWマニュアル - その他重要なこと - 多次元配列のフォーマット - 列メジャー形式 列メジャー形式 Column-major Format  フォートランを利用している読者は、列メジャー順(時にフォートラン順)の配列に馴染みがあります。これは、「最初の」添え字が一番はやく変わるという点で、行メジャー順とは本質的に正反対です。  列メジャー順の配列をFFTWで変換したい場合は、非常に簡単にできます。プランを作るときに、プランナーに引数として渡す次元の配列を、逆順に渡せばよいだけです。例えば、ランク3のNxMxLの行メジャー形式の行列を変換したい場合は、LxMxNの行列であるかのような引数を渡せばよいことになります(これは、FFTWの観点から、この行列はLxMxNということです)。これは、FFTWのフォートランインターフェースを使えば自動的に実行されます。
  • FFTW Reference
    FFTWマニュアル - FFTWリファレンス FFTWリファレンス FFTW Reference  この章では、連続(シングルプロセッサの)FFTWの関数すべての、完全なマニュアルを扱います。並列変換については、5章のParallel FFTWをご覧くさい データタイプとファイル 複素数 精度 メモリの確保 プランの利用 ベーシックインターフェース
  • FFTW Tutorial
    チュートリアル Tutorial  この章では、FFTWの基本的な使い方、つまりどうやって単一の配列のフーリエ変換を求めるのか、について述べます。  この章では、全ての事柄に対しては言及しません。  詳しくいえば、ここに載っていない追加的なルーチンやフラグがFFTWには実装されています。それについては、追加的になにができるのかが記してある場所をできる限り、明示したいとおもいます。より詳細な情報については4章のFFTW Referenceを参照してください。  プログラムを使用するためには、FFTWのインストールとコンパイルが必要です。インストールの詳細については、8章のInstallation and Customizationを参照してください。  チュートリアルは、順番に読んでいくことをおすすめします。例え、最初の節で説明される一次元DFT以外に興味を持ってい...
  • Fixed-size Arrays in C
    FFTWマニュアル - その他重要なこと - 多次元配列のフォーマット - C言語における固定配列 C言語における固定配列 Fixed-size Arrays in C  C言語でコンパイル時にサイズが宣言されている多次元配列は、すでに列メジャーオーダーになっています。したがって、何も特別なことをする必要はありません。以下に例を示します、 { fftw_complex data[NX][NY][NZ]; fftw_plan plan; ・・・ plan = fftw_plan_dft_3d( NX, NY, NZ, data[0][0][0], FFTW_FORWARD, FFTW_ESTIMATE ); ・・・ }  これは、NXxNyxNzの入出力が同じである、インプレース変換のプランです。プランナーにわた...
  • Real-data DFT Array Format
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース - 実データ離散フーリエ変換配列様式 実データ離散フーリエ変換配列様式  実データの離散フーリエ変換出力(r2c変換)は、対称性を持つ。つまり、原則的には、2倍の冗長性を持つ(4.7節What FFTW Really Computes参照)。(逆c2r変換の入力も、同様)。実際のところ、これらの冗長性の排除を、効果的かつ理解しやすい形式(多次元変換の一般化するもの)で行うことを、完全に実現することは不可能である。その代わりに、r2c変換の出力は、対応する複素変換の出力の半分をわづかに超える。データはいかなる方法でも”圧縮”せず、通常のfftw_complex値の配列として、格納している。実際のところ、このデータは対応する複素変換の配列の一部分である。  具体的にいえば、d(=ランク)次元の n1...
  • One-Dimensional DFTs of Real Data
    実データ1次元離散フーリエ変換 One-Dimensioanal DFTs of Real Data  実際の利用上、多くの場合、入力データin[i]は実数で、その場合DFTの出力は、”エルミート冗長性”を満たします。すなわち、out[i]はout[n-i]の共役となります。この性質の利点を生かすと、大雑把にいえば、スピードの向上と、メモリ節約を図ることができます。  このスピード向上と、メモリ節約といった利点と引き換えに、ユーザーはFFTWの複素変換の簡易性を犠牲にしなければなりません。  第1に、入出力の配列が異なるサイズ、型になります。入力がn個の実数だった場合、出力は(冗長でない形で)n/2+1個の複素数となります。また、入出力が等しい、in-place変換の場合、入力の配列にわずかに”パディング”(余白)を設ける必要があります。  第2に、複素数から実数への逆変換...
  • Caveats in Using Wisdom
    FFTWマニュアル - その他重要なこと - 知の利用上の注意-Caveats in Using Wisdom 知の利用上の注意 Caveats in Using Wisdom 實に, 知惠が 多くなれば 惱みも 多くなり, 知識を 增す 者は 悲しみを 增す.[Ecclesiates 1 18]  wisdomの利用には落とし穴があります。それはFFTWのハードウェアやその他の条件への適応能力を、無意味なものにしてしまいうることです。例えば、あるプロセッサで稼働するプログラムから、wisdomを外部へ出力し、他のプロセッサーで稼動するプログラムに取り込むなどという状況は、十分に想定されます。これを行うと、2番目のプログラムは、そのマシンの最適なプランではなく、1番目のプロセッサで最適化されたプランを使うことを意味します。  wisdomは、ハードウェアとプロ...
  • Other Important Topics
    その他重要なこと Other Important Topics データの並びSIMDの並びとfftw_malloc x86アーキテクチャにおけるスタックの並び 多次元配列のフォーマット列メジャー形式 行メジャー形式 C言語における固定配列 C言語における動的配列 C言語における動的配列-誤った方法 知の利用 -プランの保存 知の利用上の注意 Wisdom利用上の注意
  • サンプルプログラム
    - 番目のお客様♪ (※) プログラムを実行していかなる結果が生じても責任は負いません。悪しからず。 プログラムおよび実行結果 fftw+C言語標準ライブラリのみで動くプログラム とりあえず、試してみたい方へ。 プログラムの内容 ソースコード 実行結果 基本の使い方 1次元FFT fftw1D.cpp result1 基本の使い方 2次元FFT fftw2D.cpp result2 原点移動(2次元) DCexchange.cpp result3 パワースペクトルを得る powerspectol.cpp result4 位相を得る phase.cpp 画像出力する プランの再利用 メモリを節約したFFT OpenCVを利用したプログラム OpenCVというライブラリが必要だが、ライブラリ導入によって、コードも簡単、入出力も簡単になりオススメ...
  • Multi-Dimensional DFTs of Real Data
    実データ多次元離散フーリエ変換 Multi-Dimensional DFTs of Real Data 実データの多次元離散フーリエ変換は、以下のプランナールーチンを使います。 fftw_plan fftw_plan_dft_r2c_2d( int nx, int ny, double *in, fftw_complex *out, unsigned flag ); fftw_plan fftw_plan_dft_r2c_3d( int nx, int ny, int nz, double *in, fftw_complex *out, unsigned flag ); fftw_plan fftw_plan_dft_r2c( int rank, con...
  • Precision
    FFTWマニュアル - FFTWリファレンス - データタイプとファイル - 精度 精度 Precision  単精度、4倍精度(long-double)バージョンのFFTWをインストールすることもできます。これはそれぞれ、通常のdouble型の所を、floatとlong doubleにそれぞれ置き換えるものです。(詳細は8章のインストールとカスタマイズ)をご覧ください。これらのインターフェースを使うには、以下のようにすればよい。 単精度/4倍精度のライブラリにリンクする。Unixでは、-lfftw3fや-lfftw3lを-lfftw3の代わりにつければよい。(同時に違う精度のライブラリにリンクすることもできる) 同じヘッダ fftw3.h をインクルードする すべての小文字の fftw_ インスタンスを fftwf_ や fftwl_ にそれぞれ置き換える(前者が単...
  • Row-major Format
    FFTWマニュアル - その他重要なこと - 多次元配列のフォーマット - 行メジャー形式 行メジャー形式 Row-major Format  fftw_plan_dftなどにわたされる多次元配列は、単一の連続するブロックに列メジャー順(C順序と呼ばれることもある)で格納されています。基本的には、これはメモリの隣の場所に移れば、最初の次元の添え字が最も遅く変化し、最後の次元の添え字がもっともはやく変化することを意味します。  もっと具体的に言うと、rank dのn1 x n2 x n3 x・・・xndの配列を考えたとします。そして、配列の場所をゼロベースの添え字で特定すれば、(i1, i2, i3, ・・・,id)となります。もし、配列が行メジャー順であれば、この要素は、id + nd(id-1 + nd-1(・・・+n2i1))の場所に相当します。  通常の複素...
  • Dynamic Arrays in C-The Wrong Way
    FFTWマニュアル - その他重要なこと - 多次元配列のフォーマット - C言語における動的配列(間違えた使い方) C言語における動的配列(間違えた使い方) Dynamic Arrays in C - The Wrong Way  C言語で多次元配列のメモリ確保に用いられる他の方法は、しばしばFFTWで利用できません。これを行うと、FFTWで深刻なエラーがおきるかもしれません。ここではその方法は、よく知られ使われているため、これについて議論します。この方法は、配列のポインタの配列のポインタの・・・を作るものです。たとえば、以下のようなものです。 int i,j; fftw_complex ***a_bad_array; /* 5x12x27の配列を確保する他の方法 */ a_bad_array = (fftw_complex***)malloc( 5 * sizeof(...
  • Complex numbers
    FFTWマニュアル - FFTWリファレンス - データタイプとファイル - 複素数 複素数の取扱 Complex numbers  FFTWのインターフェースは、すべての浮動小数点数に、double精度を用いており、複素数を保持するfftw_complex型を以下のように定義しています typedef double fftw_complex[2];  ここで、[0]の要素は実部、[1]の要素は虚部をそれぞれ表しています。 代替手段として、(gccのような)ANSI C標準のC99をサポートするCコンパイラがあれば、C言語の新しいネイティブな複素数型(バイナリとしては、上の型と同じ)も使うことができます。すなわち、#include complex.h を fftw3.h の前にインクルードすれば、fftw_complexが、ネイティブの複素数型として定義され、通常...
  • Real-to-Real Transforms
    FFTWマニュアル - FFTWリファレンス - ベーシックインターフェース - 実数から実数への変換 実数から実数への変換 Real-to-Real Transforms
  • comments
    Re powerspectol.hとは?   すみません.見逃してました.ありました.とても参考になりました - 名無しさん 2012-10-10 20 01 06 powerspectol.hとは? - 名無しさん 2012-10-10 19 57 28 わかりやすく、ありがとうございます。 - yukichi 2012-06-10 17 24 44 がびょーん - 通りすがり 2012-05-14 23 51 29 文字ばっかりでわかりづらいぞっ - 名無し 2009-07-05 11 41 03 名無しさん ほっ、ほんとうだ・・・。ご指摘ありがとうございます。 - 管理人 2009-06-28 23 50 57 とても参考になりますた。 - 16 55 36の人 2009-06-24 17 39 31 サンプルプログラムの「位相を得る」のソース中のat...
  • Data Types and Files
    FFTWマニュアル - FFTWリファレンス - データタイプとファイル データタイプとファイル Data Types and Files  FFTWを利用したすべてのファイルは、以下のヘッダファイルをインクルードする必要があります。 #include fftw3.h また、FFTWライブラリへのリンクも必要です。Unixでは、 -lfftw3 -lm オプションを、リンクコマンドの最後に付け加えればよいです。 複素数 精度 メモリ確保
  • SIMD alignment and fftw_malloc
    FFTWマニュアル - データの並び - SIMDの並びとfftw_malloc SIMDのならびとfftw_malloc SIMD alignment and fftw_malloc "Single Instruction Multiple Data"(単一命令複数データ流)を意味するSIMDは、 いくつかの、単一命令で複数回(通常2回または4回)同時に操作を行えるプロセッサでサポートされています。SIMD浮動小数点命令は、いくつかのポピューラーなCPUで使えます。たとえば、SSE/SSE2(単精度/倍精度)は、Pentium Ⅲ/Ⅳ以上、3DNow!(単精度)はAMD K7以上、そしてAltiVec(単精度)はPowerPC G4以上で利用できます。FFTWは、これらのいかなるシステムの対してもSIMD命令をサポートするようにコンパイルできます。 ...
  • Memory Allocation
    FFTWマニュアル - FFTWリファレンス - データタイプとファイル - メモリ確保 メモリ確保 Memory Allocation void *fftw_malloc( size_t n ); void fftw_free( void *p ); これらは、mallocやfreeとほとんど同じ働きを持ちます。唯一、返り値のポインタがFFTWのすべてのアルゴリズム(例えばSIMD高速化)に必要な制約を満たすこちだけがことなります。3.1節のデータの並びも参照のこと。 fftw_mallocで確保されたメモリは、通常のfreeではなく、fftw_freeで解放しなければいけません。 これらのルーチンは、ただ単にユーザーのOSのmallocを呼び出し、必要であればメモリ配置がそろった同等の関数を呼びます(memalignなど)。したがって、通常は時間や空間のオ...
  • @wiki全体から「プラグイン」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索