閉じる


<<最初から読む

60 / 76ページ

試し読みできます

性能評価

 6.2 ノイズ耐性

 次にノイズに対する影響、耐性がどの程度あるのかをテストするプログラムを紹介します。加

えるノイズは熱雑音などのホワイトノイズが一般的です。Octaveにはawgn.mという関数があり、

SNRで定義されるホワイトノイズを信号に加えることが出来ます。デジタル変調などの評価を定

量的に行うには有用な関数ですが、今回のPLLの評価ではそれほどノイズの量を厳密に定義する

必要は無いと思われます。またこのawgn関数をfor ループ内に入れると演算速度がかなり落ち

ます。従って今回はrandn.mという正規分布する乱数を派生する関数を使います。awgnも関数

の内部ではこのrandn関数を使用しています。加算するポイントはLoop Filterの手前、位相比

較器の出力にしています。

 図6.3、6.4はPLLループの時定数パラメータMが-16dB、-10dBの時のLoop Filter出力のス

ペクトラムです。同じノイズレベルでもLoop Filterの設計でVCO出力信号の周波数の揺らぎ(ジ

ッター、Jitter)が随分違うのが分かると思います。リスト6.2はこのスペクトラムを表示する

プログラムで以下のようにメインプログラムに続けて実行してください。

 

PLL_main;test_Noise;

 

ここでOctaveの関数には無い窓関数を使っています。Rosenfield.mという窓関数です。FFT処

理をする時にハミング窓のような窓関数を掛けますが、Rosenfieldはサイドローブ特性が良い

のが特徴です。リスト6.3にこの関数のスクリプトを示します。


試し読みできます

性能評価

 

 

図6.3

 

 

図6.4


試し読みできます

性能評価

 6.3 無駄時間

 実際にPLL回路をハードウェアとして製作する際にデジタルでもアナログでも問題になるの

がループ内の遅延です。アナログ回路を構成する素子には必ず遅延があり、デジタル回路でも

FFを必ず使いますのでそれだけで遅延となります。ループ内の遅延は無駄時間となり応答特性

に影響します。これをOctaveで解析的に計算して周波数特性やステップ応答を計算するには無

駄時間の伝達関数が必要になりますが、連続時間を表現する伝達関数exp(-L*s)はOctaveでは

そのまま使うことができません。

そこでPade近似を導入してexp(-L*s)を近似して使うのですが、演算誤差が大きく難しいで

す。そこでデジタル信号として離散的に扱うことによって簡単にループ内に遅延を挿入すること

にしました。

 まず実時間シミュレーションプログラムの遅延ですが、メインプログラムPLL_mainの次の記

述で実現します。

 

        if Nd~=0

                d_dout=[d_dout(2:Nd) dout];

                dout=d_dout(1);

        end

 

Divider出力と位相比較器PD入力の間に挿入しています。また、遅延量の設定は

 

Nd=512;                         % Dead Time(clock)

td=Nd*dt;                       % Dead Time(sec)

 

で行います。Ndは遅延をクロックで表現した変数でシステムクロック(周波数:fs)数になり、

tdが実際の遅延時間になります。上記の場合、遅延量は512 clock、2.0msecとなります。

この遅延量でループの時定数Mを-10dBの時のLoop Filterの出力波形は図6.5となり、応答

の立ち上がりがリンギングとなっていることが分かります。位相余裕も55°から18.7°と少な

くなっています。


試し読みできます

性能評価

 

 

図6.5

 

 


試し読みできます

性能評価

 6.4 実用的なループ・フィルタ定数の検証

 最後にPLL_mainプログラムを使って設計したループ・フィルタをE12シリーズなどの実用的な定数とした時の特性を検証してみます。

抵抗とかコンデンサの定数は1.5kΩ、2.2μFといったように、ある決まった種類の値しかありませんし、誤差も±10%とかバラツキがあります。私がよく使っていたのはE12シリーズという10のべきを12分割したものですが、最近ではE6、E3シリーズなどを採用することによって、品種を減らしてコストダウンを図るといったことがなされています。これらの系列を選んだ時に得られるLoop Filter特性をフィルタ係数を再計算する関数RLFP.mを作成しました(リスト6.4)。sに使う系列数(3、6、12、24)を入れます。


試し読みできます

性能評価

【リスト6.7 ループ・フィルタ定数再計算結果】

Ref Frequency       : 1000.0 [Hz]

Loop offset         : 0.000 [V]

Dead Time           : 0.000 [msec]

Phase Detector Gain : 0.398 [V/rad]

VCO Gain            : 40212.4 [rad/s/V]

Divider Ratio       : 16.0

Loop Gain f0        : 159.2 [Hz]

Loop Filter Type    : Active Lag Lead

Loop Filter DC Gain : 140.0 [dB]

Loop Filter Fc      : 1.539e-007 [Hz]

Loop Filter Fl      : 6.5 [Hz]

Loop Filter Fm      : 21.7 [Hz]

Loop Filter Fh      : 72.0 [Hz]

Loop Filter R1      : 22.0 [kohm]

Loop Filter C1      : 4.700 [uF]

Loop Filter R2      : 4.7 [kohm]

Loop Filter C2      : 0.470 [uF]

Phase Margin        : 56.3 [degree] @ 24.7 [Hz]

Mean LF OUT         : 2.500


試し読みできます

終わりに

終わりに

 「Octaveの実践的活用法-基礎編-」の応用編としてPLL(Phase Locked Loop)のプログラム

を紹介しました。基礎編同様にプログラムそのものは細かく解説していません。解説よりも自分

のやりたいこと、知りたいことに即した実践的なプログラムを実際に実行することを目的として

います。ですのでPLLという素材が読者の方の目的に合っていなければ何の役にも立たないと思

われそうですが、PLLは古典制御の応用で電子回路は勿論、モーターのPI(Proportional

Integral)制御(実はPLLはPI制御です)に応用、発展させることができます。既存のOctave

プログラムをモデファイすることはとても簡単で手が付け易いと思います。何もないところから

プログラムを作っていくのは結構エネルギーが必要でちょっと気後れしてしまいます。

この本(プログラム)がみなさんの「やりたいこと」の参考になり、その元になれば幸いです。

 

 

 ■履歴

・2014年2月2日 初版発行


試し読みはここまでです。続きは購入後にお読みいただけます。

この本は有料です。閲覧するには購入する必要があります。
購入するにはしてください。
有料本の購入に関しては、こちらのマニュアルをご確認ください。
販売価格200円(税込)

読者登録

ペンタさんの更新情報・新作情報をメールで受取りますか?(読者登録について