« 連載キットで作る(34)整流回路について(1) ダイオードを利用して半波、全波整流回路 | メイン | ブレッドボードでLEDを点滅させてみよう その1 »

LTSPICE入門(連載9) LTSPICEを使ってみる(6) BV(ビヘービア・モデル)で信号源を作成

ビヘービア・モデルの設定
 LTSPICEには、パルスや正弦波や任意の出力を折れ線グラフで設定できるなどシミュレーションに必要な機能をもった電圧源のVoltage、Battery、電流源のCurrent Sourceが用意されています。その他に、BV(Arbitrary Behavioral voltage source)、BI(Arbitrary Behavioral current source)など、各種の関数などを組み合わせて多様なシミュレーションを行える信号源などが用意されています。
 今回このうちのBVを利用して、パルスと正弦波を組み合わせた信号を合成してみます。

 音声信号に反応するスイッチを考えているとき、信号検出回路のマイクからの入力信号シミュレートした時の組み合わせを想定しています。このBVで作成したマイク入力の擬似信号で、音声検出回路の検討を行います。

 1kHz くらいの周波数の正弦波のパルスが数個発生し、立ち上がりが最大のピークになり、位相の違いにより、プラス側またはマイナス側に大きく振れ正負対称にならない場合もあります。
 ここでは、
(1) 定期的に数パルスの正弦波が出力される
(2) 正弦波はプラス・マイナス対称でない場合が生じる
 このような条件を概略満たすものとして、次のようなものを考えました。
  <1> 基本となる1kHzの正弦波を作る
  <2> 数m秒のパルスを0.1秒間隔くらいで繰り返すパルスを作る
  <3> 正弦波<1>と<2>のパルスを掛け合わせパルスがオンのとき正弦波が発生するようにする。
     これにより、0.1秒間隔で数m秒の正弦波が発生できる
  <4> プラス・マイナスのバイアスを加えるために、30から40Hzくらいの正弦波を
    作成し<3>で作成した信号に加算する

BVで信号を作成する
 まず次に示すように、元になる1kHz、30Hzの正弦波の発生源V1、V3を用意します。またV2として0.1s間隔のパルスを作成します。
 

 

LTSP100010.jpg B1がBVでV1,V2、V3を組み合わせて新しい信号源を作ります。次に示すのが、V1の0.1Vの正弦波の設定です。

 

LTSP100020.jpg SINE(Voffset Vamp Freq Td Theta Phi Ncycles)の欄をチェックして、正弦波の出力を指定します。0.1Vの出力電圧に設定するためにAmplitude[V]の欄に0.1Vを設定します。次に、正弦波の発振周波数をFreq[Hz]の欄に1kを設定します。OKボタンをクリックして設定を終えます。
 次に、パルスの設定を行います


LTSP100030.jpg Vinitial[V]に0を、Von[V]に1を設定します。Tdelay[s]に最初のパルスが立ち上がるまでの時間を設定します。ここでは、10m秒と設定するため10mと設定しました。Trise[s]、Tfall[s]のパルスの立ち上がり、立ち下がり時間は無視したいので0を設定したのですが、0または無設定はデフォルト値と見なされます。そのため、オン、オフの時間に対して十分小さな値として0.1nを設定しました。Tperiod[s]のパルスの周期は拍手の間隔0.03から0.1s位で試してみました。ここでは0.1が設定されています。Ncyclesは出力パルス数を制限しないので、空白にしてあります。
 V3は出力にプラス、マイナスのバイアスを与えるための正弦波です。ランダム関数を利用できますが、まず正弦波の利用からはじめます。


LTSP100040.jpg あまり大きなバイアスを加えないので、Amplitude[V]にV1で設定した1Vの半分の0.5Vを設定しました。周波数は30Hz としました。
 次に、B1の設定を行います。B1のシンボルの上にマウスの右ボタンをクリックすると、次のB1の設定ダイアログが表示されます。


 Valueの値を設定によりB1の出力が決まります。表のValue欄にカーソルを持って行くと、上の入力欄の表題が「Value=」となります。=の後の入力欄にV=で出力を設定します。まず、V1の正弦波出力とV2のパルス出力を乗算した結果を出力とします。この乗算によりパルスの0Vと正弦波出力を掛け合わせると出力は0Vとなり、パルスがオンで1Vの出力のときは正弦波の出力に1Vを乗算した値になります。そのため、正弦波V1の出力にV2の出力倍された値がB1の出力となります。
 この乗算の表記を次のように行い、先ほどの入力欄に設定します。
   V= V(VS1)*V(VP1)
       VS1はラベル名でV1の出力を示す。
       VP1はラベル名でV2の出力を示す。
 この乗算により、V2のパルスがオンのときのみ正弦波が出力されます。この設定時のシミュレーションの結果を、次に示します。


LTSP100060.jpg パルスがオンの3m秒だけ正弦波が出力されている波形が表示されています。この波形に、さらにV3の出力を加算してプラス・マイナスのバイアスを加えます。


 

LTSP100070.jpg V2の出力もパルスがオフの時はゼロになるようにV1の出力との乗算結果を加算します。この設定での結果を、次に示します。


LTSP100080.jpg 散発的で、プラス・マイナスのバイアスが加わった出力が得られました。波形の詳細を確認するためにWaveform Viewer(グラフが表示されているウィンドウ)の拡大したい部分をドラッグすると、ドラッグした範囲が次のように拡大されて表示されます。

 

LTSP100090.jpg BV、BIは多数の関数が用意されており、これらを利用し組み合わせて多様なシミュレーション・データを用意することができます。
<神崎康宏>

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/1446

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1