問題タブ [spectrum]
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.
transform - フーリエ変換から周波数スペクトルを描く方法
音楽ファイルの周波数スペクトルをプロットしたい (たとえば、Audacity のように)。したがって、x 軸にヘルツ単位の周波数、y 軸に振幅 (またはデシベル) が必要です。
曲 (約 2000 万サンプル) を 4096 サンプルずつブロックに分割します。これらのブロックは、2049 (N/2 + 1) の複素数 (正弦と余弦 -> 実数と虚数部) になります。では、これらの何千もの個別の 2049 アレイを取得したので、それらをどのように組み合わせることができるでしょうか?
FFT を 5000 回実行すると、5000 個の 2049 配列の複素数が得られるとします。5000 配列のすべての値を加算してから、結合された 2049 配列の大きさを取得しますか? 次に、x 軸を曲のサンプルレート / 2 (例: 44100hz ファイルの場合は 22050) にしますか?
あらゆる情報が評価されます
c - FFT ビン幅の明確化
LCD ディスプレイに出力する 8 ビット Atmega32 用のスペクトラム アナライザを開発しています。最大サンプリング周波数は 40kHz であるため、最大周波数は fs > 2B に準拠して 20kHz です。現在、内部で信号を生成してから、この信号に FFT を適用し、LCD でスペクトルを表示しています。
これは疑似コードで書かれていることに注意してください。
現在、出力スペクトルには FFT_N/2 = 32 個のビンがあり、それぞれが 1Hz を表しています。したがって、私のスペクトルが現在表している最高周波数 (私はこれをテストしました) - 32Hz. 各ビンが 625Hz を表すように、これらのビンの「周波数幅」を増やすにはどうすればよいですか? メモリの制限があるため、FFT_N のサイズを 64 ~ 128 を超えて増やすことはできません。
python - Cython によるパワースペクトル
Cython でコードを最適化しようとしています。FFT を使用せずに、パワー スペクトルを実行しています。これは、クラスで行うように指示されたものです。Cython でコードを書き込もうとしましたが、違いがわかりません。これが私のコードです
時間とデータは numpy.loadtxt を介してロードされ、この関数に送信されます。私がする時
.html ファイルは非常に黄色であるため、あまり効率的ではありません。特に for ループ全体とべき乗の計算とすべてを返します。
Cython の公式ガイドを読んでみましたが、C でコーディングしたことがないので、ややわかりにくいです。
すべてのヘルプは非常に高く評価されています:)
java - Javaで2Dマトリックスのピークを見つける
問題の解決策を探すのに数日を費やしました。1 つの大きなマトリックス (約 1400 x 2700) でピークを見つけるのに問題があります。メインのピークと 2 つの小さなピーク、つまり写真の 3 つの最大のピークを見つける必要があります。行列は、1 つの当てはめ画像の 2 つの FFT の結果です。主な問題は、メイン ピークのサイズを見つけることです。中央のピークの最大値を見つけることができましたが、ノイズのためにその端がどこにあるかを見つけることができません。解決策を見つけるために私が見ることができるアイデアやコードサンプルはありますか?
更新: もう 1 つ関連する質問があります: マトリックスのしきい値 (ノイズ) を効果的に決定するにはどうすればよいですか? それがうまくできたら、ピークを見つけるのは簡単ですか?
java - パワースペクトルの自己相関
1つの画像のパワースペクトルの自己相関をどのように実装できるか誰かが考えていますか?私は使ってみました:
しかし、それは機能していませんか?なぜ、または他の方法で何か考えがありますか?
android - リモートURLからオーディオファイルを再生するときにオーディオスペクトルを生成するにはどうすればよいですか?
Webサービスから受信したオーディオファイルを再生するカスタムオーディオプレーヤーを作成した画面が1つあります。この部分は、正常に完了しました。さて、オーディオファイルに従って、そのオーディオファイルのオーディオスペクトルを生成したいと思います。ネットで検索したところ、FFTに関連するライブラリがいくつか見つかりました。しかし、コードに統合する方法がわからないので、実装方法の例やガイダンスが必要でしたか?
どんな助けもいただければ幸いです:-)
前もって感謝します .....
matlab - matlabでの時間と頻度のプロット
オーディオウェーブとその時間-周波数データ(x軸に時間、y軸に波のエネルギーと周波数データ)を示すグラフを作成する方法を見つけようとしています。私は2つの別々のプロットでそれを行うこのコードを持っています:
そして今、私は2つのことについて助けが必要です。
まず、スペクトログラムの時間を秒単位で取得するにはどうすればよいですか?現在、x範囲は0〜340(「時間」のラベルが付いています)でグラフ化されており、クリップの長さは約40秒です(他のプロットはこれを正しく表示しています)。
次に、それらを一緒にプロットするにはどうすればよいですか?スペクトログラムから行列を取得できることは知っていますが、その行列からどの配列を取得し、その時間枠を秒に変換するにはどうすればよいですか?
編集:
最初の問題は解決しましたが、グラフはまだ奇妙なことをしています。どちらも約40のデータを出力しますが、グラフの範囲とデータのオフセットは異なります。スペクトログラムは0〜40秒ですが、最初の.5秒はデータを表示せず、波のプロットは0〜45秒で、最後の5秒はデータを表示しません。範囲とオフセットを同じにするにはどうすればよいですか?
編集2:
axis tight;
両方のサブプロットで使用する必要がありました
audio - jTransforms DoubleFFT_1D の最初の 2 つの値
ドキュメントによると
public void realForward(double[] a):
実データの 1D 順方向 DFT を計算し、結果を に残します。出力データの物理レイアウトは次のとおりです。
n が偶数の場合
a[2*k] = Re[k], 0<=k<n/2
a[2*k+1] = Im[k], 0<k<n/2
a[1] = Re[n/2]
このスレッドから: jTransforms DoubleFFT_1D からのパワー スペクトル密度
最初の要素が DC 要素で、2 番目の要素が最後の要素に対応することがわかりました。最初の 2 つは、特別なご褒美を与えるよりも破棄した方が便利です。DC素子は捨ててもいいですか?そして最後?
問題がなければ、DC 要素のマグニチュードを計算する必要がありますか? 対応する虚数値を持たない最後の要素はどうなるでしょうか?
そのように?マグニチュード = Math.sqrt(Re[n/2]*Re[n/2]);
curve-fitting - フィールドで測定された風スペクトルへのフォン・カルマン曲線フィッティング
したがって、この風監視プロジェクトでは、2 台の 3D 音響風速計、具体的には 2 RMYoung 81000 からデータを取得しています。データ出力は、10 分間、10Hz のサンプリング周波数でデジタル処理されます。すべての前処理 (座標回転、トレンド除去など) の後、乱流データの 3 つの直交時系列を取得します。現在、4096 ポイントのウィンドウと 50% のオーバーラップで 2 時間の測定の静止データを使用して、3 つの方向すべての周波数スペクトルを取得しています。スペクトルを取得した後、取得したスペクトルを対数間隔で平均化する対数周波数平滑化アルゴリズムを適用します。
2 つの質問があります。
- 測定から得たスペクトルは、添付の図に見られるように、最高周波数で明確な下降傾向を示しています。このエネルギーの損失は、音波風速計の内部フィルターと関係があるのでしょうか? それとも他に何ですか?「ブレーク周波数」までスペクトルを考慮するだけで、この損失を補償する方法はありますか?
http://i.stack.imgur.com/B11uP.png
- カーブ フィッティング アルゴリズムを適用して、フォン カルマンの式に従って積分長スケールを決定する場合、正しい手順は何ですか?元のデータをカーブ フィッティングすると、より高い頻度のデータ ポイントにより多くの重みが与えられますか? または、対数周波数平滑化データを使用してフォン・カルマン方程式を近似し、対数スケールのデータに等しい重みを与えますか? 場合によっては、両方のアプローチを使用して整数長スケールの非常に異なる推定値を取得します (例: Original -> Lu=113.16 Lv=42.68 Lw=9.23; Freq. Smoothed -> Lu=148.60 Lv=30.91 Lw=14.13)。
対数周波数平滑化と元のデータを使用したカーブ フィッティング: http://i.imgur.com/VL2cf.png
不明な点があればお知らせください。私はこの分野では比較的新しいので、アプローチに間違いを犯している可能性があるため、アドバイスやヒントを教えていただければ幸いです.
c++ - 画像スペクトルにノッチフィルターを適用する(OpenCV)
OpenCV2.4とC++を使用して画像スペクトルにノッチフィルターを適用するにはどうすればよいですか?画像のDFTを計算し、特定の周波数を抑制し、逆dftを計算したいと思います。周波数ドメインでノッチフィルターを適用する方法のサンプルコードを誰かに教えてもらえますか?
編集:
これが私が試したものですが、周波数スペクトルの象限が整然としていないため、スペクトルの原点は画像の中心ではありません。そのため、抑制すべき周波数を特定することは困難です。原点が中心になるように象限を交換すると、逆DFTは間違った結果を示します。スワップされた象限で逆dftを実行する方法を誰かに教えてもらえますか?
頻度画像filter1とfilter2の列数がわかりません(コードを参照)。forループでuとしてfilter1.colsを使用すると、画像の右側の境界線にアクセスできません。Filter1とfilter2は約 5000列ですが、ソース画像の解像度は1280x1024(グレースケール)です。それについて何か考えはありますか?
私のコードについてさらにコメントはありますか?