FPGAベースのカラーミュージック

FPGAベースのウェーブレット分析を使用したカラーミュージックまたは3ウェイリアルタイムスペクトルアナライザーの開発。



お父さんは、彼が作ったアナログカラーミュージックを見せてくれました。 3つのスポットライトが音楽に対してはっきりと明るく点滅し、それぞれが独自の周波数範囲に合わせて調整され、4番目のスポットライトはスポットライトのいずれかが消えたときにのみ点灯したため、部屋は静かに暗くなりませんでした。 それから彼女の中に何かが壊れて、彼女は棚の上に十年をかけた。 私は音楽を聴くのが本当に好きで、色彩音楽の鮮明な思い出がまだあるので、それを復活させて、お気に入りのリズムに合わせてスポットライトを点滅させたいと思いました。 もちろん、高度な技術を使用して計画を実施します...









私はFPGAベースのデジタルおよびアナログ信号処理会社で働いているので、アイデアはそれ自体で生まれました。 3つの周波数範囲に調整された3つのフィルターを使用して、リアルタイムでオーディオ信号を駆動する「番号スロットル」を作成することにしました。 カラーミュージックの作成に使用される周波数範囲をインターネットで検索したところ(このトピックはかなり古いため)、次のことがわかりました。

LF:40-110 Hz

ミッドレンジ:1000-5000 Hz

高音域:10000-18000 Hz

フィルターとして、会社が扱うウェーブレット変換を調べ、3 MHzのサンプリング周波数でADCからデータを畳み込む3つの係数セットを取得しました。 フィルターの周波数応答を図に示します:







結果のプロジェクトのスキームは次のとおりです。







プロセッサとして、私は同じ会社で作成されたForth-processorを使用したので、完全に動作する方法を知っています。 ハードウェアでは、フィルター係数を備えたメモリブロック、ADCデータリーダーが作成され、ADCデータとフィルター係数の畳み込みが実装され、LED用のPWMブロックも実装されました。 すべてをプロセッサに接続し、コンパイルしてSpartan-3 XC3S400に配線しました。



次に、必要な処理を行うプロセッサのプログラムの作成を開始しました。畳み込みの結果(特定の周波数での信号の振幅)を読み取り、結果の値をPWM LEDに送ります。 畳み込みの結果は正しいものでしたが、何らかの理由で、音楽がほぼ停止したときにのみLEDが常にオンとオフになりました。 私は理解し始め、LEDグローの輝度はPWMしきい値に線形ではなく、対数に依存していることに気付きました。 つまり、1024ビットのPWMを使用している場合、LEDの明るさを調光器から最も明るい明るさにスムーズに変更するには、次のPWMしきい値番号を連続して取得する必要がありました:0、15、31、63、127、255、511、1023 、8種類のLEDグローが得られましたが、それで十分でした。 そして、畳み込みの結果をこれらのしきい値に調整した後、カラーミュージックは思い通りに機能しました。 次に、パッシブチャネルのロジックを作成しました。 おおよその機能は、いずれかのチャンネルがフェードすると、このパッシブLEDが明るさを増し始めるというものです。 したがって、部屋が完全に暗くなることはありません。 同じ感度の自動調整を作成しました。音楽の音量が変化すると、プログラム自体が係数を増減し、フィルターからの畳み込みの結果が乗算されます。 また、Delphiでプログラムを作成しました。このプログラムは、RS-232 COMポートを介してボードと通信し、リアルタイムですべてのチャネルにグラフをプロットしたり、微調整として内部変数の値を変更したりできます。 これらの設定はすべて、与えられたボードにはんだ付けされたEEPROM 93C86フラッシュドライブに書き込むことができます。 プログラムの外観:







すべてが機能するようになったら、電源ユニットを作成する必要がありました。 電源ユニットへの移行として、T0125-12.5オプトサイリスタを使用しました。







これらの要素には4つの出力があります。そのうちの2つは通常のLEDで、他の2つは電源スイッチです。 LEDがオンのとき、2つの電源出力が閉じている、またはその逆であると推測できます。 私のプロジェクトのハードウェアでPWMチャネルを複製し、それらをオプトサイリスタの出力に接続しました(オプトサイリスタの逆論理のためにこれらのチャネルのPWMを反転する必要がありましたが)、スポットライトを接続するために電源セクションに小さなスカーフを広げました。







すべてが初めて機能しましたが、それでも機能します。 スポットライトとして、従来の220V電球が使用されます。







その後、カラーミュージックパネルの2つのチャンネルに2つのアナログメーターを追加し、それらを美しい緑色のバックライトにして、そのようなボックスを作成することにしました。







さて、内部はすべて次のようになります。







カラーミュージックの作品のビデオを見ることができますが、すべてが実際よりもはるかに少ない頻度で点滅することに注意してください。







Spartan-3 XC3S400-4tq144のファームウェアファイルとソースを含むDelphiプログラムはこちらです。 プリント回路基板のレイアウトについては後ほど説明します。 このキットは、同じシステムを自分で真剣に組み立てたい人には十分です。 =)



All Articles