0次ホールド機構の周波数特性

はじめに

信号処理や制御工学では実用上、ディジタル計算機で実現するために連続時間信号をAD変換して離散領域で演算した後、DA変換して連続系である制御対象に入力する。よって手を加える前の物理系に於いて入力と制御対象の間に0次ホールド回路と演算回路が挟まった形になる。本記事では0次ホールド回路を通過した正弦波の周波数スペクトラムについて考察する。

背景

技術書の中には上述の問題をステップ入力に対するラプラス変換の積分と時間遅れとして表してゲインや位相を考えているものもあるが、これは厳密には正しくない。なぜなら、0次ホールド回路に正弦波を入れた際、通過した信号は細かいステップの集まりであり、元の正弦波に近いものの、完全な正弦波ではないからである。「ゲイン」や「位相変化」を厳密に定義できない。厳密には、Fourier変換してスペクトラムについて考える必要がある。とはいえ、無限に続く減衰しない信号のFourier変換は通常の関数の意味では存在しないし(超関数になる)、現実の測定器は窓関数で時間制限した信号のFourier変換を近似的に計算している。そこで本記事では窓関数付きのFourier変換の結果ついて考察する。

arg maxarg min\providecommandrecterf\providecommand\providecommand\providecommandPr

導出

f0>0とし、連続時間の複素正弦波信号x:tRexp(i2πf0t)を考える。サンプリング周期をTs>0とする。この周期でxを0次ホールドした信号をxd:tRx(t/TsTs)とする。次の図はxxdの実部を示したものである。

元の信号とその0次ホールド

上の図より、xdの基本周波数成分(周波数成分に於けるf0に対応する成分)がxのそれより遅れることが予想される。このことを矩形窓を通した、周波数表示されたFourier変換で考察する。NNとし、窓の幅をT=NTsとする。窓の幅をTsの整数倍に選んでいるが、非整数倍の場合でも幅を十分に大きくとれば小数部分に対応する区間の積分の1/T倍は無視できるほど小さくなり、最も近い整数倍の幅を用いた結果と殆ど一致する。xの窓付きFourier変換を窓の幅で規格化したものは次式である。

X(f)=1T0Tx(t)exp(i2πft)dt=1i2π(ff0)T(1exp(i2π(ff0)T))

xdの窓付きFourier変換は次式である。

Xd(f)=1T0Txd(t)exp(i2πft)dt=1Tk=0N1kTs(k+1)Tsxd(t)exp(i2πft)dt=1Tk=0N1exp(i2πf0kTs)kTs(k+1)Tsexp(i2πft)dt=1Tk=0N1exp(i2πf0kTs)1i2πfexp(i2πfkTs)(1exp(i2πfTs))=1exp(i2πfTs)i2πf1Tk=0N1exp(i2π(f0f)kTs)(A)=1exp(i2πfTs)i2πf1NTsexp(iπ(f0f)(N1)Ts)sinπ(ff0)NTssinπ(ff0)Ts

最後の式を導くために、(A)に等比数列の和の公式を適用し、分母・分子それぞれsinが生じるように複素指数関数を括り出して整理した。

xd中の、周波数がf0である成分の振幅と位相を調べる。ff0の極限に関して次式が成り立つ。

limff0Xd(f)=1exp(i2πf0Ts)i2πf0Ts

これより、上式に相当する振幅と位相の変化が生じる。サンプリングが十分に高速、すなわちf0Ts1であるとき上式は1に近づくので、振幅と位相の変化は無くなってゆく。

次に、高調波領域を調べる。|Xd(f)|1/Ts周期関数と1/|f|の積であるので、|f|<Ts/2の部分の縮小コピーが高周波領域に於いて1/Ts毎に現れる。これが高調波成分である。

数値例

今、f0=10,Ts=102,N=200とする。f=f0に於ける振幅と位相は|Xd(f0)|0.9836,Xd(f0)\ang18.00となる。次の図はf0近傍でのエネルギー・スペクトラム密度 X,Xdを示したものである。

元の周波数の近傍での ESD

低周波領域では両者が良く一致していることがわかる。

次に高調波を見る。次の図はサンプリング周波数の3倍の範囲までX,Xdを示したものである。次の図はxxdの実部を示したものである。

サンプリング周波数の整数倍の位置に高調波が生じていることが判る。

以上の数値例を計算したMathematicaノートブックをここで公開している。

投稿者: motchy

DSP and FPGA engineer working on measuring instrument.

コメントを残す