問題タブ [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.

0 投票する
3 に答える
4072 参照

iphone - FFTW3 を iPhone アプリに統合する方法は?

FFTW3 (C で記述された GNU FFT ライブラリ、http://www.fftw.org/ ) を iPhone アプリに統合しようとしています。ソース コードをダウンロードしたところ、何百もの .h および .c ファイルと、認識できない他の多くのファイルがあることがわかりました。私は Linux の専門家ではないので、.configure ファイルやその他の同様のファイルがどのように機能するのかよくわかりません。また、filename.xcodeproj というファイルがないため、自分で XCode プロジェクトをセットアップする必要があります。

私が知りたいのは 、XCode でファイルを取得してエラーなしでコンパイルするにはどうすればよいかということです。経験談やコツは?

0 投票する
1 に答える
9898 参照

c - C で FFTW を使用して PortAudio のサンプルから周波数情報を抽出する方法

PortAudio を使用してオーディオ データを録音するプログラムを作成し (この部分は完了しています)、その録音されたオーディオの周波数情報を表示します (今のところ、サンプルの各グループの平均周波数を表示したいと思います)。彼らが入ってくるとき)。

私が行ったいくつかの調査から、FFTを実行する必要があることがわかりました。それで、Cでそれを行うためのライブラリをグーグルで検索し、FFTWを見つけました。

しかし、今は少し迷っています。周波数情報を抽出するために記録したサンプルをどうすればよいですか? どの種類の FFT を使用すればよいですか (実際のデータ 1D が必要だと思いますか?)

FFT を実行したら、得られたデータから周波数情報を取得するにはどうすればよいでしょうか。

EDIT:自己相関アルゴリズムも見つけました。それは良いですか?もっと簡単?

事前に感謝します。申し訳ありませんが、これについてはまったく経験がありません。少なくとも少しは意味があることを願っています。

0 投票する
1 に答える
608 参照

c++ - Gaussian で FFT を実行すると負の数が表示されるのはなぜですか?

このfftwライブラリを使用しています。

現在、e^(-(x^2+y^2)/a^2) の形式で 2D ガウスをプロットしようとしています。

コードは次のとおりです。

負の数が表示されることが判明しました。ガウスのフーリエ変換は別のガウスであり、負の数を含むべきではないと思いました。

また、現在の原点は in[0] にあります。

0 投票する
2 に答える
7779 参照

c++ - Windows 64 ビットの fftw3

Windows 64 ビットで FFTW3 を使用したいと考えています。FFTW Web サイトの指示に従います。パッケージをダウンロードし、解凍し、lib.exe を実行して .lib の「インポート ライブラリ」を作成します。

その後、(FFTW3 dll 32 ビットを使用して問題なく動作する) アプリケーションをビルドすると、次のエラーが発生します。

1>pyramidTransform.obj : エラー LNK2019: 関数 "int __cdecl fourier2spatialband1(int,int,float *,float ,double ( )[2],double ( )[2],double ( )[2]で参照されている未解決の外部シンボル __imp_fftw_destroy_plan )" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : エラー LNK2019: 関数 "int __cdecl fourier2spatialband1(int,int,float *,float ,double ( )[2],double ( )[2],double ( )[2])" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj : エラー LNK2019: 関数 "int __cdecl fourier2spatialband1(int,int,float *,フロート,ダブル ()[2],double ( )[2],double ( )[2])" (?fourier2spatialband1@@YAHHHPEAM0PEAY01N11@Z) 1>pyramidTransform.obj: エラー LNK2019: 未解決の外部シンボル __imp_fftw_free が関数 "int __cdecl decompose( int,int,float *,int,int,float * *,float * *,float *,float * * *,float * * *,float * *,float * *)" (?decompose@@YAHHHPEAMHHEAPEAM10PEAPEAPEAM211@Z) 1>pyramidTransform.obj : エラー LNK2019: 関数 "int __cdecl decompose(int,int,float *,int,int,float * *,float * *,float *,float * * *,float * で参照されている未解決の外部シンボル __imp_fftw_malloc * *,float * *,float * *)" (?decompose@@YAHHHPEAMHHPEAPEAM10PEAPEAPEAM211@Z)

[Additional Dependencies] のプロパティ ペインには、libfftw3-3.lib (上記で作成) にリンクしていることが明確に示されています。

Visual Studio がリンクしようとしているものを確認するにはどうすればよいですか? Windows 64 ビットで FFTW-3 を使って運が良かった人はいますか?

0 投票する
2 に答える
842 参照

c++ - 逆離散FFTからスペクトログラムへ

逆 fft 出力 (fftw_complex 形式、つまり 2 つの double) を受け取り、このデータを png などの画像ファイルに変換する汎用 C++ ライブラリを見つける必要があります。dfft をウォーターフォールして 2 次元データを取得できます (そして 10log10(re re+im im) を使用して各周波数成分の大きさを取得します) が、どの画像ライブラリが機能するかわかりません。

以前は zimage という古いプログラムを使用していましたが、現在は使用できないようです。Ubuntu 9.10 システムに MATLAB はありません (ただし、Octave はあります)。

Octave はウォーターフォール画像を生成できますか? また、スペクトログラムを wav サウンド ファイルに変換する必要もあります。

何か案は??

0 投票する
1 に答える
964 参照

linux - スタンドアロンの FFTW ライブラリをコンパイルするにはどうすればよいですか?

FFTW ソース コードから Ubuntu 10.04 でスタンドアロンの .a または .so ライブラリをコンパイルする必要があります。ソース配布のディレクトリ レイアウトが非常に複雑で、どこから始めればよいかわかりません。

古いバージョンの gcc も使用する必要があります。

0 投票する
0 に答える
2437 参照

android - 共有ライブラリへのfftw3の静的リンク

私は Android 用のピッチ補正ソフトウェアに取り組んでおり、NDK を使用して Android で fftw3 を動作させたいと考えています。

ピッチ補正ライブラリ (talentedhack、http: //code.google.com/p/talentledhack/) は fftw3 に依存しているため、fftw3 をスタティック ライブラリとしてコンパイルし、それを Talentedhack 共有にリンクしようとしています。図書館。現在、静的ライブラリ libfftw3.a として fftw3 をビルドしていますが、このような未解決の参照エラーが引き続き発生します。

ndk-build を使用して Talenthack 共有ライブラリをコンパイルするとき。ただし、ファイルを正しく取得しているように見えますが、これは不可解です。

Android.mk ファイルの関連部分は次のようになります。

プロジェクトの最上位レベルから ndk-build が呼び出されたときに失敗するコマンドは次のとおりです。

/opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc -nostdlib -Wl,-soname,libtalentedhack.so -Wl,-shared,-Bsymbolic /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/circular_buffer.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/fft.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/formant_corrector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/lfo.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_detector.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_shifter.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/pitch_smoother.o /path/to/project/bin/ndk/local/armeabi/objs/talentedhack/quantizer.o /path/to/project/ndk/local/armeabi/objs/talentedhack/talentedhack.o -Wl,--whole-archive -Wl,--no-whole-archive /path/to/project/bin/ndk/local/armeabi/libfftw3.a /opt/android-ndk-linux/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/libgcc.a /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libc.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libstdc++.so /opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib/libm.so -Wl,--no-undefined -Wl,-z,noexecstack -L/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -llog -Wl,-rpath-link=/opt/android-ndk-linux/build/platforms/android-8/arch-arm/usr/lib -o /path/to/project/bin/ndk/local/armeabi/libtalentedhack.so

システムには実際にはfftwf_executeまたはいくつかの派手なマクロを使用しているため、または静的ライブラリを正しく処理していない Android NDK ビルドシステムの問題である場合、任意のヘッダーで定義された他の関数 (私が知ることができます)。どんな助けでも大歓迎です。

0 投票する
6 に答える
25115 参照

c - ハン ウィンドウを実装する

入力データのブロックを取得し、それらを fftw に渡してスペクトル情報を取得します。すべてが機能しているように見えますが、エイリアシングの問題が発生していると思います。

データのブロックにハン ウィンドウを実装する方法を考え出そうとしています。グーグルは例として私を失敗させました。私が見るべきアイデアやリンクはありますか?

アップデート

私が実際に修正しようとしている問題を指摘してくれた Oli に感謝します。

0 投票する
9 に答える
6166 参照

iphone - fftw3やsndfileなどのサードパーティライブラリをXcodeのiPhoneプロジェクトにリンクするにはどうすればよいですか?

fftw3やsndfileなどのサードパーティライブラリをXcode3.2のiPhoneプロジェクトにリンクしようとしています。プロジェクトビルド構成で「ヘッダー検索パス」を「/usr/ local / include」に設定し、「その他のリンカーフラグ」を「-lfftw3-lsndfile」に設定することで、通常のMacプロジェクトで機能するようになりました。ただし、同じ設定を使用してiPhoneプロジェクトでビルドしようとすると、「-lfftw3のライブラリが見つかりません」という終了コード1のエラーメッセージが表示されました。

AppleはiPhoneでこれを許可していませんか?これを回避する方法はありますか?

0 投票する
2 に答える
2248 参照

c - FFTW:フォワードfftの逆関数が元の関数と等しくない

FFTWを使用して高速な合計を計算しようとしていますが、問題が発生しました。

(ここで、sparseProfile02[0]はタイプFFTW_complex*であり、正の実数データのみが含まれています。)

ダミー_sq=IFFT(FFT(sparseProfile02 [0]))があるので、dummy_sq = n ^ 3*sparseProfile02が必要です。しかし、これは一部の時間にのみ当てはまります。実際、sparseProfile02グリッドの対応する値がゼロの場合は常に、dummy_sqグリッドの値は負になります(ただし、その逆はありません)。なぜこれが起こっているのか誰かが知っていますか?