LtSpiceでイコライザを作成してみる
こんにちは。
今回は僕が2年前に作成したLTspiceによるオーディオイコライザの実装について紹介したいと思います。当時は信号処理などの知識を持ち合わせていなかったので、LTspiceでアナログに実装していました。音楽や電子回路に興味がある人などぜひみていってください。
こちらの参考文献に非常にお世話になりました。
イコライザとは
MacOSに入っているAppleMusicでこのような画面を見たことがありませんか?
これがイコライザです。
DJが片耳にヘッドフォンをつけながら、機械をいじったりつまみを捻ったりしているところを見たことある人、いると思うのですが彼らは曲の音量、ピッチなどを調節するほかに、イコライザによってそのフロアに最適な音楽を提供しているのです。
イコライザとは一般的に電気信号の全体的な周波数特性を加工・調節する「回路」なんですね。(現在は主にディジタルで処理が行われていますが...)
何もしない場合 | ロックに最適化されたイコライザ |
---|---|
基本回路について
グラフィックイコライザの基本回路はLCR直列共振回路になります。
そこでC1, L1, R4からなる直列共振回路を非反転増幅回路に挿入してみましょう。
この時に、R2の上に挿入するのか、R2とR3の真ん中に挿入するのか、それともR3の下に挿入するのかによって回路の特性が変わってきます。
そこでLCR直列共振回路の周波数に対するインピーダンスは$Z=R+j(\omega L-\frac{1}{\omega C})$となることから、周波数によって変化します。以下に一例を示しておきますね。するとインピーダンスが共振周波数となるところで最小となる、凸型のグラフとなってることが確認できます。
すなわちこのインピーダンス特性を利用することで、抵抗の上・真ん中・下にLCR直列回路を挿入することで任意の周波数の利得を大きくしたり小さくしたりすることができますね。
上側に挿入 | 真ん中に挿入 | 下側に挿入 |
---|---|---|
RL回路について
今回はCRL直列共振回路のうち、RLカイロの部分をキャパシタとNPNトランジスタ、そして抵抗で構成された回路します。$V_{cc}$と$V_{ee}$はそれぞれ6Vと-6Vの定電圧源に接続されているとします。
それではこの回路全体のインピーダンスを求めていきましょう。
\displaylines{
i = i_1 + i_2 = \frac{V_{in}}{R_2 + 1/(j \omega C)} + (1 - \frac{R_2}{R_2+ 1/(j\omega C)})\frac{V_{in}}{R_1} \\
Z=\frac{R_1+j\omega C_1R_1R_2}{1+{j\omega C}_1R_1}
}
すると${j\omega C}_1R_1\ll1$ のとき$Z\approx\ R_1+j\omega C_1R_1R_2$とできますね。これはすなわちインダクタと抵抗の直列接続とみなせます。
Q値と共振周波数について
LCR直列共振回路を作成するには上記の回路にキャパシタ$C_2$を挿入する必要がありますね。
そこで挿入した場合のQ値と共振周波数$f_0$は次のようになります。
\displaylines{
f_0&=\frac{1}{2\pi\sqrt{LC}}\ =\frac{1}{2\pi\sqrt{C_1C_2R_1R_2}}\\
Q&=\frac{1}{R_1}\ \sqrt{\frac{L}{C_2}}=\sqrt{\frac{C_1R_2}{C_2R_1}}
}
このことから、特定の周波数の音をブーストまたはカットする準備ができましたね。
補足
RL回路についてですが、トランジスタを利用しなくてもLTspice上では自由なパラメータのインダクタで実装することができます。おそらく参考文献にさせていただいた方が、インダクタをトランジスタによって実装することで、実際に電子回路で実装する際にパラメータをうまく調整できるようにしてくださったのだと思います。
作成したグラフィックイコライザ回路
以下に示すのが最終的に作成したグラフィックイコライザ回路です。入力としては音楽などの小信号を想定しており、32Hzから16kHzまでの音に対してそれぞれをブーストまたはカットできるようになっています。
先ほど、RLC直列インピーダンス回路を抵抗の上側と下側に挿入することで、ブーストするかカットするかを切り替えられることを示しましたが、今回はVolという変数を利用することで抵抗の値を変更してそれぞれの周波数における利得を変更しています。
\mathrm{vol} = \left\{
\begin{array}{ll}
1 & (ブースト) \\
0.5 & (何もしない) \\
0 & (カット) \\
\end{array}
\right.
それでは実際にAC解析を使って実際のイコライザの動作を確認してみましょう。
実験1 全てブーストする場合
実線が利得を、波線が位相を示しています。
残念ながら全ての周波数を一様にブーストすることはできていませんが、まあ大体大きくなっているのでいいんじゃないのでしょうか?
ただ位相差は避けられなさそうですね。
実験2 500Hzをカット、それ以外はブーストの場合
いい感じにカットできていますね。500Hzの部分に対して他の部分は6倍ほどのブーストされていますね。反対称部分の位相差が大きくなっていて気がかりですね。
実験3 250Hzから1kHzは何もしない、それ以外はブーストの場合
実験2とは異なって波形が滑らかになりましたね。(縦軸を見てもらうとわかりやすいと思います。)このイコライザでは人の声などのあたりの周波数を抑えめに、ドラムやベースなどの音を大きくしているので、いわゆるドンシャリのようなイコライザとなっていますね。
実際に曲を入れてみる
実験3のフィルタの入力を音楽にしてみてみましょう。LTspiceに波形を入力したい場合は
.wav形式のファイルになります。mp3などから変換が必要ですね。この辺りの話についてはこちらの参考文献が非常に参考になります。
ただ著作権の関係上こちらには載せられないので感想だけ言うと、ブースト自体はできていたのですが、利得が大きすぎて、音割れしてしまいました。なので人間が聞いて心地いい音が出るようなパラメータを模索していく必要がありそうですね。
もし気になると言う方向けに、以下にSpiceのファイルを添付しておきますので、ぜひご覧ください。
感想
電子回路を習った当初にしてはよく頑張ったのではないでしょうか、機会があればぜひもう一度改善して作ってみたいですね。
参考文献
https://cc.cqpub.co.jp/system/contents/1347
https://spiceman.jp/ltspice-command-wave/