線形制御系設計

    線形システムの表現
    線形システムの特性解析
    制御器設計
    観測器設計
    離散時間システム

    モーションコントロール

    加速度制御
    剛体の姿勢制御

    モータドライブ

    駆動制御法
    磁極位置推定法

    システム同定

    ホワイトボックスモデル
    パラメトリックモデル

信号の量子化

連続信号を離散信号に変換する際には時間方向の離散化を行うサンプラを挟むが,サンプル値を取得・表現する手続きによって空間方向にも離散化を伴う。 また,離散信号を複数システム間で送受信する場合に,通信量を抑制する目的で送信する信号の表現力を落とし,データ量を削減することがある。 このように信号の空間的な分解能を変化させる処理を量子化と呼ぶ。

量子化器の一般表現

量子化を行うシステムは量子化器と呼ばれ,大別して静的量子化器と動的量子化器の2種類が存在する。 静的量子化器では,入力されたサンプル値を離散制御システムで表現可能な値の中で最も近い値(もしくは床関数の出力)で表現するものであり,その量子化出力は現在のサンプル値のみに依存する。 動的量子化器は静的量子化器に加えて量子化誤差の影響を抑圧するフィードバックループを追加したものであり,その量子化出力は現在のサンプル値に加えて過去のサンプル値に依存する。 このフィードバックによる信号補正の仕組みは変調と呼ばれ,デルタシグマ変調を用いた量子化器が動的量子化器として挙げられる。 これらの量子化器であるが,動的量子化器から変調機能を取り去れば静的量子化器となることから,以下のような一般表現を与えることができる。
y[k]=xm[k]+q[k]xm[k]=x[k]+Q(z)(xm[k]y[k])=x[k]+z1Q(z)q[k]\begin{align} y[{\rm k}] &= x_{\rm m}[{\rm k}] + q[{\rm k}] \\ x_{\rm m}[{\rm k}] &= x[{\rm k}] + Q(z)(x_{\rm m}[{\rm k}] - y[{\rm k}]) \\ &= x[{\rm k}] + z^{-1}Q(z)q[{\rm k}] \\ \end{align}
ただし,x[k]x[{\rm k}] はサンプル値,xm[k]x_{\rm m}[{\rm k}] は変調されたサンプル値かつ量子化器への入力値,y[k]y[{\rm k}] は量子化出力を表し,q[k]q[{\rm k}] は量子化誤差,QQ は変調特性を決定する自由パラメータとする。変調器は x[k]x[{\rm k}] から y[k]y[{\rm k}] までの伝達特性に影響を与えることは許されず,量子化誤差のみに作用しなければならない。これは2自由度制御系の設計問題となるが,Youlaの安定化制御器の構造解析より得られる結果から,量子化誤差を推定してフィードバックする方式で実現できる。自由パラメータ QQ ついて,静的量子化器の設定値を QsQ_{\rm s}L\rm L 次デルタシグマ変調付き動的量子化器の設定値を QdQ_{\rm d} とすれば,以下のように設計される。
Qs(z)=0Qd(z)=1(1z1)L  (L=1,2,3...)\begin{align} Q_{\rm s}(z) &= 0 \\ Q_{\rm d}(z) &= 1 - (1-z^{-1})^{\rm L}\ \ (L=1,2,3...) \end{align}
ここで,動的量子化器において L=0 {\rm L}=0 とすれば静的量子化器と一致する。そこで,自由パラメータ QQ は以下のように定める。
Q(z)=1(1z1)L  (L=0,1,2...)\begin{align} Q(z) &= 1 - (1-z^{-1})^{\rm L}\ \ (L=0,1,2...) \end{align}
また,入出力関係を整理すれば,以下の表現を得る。
y[k]=x[k]+HL(z)q[k]HL(z)=1Q(z)=(1z1)L\begin{align} y[{\rm k}] &= x[{\rm k}] + H_{\rm L}(z)q[{\rm k}] \\ H_{\rm L}(z) &= 1-Q(z) = (1-z^{-1})^{\rm L} \end{align}

量子化誤差の評価

サンプル値の空間方向の離散化幅を qsq_{\rm s} とする。このとき,量子化誤差は qIq (Iq=(qs/2,qs/2))q\in I_{q}\ (I_{q}=(-q_{\rm s}/2, q_{\rm s}/2)) となる。以下では量子化雑音が白色性を有し,そのノルムは区間 IqI_{\rm q} で一様分布に従うものとする。量子化誤差が一様分布に従うという仮定の下,時間長 TT において区間 IqI_{\rm q} の全ての量子化誤差が発生したとすると,量子化誤差のパワー PqP_{\rm q} は次のように計算される。
Pq=1TT2h2(qsTt)2dt=qs212\begin{align} P_{\rm q} &= \frac{1}{T}\int^{\frac{h}{2}}_{-\frac{T}{2}} \left(\frac{q_{\rm s}}{T}t\right)^2 dt = \frac{q_{\rm s}^2}{12} \end{align}
また,サンプラの周期を hh としてパワースペクトル密度 Φq(f)\Phi_{\rm q}(f) は次式を満たし,白色性を有する仮定の下で簡潔に記述することができる。
Pq=0fNΦq(f)df (fN=12h)Φq(f)=fN1Pq=qs212fN\begin{align} P_{\rm q} &= \int^{f_{\rm N}}_0 \Phi_{\rm q}(f) df\ \left(f_{\rm N}=\frac{1}{2h}\right)\\ \Phi_{\rm q}(f) &= f_{\rm N}^{-1}P_{\rm q} = \frac{q_{\rm s}^2}{12f_{\rm N}} \end{align}
ただし,fNf_{\rm N} はナイキスト周波数を表す。また,変調後の量子化誤差のパワースペクトル密度を Φm(f)\Phi_{\rm m}(f) は次のように表現される。
Φm(f)=HL(f)2Φq(f)\begin{align} \Phi_{\rm m}(f) &= |H_{\rm L}(f)|^2\Phi_{\rm q}(f) \end{align}
ここで,振幅変化は次のように計算される。
HL(f)2=HL(f)H(f)=HL(z)HL(z1)z=ejωh=ej2πf/fs\begin{align} |H_{\rm L}(f)|^2 &= H_{\rm L}(f)H^{\ast}(f)\\ &= H_{\rm L}(z)H_{\rm L}(z^{-1})|_{z=e^{j\omega h}=e^{j2\pi f/f_{\rm s}}} \end{align}
ただし,fs=h1f_{\rm s}=h^{-1} はサンプリング周波数である。さらに整理をすると,以下のようになる。
HL(f)2=(1z1)L(1z)Lz=ej2πf/fs=(2(z+z1))Lz=ej2πf/fs={2(1cos2πffs)}L=4Lsin2L(πffs)\begin{align} |H_{\rm L}(f)|^2 &= (1-z^{-1})^{\rm L}(1-z)^{\rm L}|_{z=e^{j2\pi f/f_{\rm s}}} \\ &= (2-(z + z^{-1}))^{\rm L} |_{z=e^{j2\pi f/f_{\rm s}}} \\ &= \left\{2\left(1-\cos \frac{2\pi f}{f_{\rm s}}\right)\right\}^{\rm L}\\ &= 4^{\rm L}\sin^{2{\rm L}}\left(\frac{\pi f}{f_{\rm s}}\right) \end{align}
ここで,システムの扱う周波数帯域 [0,fc][0, f_{\rm c}] に限定し,変調後の量子化誤差のパワーを計算する。これは入力ノイズや量子化誤差の影響がシステムに与える影響を低減するため量子化器の後段に低域通過フィルタを設置することが一般的であり,妥当な条件設定と考えられる。帯域内の変調量子化誤差のパワーを Pm,LP_{\rm m, L} とすると,次のように計算される。
Pm,L=0fcΦm(f)df=0fc4Lsin2L(πffs)qs212fNdf=4Lqs26fs0fcsin2L(πffs)df\begin{align} P_{\rm m, L} &= \int^{f_{\rm c}}_0 \Phi_{\rm m}(f) df\\ &= \int^{f_{\rm c}}_0 4^{\rm L}\sin^{2{\rm L}}\left(\frac{\pi f}{f_{\rm s}}\right) \frac{q_{\rm s}^2}{12f_{\rm N}} df\\ &= 4^{\rm L}\frac{q_{\rm s}^2}{6f_{\rm s}} \int^{f_{\rm c}}_0 \sin^{2{\rm L}}\left(\frac{\pi f}{f_{\rm s}}\right) df \end{align}
右辺の積分計算は非常に難しく,Wallis積分を経由して解を得ることが可能だが,簡潔な表現は得られない。そこで,周波数上限 fcf_{\rm c} がサンプリング周波数 fsf_{\rm s} より十分に小さいものとして,次のように近似を行う。
P~m,L=4Lqs26fs0fc(πffs)2Ldf=4Lqs26fs(πfs)2L0fcf2Ldf=12L+14Lqs26fs(πfs)2Lfc2L+1=qs26(2π)2L2L+1(fcfs)2L+1\begin{align} \tilde{P}_{\rm m, L} &= 4^{\rm L}\frac{q_{\rm s}^2}{6f_{\rm s}} \int^{f_{\rm c}}_0 \left(\frac{\pi f}{f_{\rm s}}\right)^{2{\rm L}} df\\ &= 4^{\rm L}\frac{q_{\rm s}^2}{6f_{\rm s}} \left(\frac{\pi}{f_{\rm s}}\right)^{2{\rm L}} \int^{f_{\rm c}}_0 f^{2{\rm L}} df\\ &= \frac{1}{2L+1}4^{\rm L}\frac{q_{\rm s}^2}{6f_{\rm s}} \left(\frac{\pi}{f_{\rm s}}\right)^{2{\rm L}} f_{\rm c}^{2{\rm L+1}}\\ &= \frac{q_{\rm s}^2}{6}\frac{(2\pi)^{2{\rm L}}}{2L+1} \left(\frac{f_{\rm c}}{f_{\rm s}}\right)^{2{\rm L}+1} \end{align}
ただし,Pm,0P_{\rm m, 0} は近似なく P~m,0\tilde{P}_{\rm m, 0} と一致することに留意する。この関数は q,fsq, f_{\rm s} の関数であり,すなわち量子化雑音は空間方向の分解能と時間方向の分解能の双方によって決定されることが確認できる。また,上記のパワーをデシベル表記をすれば,以下のようになる。
P~m,L(q,fs)=log10{qs26(2π)2L2L+1(fcfs)2L+1}=20log10q(2L+1)10log10(fcfs)+15.96L10log10(2L+1)7.78 [dB]\begin{align} \tilde{P}_{\rm m, L}(q, f_{\rm s}) &= \log_{10}\left\{\frac{q_{\rm s}^2}{6}\frac{(2\pi)^{2{\rm L}}}{2L+1} \left(\frac{f_{\rm c}}{f_{\rm s}}\right)^{2{\rm L}+1} \right\}\\ &= 20\log_{10}q - (2{\rm L}+1)10\log_{10}\left(\frac{f_{\rm c}}{f_{\rm s}}\right) + 15.96L - 10\log_{10}(2{\rm L}+1) - 7.78\ [{\rm dB}] \end{align}
以上の式は空間分解能を半分にすれば 6.02 dB6.02\ {\rm dB},時間分解能を半分にすれば 3.01(2L+1) dB3.01(2{\rm L}+1)\ {\rm dB} の量子化誤差抑圧が達成されることを示している。FPGA等においては,サンプラと量子化系をマルチレートで高速に動作させることで量子化誤差の抑圧が実現できる。

量子化誤差のSNR

離散時間システムの空間方向の量子化ビット数を N\rm N とする。このとき,フルスケールの正弦波信号は次のように記述される。
x=2Nqs2sin(2πfat)\begin{align} x &= \frac{2^{\rm N}q_{\rm s}}{2}\sin(2\pi f_{a}t) \end{align}
この正弦波信号の実効値は次のようになる。
xrms=2Nqs22\begin{align} x_{\rm rms} &= \frac{2^{\rm N}q_{\rm s}}{2\sqrt{2}} \end{align}
すなわち,パワーは次の値を取る。
Px=(2Nqs22)2=22Nqs28\begin{align} P_{x} &= \left(\frac{2^{\rm N}q_{\rm s}}{2\sqrt{2}}\right)^2=\frac{2^{2{\rm N}}q_{\rm s}^2}{8} \end{align}
これをデシベル表記すれば,次のようになる。
Px=log10(22Nqs28)=20log10q+6.02N9.03 [dB]\begin{align} P_{x} &= \log_{10}\left(\frac{2^{2{\rm N}}q_{\rm s}^2}{8}\right) = 20\log_{10}q + 6.02{\rm N} - 9.03\ [{\rm dB}] \end{align}
ここで,静的量子化器のSNRについて計算すれば,以下の結果を得る。
SNR=log10(PxPm,0)=6.02N1.25+10log10(fcfs) [dB]\begin{align} {\rm SNR} &= \log_{10}\left(\frac{P_x}{P_{\rm m,0}}\right)= 6.02{\rm N} - 1.25 + 10\log_{10}\left(\frac{f_{\rm c}}{f_{\rm s}}\right)\ [{\rm dB}] \end{align}
帯域上限 fc=fNf_{\rm c}=f_{\rm N} とすれば,次の値を取る。
SNR=6.02N+1.76 [dB]\begin{align} {\rm SNR} &= 6.02{\rm N} + 1.76\ [{\rm dB}] \end{align}
これはA/Dコンバータの性能を示す指標として広く知られる式である。