« シングルコアESP32-SOLO-1とクロックダウンと低消費電力化について 11/6追記 | トップページ | 無帰還電流駆動ヘッドホンアンプ改良 (基板頒布あり) »

2021年10月 9日 (土)

LTspiceでフォノイコライザシミュレーション

以前、フォノイコライザをIIRフィルタで構成してFPGAに実装する記事を書いたが、今回はLTspiceでフォノイコライザのシミュレーションを行ったので、紹介する。

LTspiceでのシミュレーションでは回路に対してトランジェント解析で波形の応答を見ることもできるし、AC解析で周波数特性を見ることもできるが、ほかに非常におもしろい機能があって、WAVファイル(音声データ)を入力して、シミュレーション結果を同じくWAVファイルとして出力することができる。
今回はレコードからフォノイコライザなしでダイレクトリッピングしたWAVファイルを、LTspiceでのフォノイコライザ回路シミュレーションを通してWAVファイルで出力する検証を行った。


1.実際に使用しているフォノイコライザ回路
図1に実際に部屋で使用しているフォノイコライザの回路を示す。使用カートリッジはDL-103。

Usingeqsch
図1.実際に使用しているフォノイコライザ回路
MJの安井章氏の回路を参考にして設計した。

図1の回路ではカートリッジ入力を最初のオペアンプで120倍したあとCRイコライザを通し、次段で100倍増幅して、カップリングコンデンサを通して出力している。電源はエネループを8個使って±4.8Vとしている。


2.シミュレーション用回路
シミュレーションに使う回路は基本的に実使用中の図1の回路と同じだが、オペアンプを電圧制御電圧源に置き換えている。図2にオペアンプの非反転増幅回路と、電圧制御電圧源を使った帰還型増幅回路の置き換えを示す。

Opampvsvdv
図2.オペアンプ非反転増幅回路の、電圧制御電圧源での置き換え
電圧制御電圧源のゲインを1000万倍(140dB)として、負帰還増幅器を構成している。

図2ではオペアンプを使った非反転の10倍アンプを、電圧制御電圧源を使った10倍アンプに置き換えている。
電圧制御電圧源のゲインは1000万倍として、1/10の帰還をかけることでオペアンプ回路と同等の機能を持たせている。

ただ、電圧制御電圧源はゲインが自由に設定できるので、単に図3のようにしてもよい。

Vdv20db
図3.ゲイン10倍の電圧制御電圧源

今回評価するフォノイコライザ回路は、図3のように電圧制御電圧源に直接必要なゲインをもたせるやり方で、オペアンプを置き換えることにする。
今回評価したシミュレーション回路を図4に示す。

Simeq_wav
図4.今回使用したフォノイコライザシミュレーション回路
レコードのダイレクトリッピングゲインを160倍としたため、フォノイコライザのゲインは入力側32倍、出力側2倍のトータル64倍とした。またオフセットは無視できるのでカップリングコンデンサは省略した。

この回路の周波数特性を図5に示す。

Eq_gainphase
図5.今回の回路のAC解析

シミュレーション用のファイルは以下。
ダウンロード

3.WAVファイルを使ったシミュレーション手順
①LTspiceに回路を入力する
・回路の入力に上記wavファイルを割り付けるが、回路入力では単に電圧源(voltage source)を使う。
②実際に使用するwavファイルを用意する。
・今回は44.1kHz16bitステレオのwavファイルを使う。長いとシミュレーションに時間がかかるので、短いものを使う。(40秒の曲を処理するのに30分以上かかる)
・用意したwavファイルをLTspiceの回路(.ascファイル)と同じホルダに入れておく。ファイル名は任意だが、スペースは使えない。
・今回実際に使用したwavファイル名は、"night_in_tunisia_Direct40sec.wav"
③回路に対してwavファイルの入出力設定を記述する
・入力の電圧源(図4ではv4)を右クリックして"advanced"をクリックして詳細設定に入る。
・PWL FILEを選び、BrowseからファイルタイプをAll Files(*.*)として、上で用意したwavファイルを設定する。
●回路に戻ると電圧源のソースが”PWL file=night_in_tunisia_Direct40sec.wav”と表示されているので、これを右クリックして、手入力で編集し、
"wavefile=night_in_tunisia_Direct40sec.wav channel=0"
に変更する。
・同じようにv3に対して"wavefile=night_in_tunisia_Direct40sec.wav channel=1"を設定する。
・.opボタンを押して、".wave soundout00.wav 16 44.1k V(voutL) V(voutR)"と入力して、回路上に貼り付ける。soundout00.wavは出力されるファイル名(任意)。
・SimulateのEdit Simulation CmdのTransientタブで、
 Stop time = 40(今回のwavの長さ)
   Time to start saving data = 0
   Maximum Time step = 0.708u(1411kbpsの逆数)
としてOK。".tran 0 40 0 0.708u"が回路図上に配置される。

以上ができたら、SimulateのRun(走るボタン)を実行すると、しばらく演算した後、同じホルダに出力ファイル"soundout00.wav"が生成される。
※とにかく実行には時間がかかるので、最初は短いファイル(数秒レベル)で確認してみるとよい。

4.シミュレーション結果
上述の通り、DL-103からゲイン160倍でダイレクトリッピングしたファイルと、処理後の出力ファイルは次の通り。

・ダイレクトリッピングファイル
night_in_tunisia_Direct40sec.wav

・フォノイコライザシミュレーション出力ファイル
soundout00.wav

ちなみにこの音源は、
Hot Salsa meets Swedish Jazz
というLPに収録されたお気に入りの一曲です。

順序が前後してしまったが、ダイレクトリッピングに使用した回路を図6に示す。


Directripsch
図6.ダイレクトリッピングに使用した回路


5.まとめ
以上のように、LTspiceを使って、wavファイルの信号処理を行うことができる。
・今回はオペアンプの代わりに電圧制御電圧源を使ったが、もちろんオペアンプを使ったシミュレーションもできる。ただし、シミュレーションの時間が猛烈にかかる。(以前オペアンプでシミュレーションしたら、3分の曲を処理するのに一晩かかった)
・シミュレーションは仮想現実であり、今回の実験は現世のwavファイルを仮想現実世界で処理して、それをまた現世に持って帰ってくる、というような感覚がして非常におもしろいと思う。
・レコードのダイレクトリッピングを今回の方法で処理するやり方は、膨大な時間がかかることから実用的ではないが、ごく短いサンプル音源を使って、エフェクター回路の検証を行うといったような使い方は想定できる。

実際に音が出ると感動するので、ぜひやってみてください(^-^)

| |

« シングルコアESP32-SOLO-1とクロックダウンと低消費電力化について 11/6追記 | トップページ | 無帰還電流駆動ヘッドホンアンプ改良 (基板頒布あり) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« シングルコアESP32-SOLO-1とクロックダウンと低消費電力化について 11/6追記 | トップページ | 無帰還電流駆動ヘッドホンアンプ改良 (基板頒布あり) »