問題タブ [dft]

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

matlab - 畳み込み定理を検証する

私の主な目標は、畳み込み定理が機能することを示すことです(念のため、畳み込み定理はそれを意味しidft(dft(im) .* dft(mask)) = conv(im, mask)ます)。私はそれをプログラムしようとしています。

これが私のコードです:

resIFFT比較したいですresConv。キャストを使用してdoubleを使用している場合、マトリックス内の数値が互いに近くなるため、キャストが欠落していると思います。たぶん、キャスティングやパディングの場所に間違いがありますか?

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

c# - シンプルな DFT ローパス

DFT を使用して単純なローパス フィルターを作成するのに問題があります。最終的には、オーディオをリアルタイムでピッチシフトできるようになることを望んでいますが、現状では、これを正しく行うことさえできません。私はこの分野のトレーニングを受けていません。FFT が波を周波数に変換し、iFFT がそれを元に戻すことを知っているだけで、他にもいくつか読んだことがあります。正直なところ、これまでと同じように機能することに驚いています。とにかくここにコードがあります:

samplesここには 8Bit Unsigned PCM が入ります。spos<- サンプル数

これで、入力の 128 個のサンプル部分に対して一連の DFT を計算しました。kick1000HzにまたがるDFTのサンプル数です(希望)。IEにはHzfrequencies.Length / 2までの周波数振幅データが含まれているため、 =は正しい値を与えるはずですrate/2frequencies[0].Length / 2 * shiftUp / (rate / 2)frequencies[0].Length * shiftUp / rate

これは私が問題を抱えている部分です。それがなければ、出力は素晴らしく聞こえます!これは、インデックス 0 とインデックス 64 の両方をスキップします。これらは両方とも 0 の複素数コンポーネントを持ち、インデックス 0 の値が重要であるとどこかで読んだことを思い出します...

最後に、変換を元に戻します

...サンプル配列に戻します

...ファイルにまとめます

...それを Audacity にインポートして、アーティファクトで耳を殺します。

スペクトル表示は、コードがある程度機能することを示しています

一番下はコードの出力です

ただし、曲全体で発生するこれらの不快な甲高いパチパチ音があります。ギブズ現象とウィンドウ関数について聞いたことがありますが、ここでそれを適用する方法がよくわかりません。変数は、ウィンドウ関数でのfade私の最善の試みです。1000hz マークを超えるものはすべて、2 サンプルで 0 にフェードします。

何か案は?

ありがとう!

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

java - FFT を使用して変調信号から特定の周波数を抽出する

次のように FSK を使用して、データでキャリア周波数信号を変調しました。

明らかに、ゼロの場合は FREQUENCY_LOW、1 の場合は FREQUENCY_HIGH を送信しています。

では、FFT を使用してそれを復調するにはどうすればよいでしょうか。私は FREQUENCY_LOW と FREQUENCY_HIGH の大きさ (存在と不在) を時間を通してサンプリングすることに興味があります。

私はFFTの基本しか知りません。これを書き始めていましたが、意味がありません:

誰かがコードを手伝ってくれますか?

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

c# - 離散forurier変換の配列から結果を取得します

dftの実装を書いたところです。これが私のコードです:

したがって、サンプリング周波数は44100 Hzで、120Hzの正弦波の50msのセグメントがあります。結果によると、ポント7と2200にdft関数のピークがあります。何か間違ったことをしましたか?そうでない場合は、結果をどのように解釈すればよいですか?


AFORGEのFFT法を試してみました。これが私のコードです。

元の符号を取得することを期待していましたが、何か別のもの(正の値のみを持つ関数)を取得しました。それは正常ですか?前もって感謝します!

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

python - Python での Unity の n 乗根の計算

したがって、n == n で 1 の k 乗根を返すアルゴリズム croot(k, n) を作成しようとしています。私はほとんど正しい答えを得ていますが、特定の数値では間違っているように見える本当に奇妙な表現を与えています。ここに例があります。

出力は次のとおりです。

おっおっおっ。したがって、k = 2 および n = 8 のときのルートは間違っています。1j、j、または 1.00000j などのように表される i である必要があるためです。これは、FFT アルゴリズムを作成しようとしているからです。私は複素数と Python の経験があまりないので、単純な間違いを犯している可能性があります。

ありがとう、

追加情報が必要な場合は、お尋ねください。

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

fft - 逆 DFT を使用して DFT から多項式の係数を取得する

DFT を使用して 2 つの多項式を乗算しようとしていますが、乗算の DFT から最後のビットを取得する方法がわかりません。

p(x) = x - 4, dft -3, i-4, -5, -i-4 そして q(x) = x^2-1, dft 0, -2, 0, -2

度(pq) = 3

したがって、ユニティ 1、i、-1、-i の 4 乗根が得られます。

pq の dft は 0、8-2i、0、8+2i です。

dft から pq の係数を取得する方法を教えてください。

ありがとう!

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

c++ - FFT: このアルゴリズムをどのように修正して、係数表現に戻すことができますか?

以下は Cooley-Tukey FFT アルゴリズム (Rosetta Code にあります) の基数 2 の実装です。FFT を 1 回実行すると、データ配列は係数からポイント値表現になります。どのように係数に戻すのですか?

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

opencv - OpenCV gpu::dft 逆変換後の画像の歪み

画像の周波数フィルタリングの GPU 実装に取り​​組んでいます。私のコードはCPUでうまく機能します(私はこのようなものを使用しました)が、GPUで同じ作業をしようとして一日中費やしましたが、成功しませんでした。周波数領域でフィルターを適用したいので、順変換の完全な (複雑な) 結果が必要です。完全なスペクトル (32FC2) を取得するには、dft を転送するために 2 つの複素行列 (src と dst) を渡す必要があることを読みました。ただし、逆変換後に同じ画像を取得できません (返された画像は非常に歪んでいます)。

私のコード(最も近い結果):

あなたの助けと提案は大歓迎です。