オーディオ・ファイルと任意動作電圧源



『LTspice Users Club』のWebサイトはこちら

■問題
LTspiceの使用方法 ― 初級

小川 敦 Atsushi Ogawa

 図1は,電話の呼び出し音のような音声ファイルを出力するための回路です.A点の波形は,ピーク電圧が0.4Vで20Hzの正弦波です.B点の波形は,ピーク電圧が1Vで455Hzの正弦波です.C点の波形は,0Vから1Vに変化し,440msec経過後,再び0Vとなっています.SYN点の波形はA,B,C各ノードの電圧を掛け合わせたものになります.SYN点の波形として正しいのは図2の(a)~(d)のどれでしょう?


図1 電話の呼び出し音のような音声ファイルを出力するための回路
SYN点の波形はA,B,C各ノードの電圧を掛け合わせたもの.


図2 シミュレーション結果
SYN点の波形として正しいのはどれ?

(a)の波形 (b)の波形 (c)の波形 (d)の波形


■ヒント

 B点の波形が455Hzの正弦波であることを踏まえ,まず,その波形に20Hzの正弦波を掛けたらどのような波形になるかを考えます.次にその波形に1Vを掛けたらどのような波形になるかを考えれば答えが分かります.

■解答


(b)の波形

 455Hzの正弦波信号に,20Hzの正弦波を掛けると,455Hzの信号の振幅は20Hzの2倍の40Hzで増減します.40Hzの1周期は25msecなので,振幅が40Hzで増減しているのは(b)か(d)ということになります.この信号に0Vから1Vになり,再び0Vになる信号を掛けると,1Vの間は元の波形と同じ振幅で,1Vから0Vになるときに振幅が減少します.このような波形となっているのは(b)なので,正解は(b)の波形ということになります.

■解説

●任意動作電圧源の使い方
 任意動作電圧源を使用するときはコンポーネント選択画面からBVを選んで回路図に配置します(図3).そして,V=F(...)の所を用途に合わせて書き換えます.この部分には他のノードの電圧や電流及び時間に,数学的関数を組み合わせた数式を記述することができます.


図3 任意動作電圧源はコンポーネント選択画面からBVを選ぶ
他のノードの電圧や電流及び時間に数学的関数を組み合わせた数式を使用できる.

●正弦波に低い周波数の正弦波を掛けたときの波形
 図4は,図1のシミュレーション結果です.図1で,任意動作電圧源(VB)の数式は「V=2*V(a)*V(b)*V(c)」と記述されています.ここで,V(b)は445Hzでピーク電圧1Vの正弦波です.この信号にV(a)の20Hzの正弦波を掛けると,V(a)が0Vとクロスするタイミングで445H信号の振幅が0Vになります.0Vになるタイミングは1周期に2回あるため,20Hzの1周期の間に2回振幅が0Vになります.この信号にV(c)の信号を掛け合わせると,V(c)が1Vのときは振幅は変化しませんが,V(c)が1Vよりも小さくなると,445Hzの振幅は徐々に小さくなっていきます.


図4 図1のシミュレーション結果
V(syn)の振幅はV(a)の1周期の間に2回0Vになる.

●任意動作電圧源の数式を変えたときの波形
 図5は,図1の任意動作電圧源(VB)の数式を色々変えたときの波形です.


図5 任意動作電圧源(VB)の数式を色々変えたときの波形
数式を変えることで,色々な波形を合成することができる.

 V(syn_a)の数式は式1です.

V=(V(a)+0.4)*V(b)*V(c)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(1)

 V(syn)の数式は式2です.

V=2*V(a)*V(b)*V(c)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(2)

 V(syn_c)の数式は式3です.

V=(V(a)+V(b))*V(c)*0.57・・・・・・・・・・・・・・・・・・・・・・・・・・・・(3)

 V(syn_d)の数式は式4です.

V=(V(a)*V(b)+V(c))*0.57・・・・・・・・・・・・・・・・・・・・・・・・・・・・(4)

 また,図5は,図2の(a)~(d)に対応しています.このように,数式を変えることで,色々な波形を合成することができます.

●WAVオーディオ・ファイルの出力の仕方
 図1の回路は,LTspiceのサンプルファイル(ドキュメント\LTspiceXVII\examples\Educational\waveout.asc)です.ファイル名からもわかるように,WAVオーディオ・ファイルを出力するためのサンプルです.LTspiceでは任意のノードの電圧をWAVファイルとして書き出すことができます.そのとき使用するコマンドが.waveです.その書式は次のようになっています.



 CDと同じ品質で書き出す場合は,サンプリング・ビット数を16,サンプリング周波数を44.1kとします.出力するノード電圧をスペースで区切って追加すると,複数のノード電圧を出力できます.ただし,ノード電圧が±1Vよりも大きくなると,WAVファイルにしたときに波形がクリップしてしまうことに注意が必要です.waveout.ascのシミュレーションを実行すると,同じフォルダにring.wavというファイルが作られます.このファイルを再生してどのような音か確認してみてください.

●WAVオーディオ・ファイルの入力の仕方
 図6は,オーディオ・ファイルの入力の仕方のサンプル(ドキュメント\LTspiceXVII\examples\Educational\waveout.asc)です.


図6 WAVオーディオ・ファイルの入力の仕方
電圧の値を指定する代わりに,WAVファイルを指定する.

 waveout.ascをシミュレーションしたときに作られた,WAVオーディオ・ファイルを読み込むことができます.使用しているのは通常の電圧源ですが,電圧の値を指定する代わりに,WAVファイルを指定します.その書式は次のようになります.



 入力チャンネルを省略した場合はchan=0を指定したことになります.なお,一般のステレオファイルはchan=0が右チャンネルでchan=1が左チャンネルになります.
 図7図6のシミュレーション結果です.図4のV(syn)と同じ波形がV(x)に出力されていることが分かります.このように,WAVファイルを利用して,別のシミュレーション結果を引用してシミュレーションすることもできます.


図7 WAVオーディオ・ファイルを入力する回路のシミュレーション結果
図1の回路が出力したファイルが入力できている.

 以上,WAVオーディオ・ファイルと任意動作電圧源の使い方を解説しました.任意動作電圧源は非常に応用範囲が広く,さまざまなシーンで利用できます.使用できる関数等は,LTspiceのHelpを参照してください.また,WAVファイルの入出力機能も,シミュレーション結果を音として確認することができるので,オーディオ回路などのシミュレーションに活用できます.


■データ・ファイル


解説に使用しました,LTspiceの回路をダウンロードできます.
LTspice6_003.zip

●データ・ファイル内容
waveout.asc:図1の回路
waveout.plt:図4のグラフを描画するためのPlot settinngsファイル
waveout_ABCD.asc:図5をシミュレーションするための回路
waveout_ABCD.plt:図5のグラフを描画するためのPlot settinngsファイル
wavein.asc:図6の回路
wavein.plt:図6のグラフを描画するためのPlot settinngsファイル

■LTspice関連リンク先


(1) LTspice ダウンロード先
(2) LTspice Users Club
(3) トランジスタ技術公式サイト LTspiceの部屋はこちら
(4) LTspice電子回路マラソン・アーカイブs
(5) LTspiceアナログ電子回路入門・アーカイブs
(6) LTspice電源&アナログ回路入門・アーカイブs
(7) IoT時代のLTspiceアナログ回路入門アーカイブs
(8) オームの法則から学ぶLTspiceアナログ回路入門アーカイブs

トランジスタ技術 表紙

CQ出版社オフィシャルウェブサイトはこちらからどうぞ

CQ出版の雑誌・書籍のご購入は、ウェブショップで!


CQ出版社 新刊情報


近日発売

Interface 2021年 3月号

Pythonで信号処理[時系列データ 解析編]

トランジスタ技術SPECIAL

TRSP No.153 ずっと使える電子回路テクニック101選

ディジタル信号処理シリーズ

プログラム101付き 音声信号処理

Interface 2021年 2月号

作るOS・言語・コンパイラ 低レイヤ入門

CQ ham radio 2021年 1月号

2021年のアマチュア無線

アナログ回路設計オンサイト&オンライン・セミナ