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

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

colors - スペクトル内の次の色を生成

みんな。カラースペクトルで次の色を生成するにはどうすればよいですか? 同様に、入力と出力に赤の値、緑の値、青の値を取る関数。赤一色 (RGB 255, 0, 0) を入力すると、オレンジがかった赤が出力されます。

編集: いくつかの背景情報: H、S、および V の値は 0 ~ 255 の数値範囲を持つと想定しています。私が書いている C プログラムは、色相値が 256 未満の場合はインクリメントし、そうでない場合は 0 にリセットし、HSV を RGB に変換し、画面に色を表示してループします。HSV から RGB への関数をいくつか試しましたが、うまくいきません。

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

python - RGB トリプレットのリストをスペクトルにソートする

RGB トリプレットのリストがあり、スペクトルのようなものを形成するようにプロットしたいと思います。

私はそれらをHSVに変換しました。これは人々が推奨しているようです。

ただし、結果は、きれいな虹色のスペクトルとはあまり似ていません。別の色空間に変換するか、HSL トリプレットを別の方法で処理する必要があると思います。

これはスペクトルのようには見えません

このデータを大まかに虹のように見せるために何をする必要があるか知っている人はいますか?

アップデート:

私はヒルベルト曲線をいじっていて、この問題を再検討しました。ヒルベルト曲線に沿った位置で RGB 値 (両方の画像で同じ色) を並べ替えると、興味深い (それでも完全に満足できるものではない場合) 結果が得られます。

ヒルベルト曲線に沿って並べ替えられた RGB 値。

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

audio - スペクトル差を使用した開始検出に注意してください

発症検出はかなり新しいです。私はそれについていくつかの論文を読み、時間領域のみで作業する場合、多数の誤検知/陰性が発生する可能性があり、一般に両方の時間領域で作業することをお勧めします。および周波数領域または周波数領域。

これに関しては、スペクトルエネルギーまたはFFTビンからの結果を使用して音符の開始を決定する方法に問題があるため、少し混乱しています。なぜなら、振幅の鋭いピークによって表される開始に注意しないのですか?

誰かがこれについて私に教えてもらえますか?ありがとうございました!

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

audio - 波形ファイルの FFT 出力をスケーリングする方法は?

Wave ファイル: 44100 Hz、16 ビット、デュアル チャンネル。

FFT を使用して、出力の各周波数ビンでマグニチュードを計算します。しかし、それをスケーリングして(リアルタイムの)スペクトルを描画する方法がわかりません。

誰でも私を助けることができますか?

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

math - スペクトルをリサンプリング/リビンする方法は?

Matlab では、Welch の方法 ( pwelch) を使用してパワー スペクトルを頻繁に計算し、それを両対数プロットに表示します。によって推定された周波数pwelchは等間隔ですが、対数対数プロットには対数間隔の点の方が適しています。特に、プロットを PDF ファイルに保存する場合、高頻度でポイントが過剰になるため、ファイル サイズが非常に大きくなります。

線形間隔の周波数から対数間隔の周波数まで、スペクトルをリサンプリング (再ビン化) する効果的なスキームは何ですか? または、過度に大きなファイル サイズを生成せずに PDF ファイルに高解像度スペクトルを含める方法は何ですか?

行うべき明白なことは、単に使用することinterp1です:

ただし、これはスペクトル内の電力を節約しないため、望ましくありません。たとえば、新しい周波数ビンの 2 つの間に大きなスペクトル線がある場合、結果のログ サンプリングされたスペクトルから単純に除外されます。

これを修正するには、代わりにパワー スペクトルの積分を補間します。

これはかわいらしく、ほとんどの場合機能しますが、ビンの中心が正しくなく、周波数グリッドがより細かくサンプリングされる可能性のある低周波数領域をインテリジェントに処理しません。

その他のアイデア:

  • 新しい周波数ビニングを決定accumarrayし、リビニングを行うために使用する関数を作成します。
  • 補間を行う前に、スペクトルに平滑化フィルターを適用します。問題: スムージング カーネル サイズは、目的の対数スムージングに適応する必要があります。
  • このpwelch関数は周波数ベクトル引数 を受け入れますf。この場合、Goetzel アルゴリズムを使用して目的の周波数で PSD を計算します。pwelchそもそも対数間隔の周波数ベクトルで呼び出すだけで十分かもしれません。(これは多かれ少なかれ効率的ですか?)
  • PDF のファイル サイズの問題については、スペクトルのビットマップ イメージを含めます (見栄えが悪い - きれいなベクター グラフィックスが必要です!)。
  • または、スペクトルを示す単純な線分ではなく、領域(多角形/信頼区間) を表示することもできます。
0 投票する
3 に答える
4858 参照

resolution - レイテンシを低く抑えながら高解像度のリアルタイム FFT

fft と解像度に関するウィキペディアの記事とスタックオーバーフローの記事をすべて読みました。ただし、大きな遅延の問題を発生させずに高解像度の周波数を取得する方法を学ぶのに役立つものは何もありません.

信号処理を正しく理解している場合:

サンプリング レートは 44,100 で、ブロック数は 256 です。その場合、周波数分解能は、FFT を使用した周波数ビンごとに 44,100/2/256 = 86.1 Hz になります。

http://www.tunelab-world.com/http://www.spectraplus.com/のような、周波数を 0.01 Hz まで測定できる例をよく見かけます。

上記の方法でそれを行った場合、そのような解像度を得るには 4410,000 個のビンが必要になります。44,100 のサンプリング レートでは、入力からデータを入力するのに 100 秒かかります。

私は何かが欠けていることを知っていますが、何がわかりません。

どうすれば信号を取得し、膨大な数のビンを取得したり、永遠に待機したりすることなく、そのような精度でグラフを描画したり、ピークの周波数を表示したりできますか?

よろしくお願いします。

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

opencv - C++ での画像のスペクトルの描画 (fftw、OpenCV)

特定の画像の 2 次元グレースケール スペクトルを描画するプログラムを作成しようとしています。OpenCV および FFTW ライブラリを使用しています。インターネットのヒントとコードを使用してそれらを変更することで、画像をロードし、この画像の fft を計算し、fft から画像を再作成することができました (同じです)。私ができないのは、フーリエスペクトル自体を描くことです。手伝っていただけませんか?コードは次のとおりです (重要度の低い行は削除されています)。

}

問題は「スペクトル」セクションにあります。スペクトルの代わりに、ノイズが発生します。私は何を間違っていますか?あなたの助けに感謝します。

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

file - 2 つの .mp4 ファイルを比較するには?

2 つの mp4 ファイルを比較したいのですが、アイデアはありますか? たぶん、ビデオスペクトルを挿入することによって?

ありがとう。

0 投票する
4 に答える
17291 参照

audio - オーディオ信号のパワー スペクトルを構築するときに、ウィンドウ関数をサンプルに適用する必要があるのはなぜですか?

オーディオ信号のパワー スペクトルを取得するための次のガイドラインを何度か見つけました。

  • N 個のサンプルを収集します。ここで、N は 2 の累乗です。
  • サンプルに適切なウィンドウ関数を適用します。たとえば、Hanning です。
  • ウィンドウ処理されたサンプルを FFT ルーチンに渡します。理想的には、実数から複素数への FFT が必要ですが、複素数から複素数への FFT しかない場合は、すべての虚数入力部分に 0 を渡します。
  • FFT 出力ビンの 2 乗の大きさを計算します (re * re + im * im)
  • (オプション) 各振幅二乗出力ビンの 10 * log10 を計算して、振幅値を dB で取得します。
  • パワー スペクトルが得られたので、あとはピークを特定するだけです。適切な S/N 比があれば、これは非常に簡単です。周波数分解能は、N が大きいほど向上することに注意してください。上記のサンプル レートが 44.1 kHz で N = 32768 の例では、各ビンの周波数分解能は 44100 / 32768 = 1.35 Hz です。

しかし...なぜサンプルにウィンドウ関数を適用する必要があるのでしょうか? それは本当にどういう意味ですか?

パワー スペクトルはどうですか。サンプル レートの範囲内の各周波数のパワーですか。(例: サウンドの Windows Media Player ビジュアライザー?)

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

c# - 大きな音によってトリガーされたイベントのように、オーディオのスペクトルが特定の高さに達したときにイベントをキャッチする方法は?

プレーヤーのプログラム、波形発生器、スペクトラム アナライザー、時刻を記録するリスト ボックスが既にあります。これらのものは機能しています。ここで、音声ファイルを再生し、特定のしきい値またはスペクトルの最大ピークに達すると、その現在のイベントの時間がリスト ボックスに記録される機能を追加したいと思います。リストボックスに時間を追加できたので、唯一の問題はイベントを検出する方法です。スペクトル アナライザーで FFT を使用しましたが、これに行き詰まっています。FFT、波形発生器、スペクトラム アナライザなどの現在のリソースを使用してこれを行うにはどうすればよいですか?

これは私が必要としていたものです。

  1. オーディオを再生し、サウンドが特定のしきい値に達すると、ストリームの現在の時間が記録されます。

どうもありがとう。私の締め切りは36時間後です。すべての助けをいただければ幸いです。私の将来はこれにかかっています。私に幸運を。:) みんなありがとう!サンプルまたは正確な作業を教えてください。私のプロジェクトについてさらに情報が必要な場合は、私のリソースを提供します。ありがとう!神のご加護を。

PS このプロジェクトには、スネア ドラム検出器が必要です。しかし、あまり時間がないので、スネアではなくスペクトルの最高ピークを検出することにしました。ほとんどの場合、スネア ドラムはベースやシンバルなどの他の楽器よりも最高のピークを生成するためです。みんなありがとう!