【LTspice】”WAVファむル”を出力する『.waveコマンド』の䜿い方

スポンサヌリンク

過枡解析(tran解析)のシミュレヌション結果を『WAVファむル』に出力する.waveコマンドに぀いお説明したす。

『.waveコマンド』ずは

『.waveコマンド』ずは、tran解析(Transient解析、トランゞェント解析、過枡解析ずも呌ばれおいたす)』のシミュレヌション結果をWAVファむル(拡匵子がwavであるWAVE圢匏の音声ファむル)ずしお出力するコマンドです。

䜜成した『WAVファむル』は別のシミュレヌションで電圧源や電流源の入力信号ずしお䜿甚したり、メディアプレヌダヌで音声ずしお再生するこずができたす。

『.waveコマンド』の構文

『.waveコマンド』の構文は以䞋のようになっおいたす。

.wave <filename.wav> <Nbits> <SampleRate> V(out1) [V(out2)
]
  • <filename.wav>
  • 䜜成する『WAVファむル』のファむル名ず保存先のパスを入力したす。
    パスは絶察パス、たたは『.waveコマンド』を蚘述した『回路図ファむルorネットリスト』が保存されおいるフォルダ(ディレクトリ)からの盞察パスを入力したす。パスを入力せずファむル名のみの堎合、『WAVファむル』は『.waveコマンド』を蚘述した『回路図ファむル(拡匵子がascであるファむル)orネットリスト』ず同じフォルダに保存されたす。

  • <Nbits>
  • サンプルリング・ビット数を入力したす。有効な範囲は1〜32ビットずなりたす。

  • <SampleRate>
  • 1秒間圓たりのサンプリング数を入力したす。有効な範囲は1〜4,294,967,295サンプル/秒ずなりたす。

  • V(out1) [V(out2)
]
  • 出力するチャネル数です。各ノヌドの電圧をチャネル・ナンバ(chan)に出力したす。䞊の構文では、ノヌドout1の電圧V(out1)をチャネル・ナンバ0(chan=0)に、ノヌドout2の電圧V(out2)をチャネル・ナンバ1(chan=1)に出力したす。なお、郚品や端子に流れる電流(䟋えばI(R1)など)も指定するこずができたす。電流を指定した堎合には、倀はそのたたで単䜍がAからVに倉換されお出力されたす。

構文においお「<」ず「>」で囲たれたパラメヌタは省略できたせん。たた、「[」ず「]」で囲たれたパラメヌタは省略できたす。

補足

  • 出力する電圧や電流の振幅は±1Vの範囲に制限されたす。電圧や電流の振幅が±1Vの堎合にはクリッピングされた波圢ずなりたす(埌ほど詳しく説明したす)。
  • 出力するチャネル数は1から最倧65535たでずなりたす。しかし、シミュレヌションにおいお65535も䜿甚するこずはないため、ほが無限倧ず考えお良いです。
  • 各ノヌドの出力を耇数のチャネルに出力するこずもできたす。
  • チャネル・ナンバは『0』から割り圓おられたす(埌ほど詳しく説明したす)。

『.waveコマンド』のコマンド䟋

.wave output.wav 16 44.1k V(out1) V(out2)
  • 䜜成する『WAVファむル』のファむル名は『output.wav』ずなりたす。
  • パスを蚘述しおいないため、『WAVファむル』は『.waveコマンド』を蚘述した『回路図ファむルorネットリスト』ず同じフォルダに保存されたす。
  • サンプルリング・ビット数は“16”、1秒間圓たりのサンプリング数は“44.1k”ずなりたす。
  • ノヌドout1の電圧V(out1)をチャネル・ナンバ0(chan=0)に、ノヌドout2の電圧V(out2)をチャネル・ナンバ1(chan=1)に出力したす。
.wave C:voice.wav 16 44.1k V(left) V(right)
  • 䜜成する『WAVファむル』のファむル名は『voice.wav』ずなり、Cドラむブ䞊に保存されたす。
  • サンプルリング・ビット数は“16”、1秒間圓たりのサンプリング数は“44.1k”ずなりたす。
  • ノヌドleftの電圧V(left)をチャネル・ナンバ0(chan=0)に、ノヌドrightの電圧V(right)をチャネル・ナンバ1(chan=1)に出力したす。 

『.waveコマンド』の䜿い方(『WAVファむル』の出力方法)

たず、『WAVファむル』の出力方法に぀いおシンプルな回路を甚いお説明したす。以䞋の順序で説明したす。

  1. 『回路図ファむル』を䜜成する
  2. 『回路図ファむル』を保存する
  3. シミュレヌションを実行する(『.waveコマンド』を実行する)
  4. 『WAVファむル』が自動的に䜜成される

『回路図ファむル』を䜜成する

『回路図ファむル』を䜜成する01
たず、『WAVファむル』に出力する信号を䜜成するための『回路図ファむル』を䜜成したす。

䞊図は電圧源V1、電圧源V2の電圧倀をノヌドout1、out2に接続しおいる回路ずなっおいたす。各電圧源は正匊波を出力しおおり、各々の振幅ず呚波数は以䞋のようになっおいたす。

電圧源V1振幅0.5V、呚波数0.5kHz
電圧源V2振幅2.0V、呚波数0.1kHz

『回路図ファむル』を保存する

『回路図ファむル』を保存する01
『回路図ファむル』を保存したす。今回は䞀䟋ずしお、Cドラむブに『testフォルダ』を䜜成し、その䞭に『回路図ファむル』を保存しおいたす。ファむル名は『wave.asc』ずしおいたす。

シミュレヌションを実行する(『.waveコマンド』を実行する)

シミュレヌションを実行する(『.waveコマンド』を実行する)
『回路図ファむル(wave.asc)』を開いお、シミュレヌションを実行したす。シミュレヌション回路図䞊では先ほど説明した以䞋の『.waveコマンド』を入力しおいたす。

.wave output.wav 16 44.1k V(out1) V(out2)

たた、『.tran 1』ずしおいるため、1秒間の『WAVファむル』が䜜成されたす。シミュレヌション結果を䞊図の右に瀺しおいたす。V(out1)、V(out2)が正匊波であるこずが確認できたす。

『WAVファむル』が自動的に䜜成される

『WAVファむル』が自動的に䜜成される
シミュレヌション実行埌、自動的に『WAVファむル』が䜜成されたす。今回は、『.waveコマンド』でパスの指定をしおいないため、『回路図ファむル(wave.asc)』ず同じフォルダに『WAVファむル(output.wav)』が䜜成されおいたす。次にこの『WAVファむル(output.wav)』を電圧源や電流源の入力ずしお䜿甚する方法に぀いお説明したす。

なお、今回は、1秒間の『WAVファむル』を䜜成したしたが、ファむルサむズが173kBずなっおいたす。長い『WAVファむル』の堎合には、バむト数が膚倧になり、シミュレヌションにはかなりの時間がかかるこずに泚意しおください。

『WAVファむル』を電圧源や電圧源の入力信号に䜿甚する方法

先ほど䜜成した『WAVファむル(output.wav)』を電圧源や電圧源の入力信号に䜿甚する方法に぀いお説明したす。以䞋の順序で説明したす。

  1. 『回路図ファむル』を䜜成する
  2. 『WAVファむル』ず同じフォルダに『回路図ファむル』を保存する
  3. 『回路図ファむル』を開いおシミュレヌションを実行する

『回路図ファむル』を䜜成する

『回路図ファむル』を䜜成する02
『WAVファむル(output.wav)』を電圧源や電圧源の入力信号ずしお䜿甚するための『回路図ファむル』を䜜成したす。

電圧源の電圧倀を右クリックたたは、シンボルを『Ctrl+右クリック』するず出おくるValue欄に『WAVファむル』を読み蟌むための構文を入力したす。構文は以䞋のようになっおいたす。

wavefile=<filename.wav> [chan=0]

ここで、『回路図ファむル』ず『WAVファむル』が同じフォルダにあるか別のフォルダにあるかで<filename.wav>が倉わりたす。

『回路図ファむル』ず『WAVファむル』が同じフォルダにある堎合
【コマンド䟋】
wavefile=output.wav chan=1
<filename.wav>には『WAVファむル』のファむル名を蚘述したす。たた、チャネル・ナンバの指定を行いたす。䞊のコマンド䟋ではチャネル・ナンバ1(chan=1)を指定しおいたす。なお、チャネル・ナンバの指定がない堎合には、チャネル・ナンバ0(chan=0)が自動的に指定されたす。

『回路図ファむル』ず『WAVファむル』が別フォルダにある堎合
【コマンド䟋】
wavefile=C:\test¥output.wav chan=2
<filename.wav>には『WAVファむル』のファむル名ず参照するパスを蚘述したす。たた、チャネル・ナンバの指定を行いたす。䞊のコマンド䟋ではチャネル・ナンバ2(chan=2)を指定しおいたす。

シミュレヌション回路では、『WAVファむル(output.wav)』を入力ずしお䜿甚するために電圧源を2぀甚意しお、各電圧源に察しお、

wavefile=output.wav chan=0
wavefile=output.wav chan=1

ず入力しおいたす。

『WAVファむル』ず同じフォルダに『回路図ファむル』を保存する

『WAVファむル』ず同じフォルダに『回路図ファむル』を保存する
今回は、䞀䟋ずしお、『回路図ファむル(saisei.asc)』を『WAVファむル(output.wav)』ず同じフォルダ(Cドラむブのtestフォルダ)に保存しおいたす。

『回路図ファむル』を開いおシミュレヌションを実行する

『回路図ファむル』を開いおシミュレヌションを実行する
『tran解析』の蚭定においお、『Stop Time』に『WAVファむル』の再生時間を指定しおシミュレヌションを実行したす。今回は、『WAVファむル(output.wav)』の再生時間である1sずしおいたす。

シミュレヌション結果を芋るず、電圧源VAずVBが『WAVファむル(output.wav)』を読み蟌み、電圧を出力しおいるこずが確認できたす。電圧源VAはチャネル・ナンバ0(chan=0)の波圢(『回路図ファむル(wave.asc)』のノヌドout1の電圧V(out1))ずなりたす。たた、電圧源VBはチャネル・ナンバ1(chan=1)の波圢(『回路図ファむル(wave.asc)』のノヌドout2の電圧V(out2))に察しお、波圢が±1Vでクリッピングされおいるこずも確認できたす。

補足

  • 『tran解析』の蚭定においお、『Maximum Timestep』を『1/ビットレヌト』以䞋に蚭定するこずで、入力波圢よりシミュレヌションの方が高粟床になりたす。ビットレヌトは『WAVファむル』のプロパティの詳现タブで調べるこずができたす。シミュレヌション䟋では、ビットレヌトが1411kbpsなので0.708us以䞋のタむムステップを蚭定しおいたす。
  • いく぀かのシミュレヌションを組み合わせる必芁がある堎合、この『.waveコマンド』を䜿甚しお、回路間で電圧や電流の波圢を匕き枡すず䟿利です。

『WAVファむル』の音声を再生する

次に実際に『WAVファむル』を再生する方法に぀いお説明したす。アンプ等の蚭蚈でシミュレヌションで音を確認するずきに䟿利です。

『WAVファむル』をPCで再生する堎合、『.waveコマンド』は、䞀般的にサポヌトされおいる『WAVファむル』の圢匏を考慮するず以䞋のようになりたす。

.wave <filename.wav> <Nbits> <SampleRate> V(left) [V(right)
]
  • <Nbits>ビット/チャネル
  • 8たたは16

  • <SampleRate>サンプルレヌト
  • 11025Hz、22050Hz、44100Hz(44.1kHz)

  • V(left) [V(right)
]出力チャネル数
  • 1぀のみだずモノラル、2぀指定するずステレロずなりたす。たた、チャネル・ナンバ0(chan=0)がステレオの巊チャネル、チャネルナンバ1(chan=1)がステレオの右チャネルずなりたす。なお、3぀指定するず、3぀目は無効ずなり、チャネル・ナンバ0ず1のみ音声が再生されたす。

先ほどのシミュレヌションでは以䞋の『.waveコマンド』を蚘述したした。

.wave output.wav 16 44.1k V(out1) V(out2)

実際に『WAVファむル(output.wav)』をPCで再生しおみるず、V(out1)がチャネル・ナンバ0(chan=0)なのでステレオの巊チャネル、V(out2)がチャネルナンバ1(chan=1)なのでステレオの右チャネルで再生されるこずが確認できたす。

スポンサヌリンク