ハーモニックサイレンアンプ Mark-II 〜電子ボリュームの改良〜

電子ボリューム IC は引き続き LM1972 を使います。

コイツを改めて簡単に説明しておきますと、PIC 等を使いシリアルでボリューム値を送ると入力されたオーディオ信号を 0dB から -78dB まで 126 段階に減衰出来るアッテネーター IC になります。

0dB から 47.5dB(0000 0000 〜 0101 1111)までは 0.5dB ステップ、48dB から 78dB(0110 0000 〜 0111 1110)までは 1dB ステップになり、0111 1111 以上で -100dB(MUTE)動作になります。

この IC を使いフェードイン・アウトを実現したわけですが、Mark-I ではカウンタで回して -1dB づつ単純に増減させてました。 Mark-II では増減値を人間の耳の特性(小さな音の変化は良く分かるが、大きい音の変化はよく分からない)に近づけてみました。

ここで勘の良い人は分かったと思いますが、減衰量を直線的な B カーブから指数的な A カーブにしたと言う事ですね。

▼ 電子ボリューム減衰特性の比較

グラフの赤が Mark-I の減衰特性、青が Mark-II の減衰特性になります。 フェードイン時には最初は急激に音量が上がり、その後ゆるやかに 0dB に近づくようなカーブを描きます。 フェードアウト時にはその逆です。

オーディオ機器のボリュームはほとんど A カーブになっていると思います。 これでより自然な感じに(本物のように)聞こえるようになるでしょう。

さて PIC のプログラムですが、まずエクセル上で計算を行い dB値 と 送信値を得ました。 計算式は v=v+1+INT(v/13) 、つまり 13 ごとに増分を増やします。 これで 0 から -78dB まで 37 段階になります。

この計算は別にループ内で行っても良かったのですが、PIC プログラムを勉強するためにテクニックの一つである “テーブル参照” を使う事にしました。 もうお忘れかと思いますが、私はサイレンアンプを作りたいがために PIC を勉強し始めたという PIC の超初心者なんですよ。

この 0 と -78dB を約 1.6 秒で変化させフェードイン・アウトを実現する訳ですね。 1.6 秒というのはもちろん実際の救急車の音を解析した結果です。

と、ここまでサラっと書いてますが、指数関数の何たるかをスッカリ忘れてしまっている身としては、図のようなカーブを出すための数値を得るまで、実はものすご〜く時間が掛かって悩みました。 1 週間ほど毎晩。

▼ 電子ボリュームユニット