どこかできいたことのあるタイトルで釣ってみましたが,,,。(^^;
「scilab で遊ぼう」の書庫で PLL を使った通信信号の復調を行っています。PLL というのは自動制御の一種でフィードバック系であり歴史も古く理論的には完成されている技術のようです。
ところがいざやってみると意外と難しいというのが私の実感です。
といいますか、理論書で語られている内容と実際とにギャップがあるような感じです。昔から PLL を扱ってきた人から見れば理論書の内容もよく分かるのかも知れませんが、私のように回路設計とサーボ設計から入った人間にとっては理論書の説明に取っつきにくさを感じます。
そこで、私自身が PLL を扱ってみて「難しい」、「扱いづらい」と感じたことと、それを納得(無理矢理か)するための屁理屈を並べてみて、読んでくれた人が PLL を扱うためのなにがしかの助けになればと思います。
理論書によると、PLL の基本構成要素として「位相比較器」、「ループフィルタ」そして「VCO」が必ず出てきます。

手始めに、それらの構成要素の簡単な機能理解をします。
位相比較器は、自動制御系ではセンサーに相当します。入力信号に対する出力信号の差分を検出するものです。ではここではどんな差分を検出するするのかというと、名前が示す通り入力信号と出力信号の位相差を検出します。検出結果はここでは電気信号なので電圧になります(電流の形のケースが多いのですが、受動素子を通すと電圧になります)。
ループフィルタは、後でも出てきますがこれが PLL の話を難しくしている根源だと思います。とにかく理論書によるとフィードバックループの特性を決めて、応答性などを決定するとなっています。一般の自動制御では位相補償フィルタに相当します。
VCO は所定の入力電圧に従って、発振周波数を決めて出力する発振器です。一般の自動制御では、色々ありますがモータだったり、アクチュエータだったりします。
一般的な自動制御では最初に以下のブロック図が出てきます。

入力信号 I に対して、出力信号 O とを比較して誤差信号 E を生成し、増幅器 G を通して出力信号を生成する。そこで再び入力信号との比較を行って誤差信号を作り,,,。
PLL では、入力信号の位相差と出力信号の位相差を比較して、誤差信号 E を作り、ループフィルタとVCO G を通して出力周波数を発振する。そこで...。
という感じですが、自動制御とはちょっと違った要素にお気づきでしょうか。それは、位相比較器によって位相差に応じた信号が得て、それを使ってフィルタを通した後、VCO で信号を発振するのですが、このとき電圧によって制御されるのは周波数であって位相ではありません。電圧で周波数と制御したのに、出力信号と入力信号を比較するのはあくまでも位相差です。ここに一つのポイントがあります。
別の例で考えてみます。
たとえば変位計があったとして、変位誤差が検出できるとします。そしてその変位誤差を使って、リニアアクチュエータのようなもので物体を動かすような仕組みを考えます。そのリニアアクチュエータはたとえば入力電圧に従って電流を制御して、コイルに電流を流して物体を動かすものだと考えると、電流にコイルを流して得られるものは「力」です。その力が定数である重量によって「加速度」に変わります。そうして発生した「加速度」による物体の動きを変位計で観測しています。そうです。制御しているのは「加速度」なのに観測しているのは「変位」です。微積分の関係でいうと、2階の差があります。
では PLL はというと、「周波数」を制御して観測しているのは「位相」ですから、1階微積分の関係です。つまり位相比較器と VCOだけで1階積分の演算が自動的に成立していることになります。
もう一つ別の例としてオペアンプを考えてみます。オペアンプは「やさしく考えるアナログ回路」が触れていますが、入力端子の差分電圧を増幅器によって大きな電圧にします。その発生した電圧を再び差分するのですから、微積分的には何もなく0階の関係です。
このように自動制御系といっても、その基本構成要素に原理的に微積分要素を含んでいるものとそうでないものがあるということをまず頭に留めておくと、この後の他のトピックでも理解しやすいと思います。
ちょっと前置きが長くなりましたので、今回はここまでにしたいと思います。
「scilab で遊ぼう」の書庫で PLL を使った通信信号の復調を行っています。PLL というのは自動制御の一種でフィードバック系であり歴史も古く理論的には完成されている技術のようです。
ところがいざやってみると意外と難しいというのが私の実感です。
といいますか、理論書で語られている内容と実際とにギャップがあるような感じです。昔から PLL を扱ってきた人から見れば理論書の内容もよく分かるのかも知れませんが、私のように回路設計とサーボ設計から入った人間にとっては理論書の説明に取っつきにくさを感じます。
そこで、私自身が PLL を扱ってみて「難しい」、「扱いづらい」と感じたことと、それを納得(無理矢理か)するための屁理屈を並べてみて、読んでくれた人が PLL を扱うためのなにがしかの助けになればと思います。
理論書によると、PLL の基本構成要素として「位相比較器」、「ループフィルタ」そして「VCO」が必ず出てきます。

手始めに、それらの構成要素の簡単な機能理解をします。
位相比較器は、自動制御系ではセンサーに相当します。入力信号に対する出力信号の差分を検出するものです。ではここではどんな差分を検出するするのかというと、名前が示す通り入力信号と出力信号の位相差を検出します。検出結果はここでは電気信号なので電圧になります(電流の形のケースが多いのですが、受動素子を通すと電圧になります)。
ループフィルタは、後でも出てきますがこれが PLL の話を難しくしている根源だと思います。とにかく理論書によるとフィードバックループの特性を決めて、応答性などを決定するとなっています。一般の自動制御では位相補償フィルタに相当します。
VCO は所定の入力電圧に従って、発振周波数を決めて出力する発振器です。一般の自動制御では、色々ありますがモータだったり、アクチュエータだったりします。
一般的な自動制御では最初に以下のブロック図が出てきます。

入力信号 I に対して、出力信号 O とを比較して誤差信号 E を生成し、増幅器 G を通して出力信号を生成する。そこで再び入力信号との比較を行って誤差信号を作り,,,。
PLL では、入力信号の位相差と出力信号の位相差を比較して、誤差信号 E を作り、ループフィルタとVCO G を通して出力周波数を発振する。そこで...。
という感じですが、自動制御とはちょっと違った要素にお気づきでしょうか。それは、位相比較器によって位相差に応じた信号が得て、それを使ってフィルタを通した後、VCO で信号を発振するのですが、このとき電圧によって制御されるのは周波数であって位相ではありません。電圧で周波数と制御したのに、出力信号と入力信号を比較するのはあくまでも位相差です。ここに一つのポイントがあります。
別の例で考えてみます。
たとえば変位計があったとして、変位誤差が検出できるとします。そしてその変位誤差を使って、リニアアクチュエータのようなもので物体を動かすような仕組みを考えます。そのリニアアクチュエータはたとえば入力電圧に従って電流を制御して、コイルに電流を流して物体を動かすものだと考えると、電流にコイルを流して得られるものは「力」です。その力が定数である重量によって「加速度」に変わります。そうして発生した「加速度」による物体の動きを変位計で観測しています。そうです。制御しているのは「加速度」なのに観測しているのは「変位」です。微積分の関係でいうと、2階の差があります。
では PLL はというと、「周波数」を制御して観測しているのは「位相」ですから、1階微積分の関係です。つまり位相比較器と VCOだけで1階積分の演算が自動的に成立していることになります。
もう一つ別の例としてオペアンプを考えてみます。オペアンプは「やさしく考えるアナログ回路」が触れていますが、入力端子の差分電圧を増幅器によって大きな電圧にします。その発生した電圧を再び差分するのですから、微積分的には何もなく0階の関係です。
このように自動制御系といっても、その基本構成要素に原理的に微積分要素を含んでいるものとそうでないものがあるということをまず頭に留めておくと、この後の他のトピックでも理解しやすいと思います。
ちょっと前置きが長くなりましたので、今回はここまでにしたいと思います。