何に使えるのか、今のところ宛はありませんが、興味本位で時間軸のスイープ信号を作ってみます。サイン波、矩形波、三角波のリニアスイープとログスイープを考えます。Googleで探して持ってきた内容がメインですが、あれこれ自分でやってみたものもあります。
振動試験などで使われる周波数スイープには、周波数のスイープ(掃引)のさせ方として、リニアスイープとログスイープがあります。時間軸に対して周波数がリニアに増加するのがリニアスイープで、logで変化するのがログスイープです。
大まかに言えば、初期の低周波数域ではリニアスイープが周波数が早く変化し、終期の高周波数域ではログスイープが周波数の変化が早く感じられます。リニアスイープでは終期の高周波数域ではほとんど周波数が変化しないのに比べ、ログスイープの方が時間の経過に対してより均一に変化しているイメージです。
リニアスイープ
サイン波をスイープさせることを考えます。ビヘイビア電源に数式を適用する方法とLTspiceに備わっているmodulateを使う2通りの方法でやってみます。
数式を適用した場合
Wikipediaから引用します。時間とともに周波数が変化する信号をチャープ信号と言い、時間との変化がリニアな線形チャープ信号と指数関数的に変化する指数チャープ信号があります。線形チャープ信号の場合は、
LTspiceに備わっているmodulateを使う場合
LTspiceでのシミュレーション
下図に数式を利用したCASE 1 とmodulateを利用したCASE 2を併記しています。当然ですが、どちらも同じになります。
modulateについて
- mark FM端子入力が1V時の周波数
- space FM端子入力が0V時の周波数
感覚的な使い方としては、これには2通りの設定が可能です。たとえば、
- mark=1 space=0 (単位はともにHz)と記入すると、FM端子への入力電圧[V]がそのまま周波数[Hz]になります。範囲の外側(以下、外挿)を指定することもでき、例えば、入力電圧を1k[V]とすれば、周波数は1kHzになります。つまり、markとspace間を基準周波数(1Hz)にして、FM端子の入力で周波数を設定する方法です。
- もう一つの設定として、mark=2k space=1k (Hz)と記入すると、FM端子入力が0Vのspaceでは周波数1kHzであり、FM端子入力が1Vのmarkでは2kHzです。電圧で見れば、markとspaceは1Vの差がありますので、入力1-0=1[V]あたり2k-1k=1k[Hz]の増加を意味します。この場合、入力2[V]では3k[Hz]になります。つまり、PWL(0 0 10m 1)のように入力側を0~1Vの基準にして、mark周波数とspace周波数間を分割して設定する方法です。a)と同様に外挿の2Vを設定することもできます。
- さらに、周波数に負の値を入れると絶対値が同じ周波数で、位相が反転します。
対数スイープ
詳しくないので、対数スイープ、ログスイープ、指数スイープを同じ意味の周波数掃引として使います。調べていくと、最近は swept-sine という言い方をするようです。
色々探し回って、swept-sine信号波形を具体的に数式表現している下記文献を探し当てることができました。 ここに載っているsynchronized swept-sine という信号です。
"Synchronized Swept-Sine: Theory, Application, and Implementation"
Antonin Novak, Laurent Simon, Pierrick Lotton
HAL Id: hal-02504321
https://hal.archives-ouverTes.fr/hal-02504321
SubmitTed on 10 Mar 2020
ここに、
$f_e$: 最終周波数[Hz]
$T_e$: Swept-sineの長さ[sec]
ある瞬間における周波数が下記の対数で表されるものとします。
LTspiceでのシミュレーション
下図に数式を利用したCASE 3 とmodulateを利用したCASE 4を比較して載せました。位相、周波数とも当然ですが、どちらも同じになります。(実際は後述するように、影響のでないであろうわずかの位相差があります。)
矩形波のスイープ
- サイン → パルス リニアスイープ
- サイン → パルス ログスイープ
- → パルス ログスイープ、デューティ可変;Digital → schmtinv(シュミットトリガ インバータ)のしきい値(p-pを0~1 に分割して設定)で設定
三角波のスイープ
- 一つ目の事例は、modulate でサイン波のスイープをつくり、それをパルス波に変換。これをオペアンプで積分して三角波にする方法です。この方法は積分定数が一定なので、周波数が大きくなると振幅が小さくなってしまいます。
- この欠点の改良版が2件目の事例です。次のように説明されています。
方形波から三角波を生成する方法では周波数変化があっても振幅を一定に保つようにするには、周波数を変化に応じて、積分時定数も同時に変化させなければならない(前ページで示した例の通り)。そこで、電流源を積分するコンセプトを利用しつつ三角波の山と谷を検出し、そこで反転する回路を付加することで振幅が一定になる三角波を実現している。
第1事例
書き写して、実際にシミュレーションしてみました。まず、第1事例です。第2事例
第2事例もシミュレーションしてみました。引用元資料に書かれてある説明は半分以上理解できませんが、振幅一定の三角波スイープを得ることができました。ただし、これだけ複雑だとサブサーキットにしないと使いずらいと思います。
シミュレーション条件は1kHzから10kHzへのスイープなのですが、入力周波数を表すビヘイビア電源 B3の出力 V(CONT) は0.2kHzから2kHzです。しかし、三角波図形のカーソル読みでは約1kHzから約10kHzのスイープが得られています。
出力 V(OUT)を微分すると角周波数になるはずです。この計算をすると、理由はわかりませんが、$4\pi$ で割ったときのピーク値が入力周波数と一致しました。