問題タブ [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.
math - 信号のスペクトル解析を行う際のフーリエ変換 (FFT) の単位
私の質問は、信号のスペクトル分析を行った結果、または信号を FFT に投入し、適切な数値パッケージを使用して結果を解釈した結果の物理的な意味に関係しています。
具体的には:
- 時変電圧 v(t) などの信号を受け取る
- それをFFTに投げます(複素数のシーケンスが返されます)
- ここでモジュラス (abs) を取り、結果を 2 乗します。つまり |fft(v)|^2 です。
これで、y 軸に実数が表示されました。これらをスペクトル係数と呼びましょうか。
- サンプリング解像度を使用して、クックブックのレシピに従い、スペクトル係数を周波数に関連付けます。
- この時点で、x 軸に周波数を持つ周波数スペクトル g(w) がありますが、y 軸にはどのような物理単位がありますか?
私の理解では、この周波数スペクトルは、電圧信号にさまざまな周波数がどれだけ存在するかを示しています。これらは、元の信号を再構成するために必要なさまざまな周波数のサインとコサインの係数であるという意味でスペクトル係数です。
最初の質問は、これらのスペクトル係数の UNITS は何ですか?
これが重要な理由は、スペクトル係数が非常に小さい場合と非常に大きい場合があるためです。そのため、dB スケールを使用してそれらを表現したいと考えています。
しかし、そのためには、次の選択をしなければなりません。
- 電圧などのフィールド測定に対応する 20log10 dB 変換を使用します。
- または、電力などのエネルギー測定に対応する 10log10 dB 変換を使用します。
どのスケーリングを使用するかは、単位が何であるかによって異なります。
これに光を当てていただければ幸いです。
audio - 「Winampスタイル」スペクトラムアナライザー
信号のスペクトル分析 (Amp/Freq) をプロットするプログラムがあります。これは、DFT を極座標に変換したものです。ただし、これは、たとえば winamp (左上隅にある) や、事実上他のオーディオ ソフトウェアがプロットするようなグラフではありません。この種のグラフが何と呼ばれているのか (まったく別の名前がある場合) よくわからないので、何を探すべきかわかりません。
私は、周波数軸が底 2 の指数関数であることについてかなり肯定的ですが、振幅軸は私を困惑させます。
ポインタはありますか?
apache-flex - Flex:ストリーミングメディアを使用したcomputeSpectrum?
作成したFlex3アプリがあり、Red5サーバーからRTMP経由でオーディオをストリーミングしています。SoundMixer.computeSpectrum()を使用できるようにしたいと思いますが、スペクトルデータはすべてゼロです。ある場所では、AdobeはSoundMixer.computeSpectrum()がRTMPデータでは機能しないと書いています。
「RTMPソースからロードされたメディアの場合、BitmapData.draw()およびSoundMixer.computeSpectrum()メソッドを使用してランタイムグラフィックスおよびサウンドデータを抽出することはできません。」 http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000353.html
十分にクリア。ただし、computeSpectrum()の実際のドキュメントは次のとおりです。
「さらに、このメソッドは、RTMPサーバーと同じドメインに存在するコンテンツによって呼び出された場合でも、RTMPストリームからデータを抽出するために使用することはできません。[...]このメソッドは、FlashPlayer9.0のRTMPでサポートされています。 115.0以降およびAdobeAIRで。」
うーん。それは私には矛盾しているようです。
何かアドバイスはありますか?
c++ - スペクトログラムC++ライブラリ
C ++ / Qtでの現在のプロジェクトでは、シグナル(基本的にはdoubleの配列)からスペクトログラムを計算できるライブラリ(LGPLが推奨)が必要です。GUI部分にはすでにQwtを使用しています。
助言がありますか?ありがとう。
actionscript-3 - 波形を使用したカラースペクトルの描画
このActionScriptサンプルに出くわしました。これは、波形を使用して、ループを介して一度に1行ずつカラースペクトルを描画する方法を示しています。
ただし、各RGBチャネルの波形位置により、色が欠落しているカラースペクトル(純粋な黄色、シアン、マゼンタ)が作成されるため、スペクトルは不完全です。
描画されたカラースペクトルがすべての色を示すように、この問題を解決するにはどうすればよいですか?
更新されたソリューション
興味のある方のために、上記の問題に対処するために私が書いた解決策を以下に示します。RGB波形は、フルカラースペクトルの作成には使用されません。また、コードは柔軟であるため、生成されたスプライトに独自のサイズと色の変数を割り当てることができます。この例の色変数は、完全なカラースペクトルを生成するために、赤、黄、緑、シアン、青、マゼンタ、赤です。
actionscript-3 - AS3 computeSpectrum fft true
から返された値のcomputeSpectrum(bytes,true,0)
意味を理解しようとしています。バイト配列から読み取った浮動小数点数ごとに 0 から 1 の範囲の値がありますが、各値は Hz の範囲を表します。
java - Java での時間に対する信号振幅
厄介な問題を解決するために頭を悩ませています (少なくとも私にとっては)。
(Java を使用して) オーディオ ファイルを再生しているときに、信号の振幅を時間に対して表示したいと考えています。
つまり、一種のオシロスコープ (スペクトル アナライザー) を表示する小さなパネルを実装したいと考えています。オーディオ信号は時間領域で表示する必要があります (縦軸は振幅、横軸は時間です)。
誰もそれを行う方法を知っていますか? 信頼できる良いチュートリアルはありますか? 私はJavaについてほとんど知らないので、誰かが私を助けてくれることを願っています.
アップデート:
基本的に私が欲しいのは、周波数ではなく、時間に対する振幅です。オーディオ信号は時間領域で表示する必要があります (縦軸は振幅、横軸は時間です)。
c++ - APIを備えたリアルタイムスペクトラムアナライザ
Windowsで波形のリアルタイムスペクトル分析を提供するCまたはC++APIを探しています。
周波数成分を決定するために必要なサンプルウィンドウの大きさは完全にはわかりませんが、小さいほど良いです。たとえば、0.5秒の長さのサンプルで動作し、Hzまでの周波数成分を決定できる場合、それは非常にすばらしいことです。
java - Clojure/Java: 音のスペクトル分析のための Java ライブラリ?
オーディオ データのチャンクを受け入れ、特定の周波数帯域内で経時的な平均振幅を返すことができるライブラリを探しています。
comp.dsp でこの質問をしたことがありますが、基本的な FFT ライブラリを使用して自分でこれを構築するためのノウハウを取得するには、現在よりも多くの時間とエネルギーが必要になることは明らかです。これが私の元の質問です。詳細は次のとおりです。
サウンドで遊ぶための素敵なライブラリをたくさん見つけました (私は過去に JSyn を使用しました) が、これらのどれも、サウンド サンプルに関する迅速で汚いスペクトル情報を返すように設定されていないようです。
どんなポインタでも大歓迎です。