問題タブ [fft]

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 投票する
7 に答える
3196 参照

concurrency - 並列プログラミングを始める

したがって、マルチコアのように見え、それに関連するすべての複雑さがそのまま残ります。私は、並列処理から確実に恩恵を受けるソフトウェア プロジェクトを計画しています。問題は、並行ソフトウェアを書いた経験がほとんどないことです。私は大学でそれを学び、概念と理論を非常によく理解していますが、学校以来、複数のプロセッサで実行するソフトウェアを構築するのに役立つ経験はありません。

私の質問は、マルチプロセッサ プログラミングを始めるための最良の方法は何ですか? Windows の経験はほとんどなく、Mac OS X での C/C++ および Obj-C による Linux 開発に精通しています。また、私が計画しているソフトウェア プロジェクトでは、FFT と、多くのデータの浮動小数点比較が必要になるでしょう。

OpenCL、OpenMP、MPI、POSIX スレッドなどがあります。どのテクノロジから始めるべきですか?

以下に、私が検討しているいくつかのスタック オプションを示しますが、それらが私の目標に向けて実験できるかどうかはわかりません。

  • Snow Leopard を入手して、ラップトップの ATI X1600 GPU で OpenCL Obj-C プログラムを実行できるようにする必要がありますか? また
  • プレイステーションを手に入れて、利用可能な 6 つの Cell SPE コアを処理する C コードを書いてみるべきでしょうか? また
  • Nvidia カードを搭載した Linux ボックスを構築し、CUDA で作業してみるべきですか?

よろしくお願いします。

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

image-processing - 畳み込みを計算するための最速の方法

多くの画像の各行に畳み込みフィルターを適用する必要があります。クラシックは1024x1024ピクセルの360画像です。私の使用例では、720画像560x600ピクセルです。

問題は、私のコードが記事で宣伝されているものよりもはるかに遅いことです。

素朴な畳み込みを実装しましたが、2分30秒かかります。次に、fftwを使用してFFTに切り替えました。複合体2複合体を使用し、各変換で2つの行をフィルタリングしました。今は20代くらいです。

問題は、記事が約10代を宣伝し、古典的な状態ではさらに少ないということです。ですから、畳み込みを計算するより速い方法があるかどうか、ここの専門家に尋ねたいと思います。

数値レシピは、dftで行われるソートを回避し、それに応じて周波数領域フィルター関数を適応させることを提案しています。しかし、これを行う方法のコード例はありません。

たぶん私はデータをコピーするのに時間を失うでしょう。実数2の実数変換を使用すると、データを複合値にコピーする必要はありません。しかし、とにかく0で埋める必要があります。

編集:進捗状況のフィードバックとこの問題の解決に関する詳細については、以下の私自身の回答を参照してください。

質問(正確な再定式化):

離散非周期関数(512から2048の値)に非常に高速な畳み込みを適用するためのアルゴリズムまたはコードを探しています。どうやら、離散時間フーリエ変換が進むべき道です。ただし、データのコピーと複雑な変換は避け、バタフライの並べ替えは避けたいと思います。

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

math - MATLAB での FFT (助けが必要)

MATLAB で FFT とのこの統合を実行できるかどうか誰か教えてください。どのように?詳細をできるだけ早く回答してください。

inputと変数によってアクセスされる2 つの長方形の平面が存在し、結果の平面が変数x1と変数によってアクセスされるとします。y1outputtetaxtetay

これは疑似コードの積分です:

どこ:-1<= x1 <= 1 and -1<= y1 <= 1

tetaxtetay最終的な長方形の平面にまたがるように変更する必要があります。

迅速かつ詳細な回答をいただければ幸いです。

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

iphone - 優れた効率的なFFTを知っていますか?

非常に高速で効率的なフーリエ変換 (FFT) を見つけようとしています。誰か良いものを知っていますか。iPhoneで実行する必要があるため、集中的であってはなりません。代わりに、ウェーブレットのようなものを知っているかもしれません。周波数分解能が必要ですが、狭い帯域しか必要ありません (最大 10khz までの音声範囲...10kHz でさえ高すぎる可能性があります)。このFFTを切り捨てて、不要な周波数帯域を排除しながら周波数分解能を維持することも考えています。これはiphone用です

...Aurio touch で FFT を調べましたが、これは int FFT のようですが、私のアプリは float を使用しています.....プログラムを int FFT に適応させようとすると、パフォーマンスが大幅に向上しますか? (これは本当にやりたくありません...さらに、aurio touchは基数2のFFTを使用しますが、これはそれほど優れていません)。

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

algorithm - MFCCアルゴリズムの作り方は?

Mel-Frequency Cepstrum Algorithmを作りたいのですが、わからないことがあります。

FTT が完了したら、「三角形のオーバーラップ ウィンドウを使用して、上記で取得したスペクトルのパワーをメル スケールにマッピングする」必要があります。

私は三角形を計算する方法を知っており、メル スケールに渡す方法も知っています。私は単にそれらをどうするかわかりません。

三角形が定義されている場合、上記で取得したスペクトルのパワーをメルスケールにマッピングするにはどうすればよいですか?

このようなものですか: 三角形内の周波数を合計してから、メル スケールに渡しますか? または、重み値 (その時点での三角形の高さによって定義される) に従って三角形内の周波数を合計し、それをメル スケールに渡しますか? または、三角形内のすべての周波数を、weith 値に従ってメル スケールに渡しますか? 別物?

誰かが私にこれを明確にすることができますか

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

c# - 高速フーリエ変換とハイパスフィルターを適用した後、マイクから .wav に録音する方法は?

マイクから入力を受け取り、それに fft を適用します。その後、1KHz より高い周波数をゼロ (ハイパス フィルター) で入れます。

マイクからの入力をfftに渡した後、ハイパスフィルターを適用した後、どのようにマイクからの入力を録音できるか知りたいです。

C# を使用していますが、何をする必要がありますか? :P

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

c# - fft から ifft を計算する方法は?

基本周波数をリアルタイムで取得し、ハイパス フィルターとローパス フィルターを実装するために fft を実行しました。

フィルターを適用した後、.wav ファイルに録音できるようにしたいと考えています。

まず、fft を反転する必要があります。それが私の質問です。これを行う手順は何ですか?

このプロジェクトで定義されている FFT を使用します。

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

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

c# - 逆高速フーリエ変換から.wavに変換する方法は?

私はバンドパスフィルターを作るためにfftを作りました。その後、それを逆にして時間領域に渡すためにifftを作成しました。

私のifftはfftと同じ長さです。

ifftはもっと長くする必要がありますか、それとも長くする方法はありますか?このifftを.wavに渡すにはどうすればよいですか?

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

c# - fftとifftを行うC#ライブラリ?

高速フーリエ変換とその逆を行う無料の c# ライブラリはありますか?

0 投票する
5 に答える
10901 参照

c++ - FFT をスペクトログラムに変換する

オーディオ ファイルがあり、ファイルを反復処理し、各ステップで 512 個のサンプルを取得してから、それらを FFT に渡します。

ブロック 514 フロート ロング (IPP の ippsFFTFwd_RToCCS_32f_I を使用) としてデータを出力し、実数成分と虚数成分をインターリーブします。

私の問題は、これらの複素数を取得したらどうするかということです。現時点では、各値に対して行っています

これにより、少し使用可能なものが得られますが、値を 0 から 1 の範囲で取得する何らかの方法が必要です。上記の問題は、ピークが約 9 またはそれ以上に戻ってしまうことです。これは、オーディションのスペクトログラムでオーディオを実行すると、非常に強いように見えるという事実にもかかわらず、物事がひどく飽和し、スペクトログラムの他の部分がほとんど表示されないことを意味します. FFT によって返されるデータが何であるか 100% 確信が持てないことは十分に認めます (それ以外は、渡された 512 サンプルの長さのブロックの周波数値を表します)。特に、複素数が正確に何を表しているのかについて、私の理解が欠けています。

アドバイスや助けをいただければ幸いです。

編集:明確にするために。私の大きな問題は、返される FFT 値が、スケールが何であるかがわからないと意味がないことです。誰かがそのスケールを解決するように私に指摘できますか?

Edit2:次のようにすることで、非常に見栄えの良い結果が得られます。

私の目には、これまでに見た他のほとんどのスペクトログラム実装よりも良く見えます。

私がやっていることに重大な問題はありますか?