0

いくつかの調査を行いましたが、正確に探しているものを見つけることができませんでした。現時点では、com ポートでチャネル値を送信する必要があります。

例えば:

  • ファイルの内容freqs.ini

    低=0-xx khz;
    mid=xx-yy khz;
    高 = yy-zz khz;
    

次に、次のようなパーセンテージで値を取得します

  • 期待値

    lowPercent  = 10;
    midPercent  = 77;
    highPercent = 53;
    

したがって、これらの値を rs232 で送信できるようになり、部屋がクラブになります:)(このコードを使用して LED ストリップを照らしています)。いくつかのスペクトル アナライザー プロジェクトを見つけましたが、それらはすべて 9 つのチャネル、つまり、低-低から-高までの 3*3 の組み合わせを持っています。

COM ポートと通信する方法は知っていますが、以前に設定した 3 つの周波数範囲の整数値を取得するにはどうすればよいですか?

4

1 に答える 1

0

まだそれが必要かどうかはわかりませんが....

リアルタイムで音のスペクトル解析を行う方法を知りたいですか?

1.オーディオサンプルのバッファを取るキューを実装する

2.プログラムによって計算されたバッファと適切なウィンドウ関数(通常、ハミングまたはハン)の積をfloat配列として取得します

3.yelded 配列の FFT を実行します。すべての言語にアルゴリズムが存在する可能性があります....最適なものを見つけて使用し、各出力係数 ( Real_part^2 + Imaginary_part^2 、FFT の場合) から平方モジュールを取得します。係数の代数表現を返します)

  1. 帯域全体の係数の合計: 周波数に関連付けられている係数を知るには、k 番目の係数が (SampFrequency/BufferLength)*k Hz であることを知る必要があります。したがって、帯域境界を簡単に見つけることができます。

  2. [0 , 1] 間隔で正規化する必要がある場合は、3 つの間の最大値の 3 つの yelded バンド値のそれぞれを除算するだけで済みます。

  3. Shift <= BufferLength である Shift 値でバッファーキューをポップし、もう一度開始します

FFT alg からの係数の数は BufferLength に等しい (これは離散フーリエ変換の定義による) ため、長いバッファーを選択すると周波数分解能は向上しますが、プログラムは遅くなります。光の強さは、BufferLength オーディオ フレームの後では変化せず、Shift オーディオ フレームの後では変化しません...そして、BufferLength 間の比率が高いと、ゆっくりと光の変化が得られます....いくつかのライトをオン/オフする....あなたのalgを速くてローファイにしましょう!

最後にすべきことは、ミキサーの EQ ノブから周波数帯域を発見することです....この情報がミキサーのハンドブックにあったかどうかは覚えていません。

于 2013-05-18T06:37:07.520 に答える