初心者のためのLTspice入門 LCRを用いた回路の検討(6)パルス波をフーリエ級数で表現すると
複雑な波形やパルス(方形波)や三角波など正弦波と異なった交流の波形も、複数の周波数と大きさの正弦波に分けることができます。LTspiceではこの処理をFFT(Fast Fourier Transform)で確認できます。また、これらの要素に分解された正弦波をもとに元の波形を再現できます。コンポーネントbvを利用したシミュレーションで確認します。
●パルス波のフーリエ級数
最初の基本となる正弦波は、パルスと同じ周期のサイン波で、係数と周期の倍数はともに1です。次の項からは、係数は1/3で周期の倍数は3、その次は1/5と5倍、その次は1/7と7倍、1/9と9倍、1/11と11倍、1/13と13倍と奇数で続いていきます。
●パルスの要素となる正弦波を作る
元のパルスの波形の周期は1kHz です。パルスを表示するフーリエ級数の式から、各項を 1/(2n-1)× sin{(2n-1)×t} から計算します。
第1項は 1 × sin( t ) 第2項は (1/3)× sin( 3t ) 第3項は (1/5)× sin( 5t ) 第4項は (1/7)× sin( 7t ) 第5項は (1/9)× sin( 9t ) 第6項は (1/11)× sin( 11t ) |
●電圧源voltageで個々の正弦波を作成
信号源の正弦波の作成はvoltageで作成してきました。この6種類の正弦波をvoltageで作成し、それらのvoltageの出力をコンポーネントbvでまとめる方法をまず試します。この場合、係数が1/3や1/7などの割り切れない分数があります。
今回はvoltageの電圧源を用いて正弦波を出力するように設定するために、次の設定画面(Independent Voltage Source)でSineを選択し、波形の仕様を設定するDC offset(V)は0、Amplitude(V)、Freq(Hz)を次のように設定します。
DC offset [V] | Amplitude [V] | Freq [Hz] | |
---|---|---|---|
第1項の正弦波 | 0 | 1 | 1k |
第2項の正弦波 | 0 | 1/3 | 3k |
第3項の正弦波 | 0 | 1/5 | 5k |
第4項の正弦波 | 0 | 1/7 | 7k |
第5項の正弦波 | 0 | 1/9 | 9k |
第6項の正弦波 | 0 | 1/11 | 11k |
●設定値は式でなく値(value)
正弦波の仕様を決める設定値は、式でなく値(value)で設定します。1/3などの分数で設定するとエラーとなります。0.333、0.2、0.143、0.111、0.0909と割り算した結果を設定します。
分母が奇数の分数なので、ほとんどが循環小数になります。有効数字を3桁でそれぞれの値を求めて設定しました。
●bv(behavioral voltage source)
voltageの電圧源で作成したS1、S3、S5、S7、S9、S11の6種類の正弦波を加算して信号を作成するために、bvコンポーネントを利用します。このbv の出力電圧を演算式で示すことができます。
この機能を利用してS1、S3、S5、S7、S9、S11の電圧を加算した結果をbvの出力とします。各voltageの出力はV(S1)、V(S3)、V(S5)、V(S7)、V(S9)、V(S11)で示されます。VBの出力の設定は、回路図のbv のシンボルをマウスの右ボタンでクリックし表示される次のComponent Attribute Editorの画面で行います。この画面のvalueの欄に、
V = V(S1) + V(S3) + V(S5) + V(S7) + V(S9) + V(S11) |
と出力Vとなる値を示す式で記入します。
bvの出力out1からout11までの6種類に順番に加算を繰り返す途中の経過もわかるようにしました。
●過渡解析を選択
シミュレーションは波形の様子がわかるように、2波形半の周期となる2.5msの過渡解析としました。
.tran 2.5m |
と2.5msの過渡解析を指定しています。
以上の設定を行うと、次の回路図となります。
●シミュレーションの結果
基本周波数のS1と3倍の周波数のS3と、この二つを加算した出力のout3をまず表示しました。out3(赤色)の出力は頭をつぶされ二つのピークをもった波形に変わりました。
●out3にV(S5)を加算すると
二つ山の緑色のout3の出力波形に青色で五つのピークのs5を加算すると、赤色で示す三つの山のout5の出力波形になります。マイナス側は、谷が二つの緑色のout3の出力波形に青色で三つの谷のs5の波形が加算され、三つの谷をもつout5のマイナス側の波形となります。
●out5にV(S7)を加算すると
三つ山のout5に七つ山のs7を加算した波形は、四つ山の波形のout7が得られます。具体的な波形は次に示すようになります。デコボコはありますが、山の上部が少しずつ平らになってきています。
●out7にV(S9)を加算すると
四つ山のout7と九つ山のs9を加算した結果、五つ山の波形out9が得られます。具体的な波形は次に示すようになります。山の上部の波も波高が回を重ねるたびに小さくなっています。
●out9にV(S11)を加算すると
五つ山のout9と11山のs11とを加算した結果、六つ山の波形のout11が得られます。具体的な波形は次に示すようになります。
回数を重ねるたびに方形波のパルスの波形に近づいていきます。
●bvのみでシミュレーションする
voltageで加算する正弦波を作成しましたが、bvで指定する式で加算する各要素の正弦波を作ることができます。
ピーク1Vで1kHzの正弦波bvを作成するためには、次のように設定しシミュレーションを行うとvoltageと同じ結果が得られます。
V = sin ( 1k * 2 * pi * time ) Vの電圧は右辺の式の値が電圧を示す。単位はV。 piは円周率のπの値を示す定数。 timeはシミュレーションの経過時間を示す。単位は秒。 kは乗数1000を示す。1.00E+03 |
sin(1k*2*pi*time)の2*pi*timeは0秒から1秒の間に0から2πまで変化し、sinの値は0からプラス1、0、と変化し-1になり0へ戻ります。以上の変化を0.001秒単位で繰り返すために1kが追加されています。
サイン関数を用いて、1kHzのパルス波を作るためのフーリエ級数の各項は次のようになります。
sin (( 2n - 1 ) k * 2 * pi * time ) / (2n-1) |
nを1から6まで変えて6項分の合計をB1の出力とします。Component Attribute Editorでbv1のValue の値を次のように設定します。
V=sin (1k * 2 * pi * time ) + sin ( 3k * 2 * pi * time ) / 3 + sin ( 5k * 2 * pi * time ) / 5 + sin ( 7k * 2 * pi *time ) / 7 + sin ( 9k * 2 * pi * time ) / 9 + sin ( 11k * 2 * pi * time ) / 11 |
シミュレーション結果は次に示すようになります。
bvコンポーネントは計算処理で多様な処理を行うことができます。級数を効率よく表現する方法が見つかっていないので、6項目の加算だけで済ませました。しかし、方形波のパルス波形に近づいていくのが確認でき、加算する項目の数が増加すると方形波になるのが実感できました。
(2018/7/27 V1.0)
<神崎康宏>