離散時間の信号とシステム - CATNEThost.catnet.ne.jp/triceps/pub/sample/ws265.pdf12 第2...

14
11 2 離散時間の信号とシステム 2.1 サンプリング ディジタル アルゴリズム 、多く するために いられる。こ き、 に変 される ある。そ がディジタル アルゴリズム され、そ されて る。 2.1 、こ れを して いる。 2.1: ディジタル システム き、アナログ/ディジタル(A/D)変 ある一 隔ご にそ 大きさが され、 に変 される。こ サンプリ ング ある。さらに、 、それぞれ ット えられ、ディジタル される。こ き、 による 、す わち してしまう。ディジタル された 、ディジタル/アナログ D/A) される。 サンプリングにおいて られる一 サンプリング間隔あるい サンプリ ング周期 れる。こ 、し り扱われ、サンプリング周波数 れる。す わち、サンプリング T s [s] サンプリング f s [Hz] T s = 1 f s (2.1) にある。 確に 2.1 されるよう ディジタル システム 、ディジタル り扱われる。しかし、 からディジタル えるこ する 、ディジタル よりむしろ える が、 ステム り扱いが 易に る。これ びつける 、サンプリング するため ある。 が、いわゆるサンプリング る。それ ように きる。

Transcript of 離散時間の信号とシステム - CATNEThost.catnet.ne.jp/triceps/pub/sample/ws265.pdf12 第2...

  • 11

    第 2章

    離散時間の信号とシステム

    2.1 サンプリング

     ディジタル信号処理アルゴリズムは、多くの場合連続時間信号を処理するために用

    いられる。このとき、処理対象の連続時間信号は一度離散時間信号に変換される必要が

    ある。その離散時間信号がディジタル信号処理アルゴリズムで処理され、その結果が再

    び連続時間信号に戻されて最終的な処理結果となる。図 2.1は、この一連の流れを示している。

    連続時間信号A/D ディジタル信号処理 D/A

    連続時間信号

    図 2.1: ディジタル信号処理システム

    このとき、アナログ/ディジタル(A/D)変換部分で、連続時間信号はある一定時間間隔ごとにその大きさが取り出され、離散時間信号に変換される。この処理がサンプリ

    ングである。さらに、離散時間信号は、それぞれの離散時間での値が有限ビット長で置き

    換えられ、ディジタル信号へと変換される。このとき、有限語長による誤差、すなわち

    量子化誤差が発生してしまう。ディジタル信号は処理された後、ディジタル/アナログ

    (D/A)変換部分で逆の手順で連続時間信号に戻される。サンプリングにおいて取られる一定の時間間隔は、サンプリング間隔あるいはサンプリ

    ング周期と呼ばれる。この時間間隔は、しばしば逆数で取り扱われ、サンプリング周波数

    と呼ばれる。すなわち、サンプリング周期 Ts[s]はサンプリング周波数 fs[Hz]と

    Ts =1fs

    (2.1)

    の関係にある。

    正確には、図 2.1で表されるようなディジタル信号処理システムでは、ディジタル信号が取り扱われる。しかし、離散時間信号からディジタル信号への変換が誤差なく理想的に

    行えることを仮定すると、ディジタル信号よりむしろ離散時間信号を考える方が、処理シ

    ステムの取り扱いが容易になる。これは、離散時間信号と連続時間信号を結びつける基本

    定理、サンプリング定理が存在するためである。

    離散時間信号を損失なく連続時間信号に戻す定理が、いわゆるサンプリング定理であ

    る。それは、次のように明記できる。

  • 12 第 2章 離散時間の信号とシステム

    サンプリング定理

    連続時間信号の有する最大周波数の2倍以上の周波数でサンプリングを行えば、連

    続時間信号の性質を損なうことなく、忠実に元の連続時間信号を復元することがで

    きる。

    今、時間 tに対して時間間隔 T ごとにサンプリングすることを考える。このとき、連続

    時間信号が xa(t)で表されるなら、

    xa(nT ) = x(n) n = 0, 1, 2, ... (2.2)

    となる離散時間信号 x(n)が得られる。MATLABでこの処理を行ってみる。厳密には連続時間信号を表現することができないため、仮に非常に高いレートで連続時

    間信号をサンプリングする離散時間信号を用意することで、擬似的に連続時間信号を扱う

    ことにする。周波数 3Hzの連続時間の正弦波信号を1秒間生成する場合を考える。サンプリング間隔を T=0.2秒とすると、粗い波形が得られる。

    % Script sampling.m

    t=0:0.0005:1;

    f=3;

    xa=cos(2*pi*f*t);

    subplot(211)

    plot(t,xa)

    xlabel(’t’)

    ylabel(’xa(t)’)

    grid

    %

    T=0.2;

    n=0:T:1;

    xs=cos(2*pi*f*n);

    k=0:length(n)-1;

    subplot(212)

    stem(k,xs)

    xlabel(’n’)

    ylabel(’x(n)’)

    grid

    図 2.4より、サンプリング値が連続時間信号値と対応していることが確認できる。しかし、上記の設定では、T>1/2fであり、サンプリング定理を満たしていない。このとき、

    離散時間信号から連続時間信号を損失なく復元することは不可能である。

    サンプリング定理を満たすようにサンプリング間隔をより狭くすると、離散時間信号の

    波形形状が明確になる。例えば、サンプリング間隔を T=0.01秒としてみる。下図が入れ

    替わり、離散時間信号が元の連続時間信号により近くなっていることが確認できる。この

  • 2.1 サンプリング 13

    0 0.2 0.4 0.6 0.8 1-1

    -0.5

    0

    0.5

    1

    t

    xa(t)

    0 1 2 3 4 5-1

    -0.5

    0

    0.5

    1

    n

    x(n)

    図 2.2: サンプリング例(比較的長いサンプリング間隔の場合)

    0 0.2 0.4 0.6 0.8 1-1

    -0.5

    0

    0.5

    1

    t

    xa(t)

    0 20 40 60 80 100-1

    -0.5

    0

    0.5

    1

    n

    x(n)

    図 2.3: サンプリング例(比較的短いサンプリング間隔の場合)

    場合、T

  • 14 第 2章 離散時間の信号とシステム

    0

    図 2.4: 連続時間信号のフーリエ変換

    0

    0

    0

    図 2.5: 離散時間信号のフーリエ変換のサンプリング周波数による違い

    2.2 離散時間信号

    代表的な離散時間信号を示す。

    ■単位インパルス信号

    δ(n) ={

    1 n = 00 n ̸= 0 (2.3)

    単位インパルス信号は、n = 0で大きさ1の値を有し、それ以外はすべて大きさが0である信号である。図 2.6を参照されたい。

    ■単位ステップ信号

    u(n) ={

    1 n ≥ 00 n < 0 (2.4)

    単位ステップ信号は、nが0以上において大きさ1となる信号である。図 3.1を参照されたい。

  • 2.2 離散時間信号 15

    -10 -5 0 5 100

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    1.6

    1.8

    2

    n

    delta(n)

    図 2.6: 単位インパルス信号

    -10 -5 0 5 100

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    1.6

    1.8

    2

    n

    u(n)

    図 2.7: 単位ステップ信号

    ■ランプ信号

    ur(n) ={

    n n ≥ 00 n < 0 (2.5)

    ランプ信号は、nが 0以上で nの大きさに比例してその大きさが増大する信号で、図 2.8のようになる。

    ■指数信号x(n) = an (2.6)

    この指数信号は、aが実数であれば実信号となる。図 2.9は、a = −0.8の場合の特性を示している。

     上記の単位インパルス信号、単位ステップ信号、ランプ信号、指数信号は、数式で明

  • 33

    第 3章

    ディジタル信号処理のための変換

    3.1 z変換

    図 3.1のような離散時間信号を考える。このとき、0時刻でのサンプル値 x(0)は単位インパルス信号 δ(n)を用いて取り出せる。また、その右側に 1サンプルずれたサンプル値x(1)は、1サンプル遅延された単位インパルス信号 δ(n − 1)を用いて、またそのさらに右側に 1サンプルずれたサンプル値 x(2)は、2サンプル遅延された単位インパルス信号δ(n− 2)を用いて取り出せる。他の変換との相互関係を確立しつつ、この性質を陽に表す有意義な変換が、z 変換である。

    図 3.1: ある離散時間信号の波形

    離散時間信号 x(n)の z 変換は、べき級数として次式で定義される。

    X(z) = Z{x(n)} =∞∑

    n=−∞x(n)z−n (3.1)

    ここで z は複素変数であり、z 変換により時間領域信号 x(n)は複素領域表現 X(z)に変換される。逆に X(z)から x(n)を求める操作が逆 z 変換であり、式 (3.1)の逆 z 変換は

    Z−1{X(z)} = x(n) (3.2)

    で定義される。すなわちX(z)が z−1 の多項式であれば、その多項式の係数がX(z)の逆z 変換になる。

    この様に z 変換は、離散時間信号やシステムを多項式で表すことができる。従って多項

    式の因数分解等の数学的な手法を適用することができ、非常に重要な変換である。

  • 34 第 3章 ディジタル信号処理のための変換

    一般に z 変換は無限べき級数であるから、この級数の収束に関しては注意が必要であ

    る。すなわちある z−1に対してべき級数は収束し、この収束のための領域 (ROC : RegionOf Convergence)が重要になる。ここで簡単な例を示そう。実定数 αにおける

    x(n) = αnu(n) ={

    αn n > 00 n < 0 (3.3)

    の z 変換は

    X(z) =∞∑

    n=0

    αnz−n =∞∑

    n=0

    (αz−1)n (3.4)

    となる。ここで無限級数に関する以下の重要な性質がある。

    1 + g + g2 + · · · = 11 − g

    if |g| < 1 (3.5)

    ここで gはある複素変数である。この関係を使うと、|αz−1| < 1すなわち |z| > |α|の時、無限級数は収束し、

    X(z) =1

    1 − αz−1ROC : |z| > |α| (3.6)

    が得られる。

    3.1.1 z 変換の性質

    線形性 X1(z) = Z{x1(n)}、X2(z) = Z{x2(n)}とすると、実定数 a1, a2 において

    X(z) = Z[a1x1(n) + a2x2(n)] = a1X1(z) + a2X2(z) (3.7)

    が成り立つ。これは z 変換の定義から明らかである。また逆も当然成り立つ。

    時間シフト Z[x(n)] = X(z)とすると、

    Z[x(n − k)] = z−kX(z) (3.8)

    となる。これは時間遅延に相当し、遅延作用素を z 変換すると z−1 の項が生じる。

    このため遅延器を表す記号として z−1 が用いられる。z 変換の線形性と時間シフトを

    使って線形時不変システムの z 変換が簡単に得られる。

    時間反転 信号 x(n)の時間反転信号 x(−n)の z 変換は

    Z[x(−n)] = X(z−1) (3.9)

    で定義される。これは次式から明らかである。

    Z[x(−n)] =∞∑

    n=−∞x(−n)z−n =

    ∞∑n=−∞

    x(n)(z−1)n = X(z−1)

    畳み込み 2つの信号 x1(n)と x2(n)の畳込みの z 変換は

    Z[x1(n) ∗ x2(n)] = X1(z)X2(z) (3.10)

    と表される。上式は、時間領域における2つの信号の畳込みが、z 領域で2つの信号

    の z 変換の積で表されることを意味している。すなわち時間領域における畳込みが、

    z 領域では単純な積の形で表現でき、これが z 変換における最も重要な性質である。

  • 3.1 z変換 35

    2つの信号の畳込みは、次式で定義される。

    x(n) =∞∑

    k=−∞

    x1(k)x2(n − k) (3.11)

    これを z 変換すると

    X(z) =∞∑

    n=−∞x(n)z−n =

    ∞∑n=−∞

    [ ∞∑k=−∞

    x1(k)x2(n − k)

    ]z−n

    =∞∑

    k=−∞

    x1(k)

    [ ∞∑n=−∞

    x2(n − k)z−(n−k)]

    z−k = X2(z)∞∑

    k=−∞

    x1(k)z−k

    = X1(z)X2(z)

    が得られる。

    3.1.2 差分方程式の z 変換

    LTIシステムの時間領域入出力関係、式 (2.49)を z 変換すると

    Y (z) = H(z)X(z) (3.12)

    と表される。ここで H(z)はインパルス応答 h(n)の z 変換であり、h(n)と H(z)はそれぞれ時間領域及び z 領域における等価な表現であり、H(z)はシステム関数あるいは伝達関数と呼ばれる。

    LTIシステムの差分方程式の z 変換を考えてみよう。式 (2.57)を変形すると、差分方程式は次式で表される。

    M∑k=0

    aky(n − k) =N∑

    k=0

    bkx(n − k) (3.13)

    但し a0 = 1と仮定する。Z[x(n)] = X(z)、Z[y(n)] = Y (z)とし、両辺を z 変換すると

    M∑k=0

    akz−kY (z) =

    N∑k=0

    bkz−kX(z) (3.14)

    となる。従って離散時間システムの伝達関数は

    H(z) =Y (z)X(z)

    =

    N∑k=0

    bkz−k

    1 +M∑

    k=1

    akz−k(3.15)

    となり、z の有理関数で表される。この時、伝達関数の分子多項式はN 次、分母多項式は

    M 次となり、それぞれ因数分解されるとすると

    H(z) = G∏N

    k=1(1 − qkz−1)∏Mk=1(1 − pkz−1)

    (3.16)

  • 36 第 3章 ディジタル信号処理のための変換

    と表現できる。ここで Gはゲインを与える実数値であるとする。このとき、分子多項式

    =0の解、qk、を零点と呼び、分母多項式=0の解、pk、を極と呼ぶ。すなわち、ここでの伝達関数 H(z)は、N 個の零点とM 個の極を持つことになる。ここで全ての ak が零の時、H(z)は FIRシステムの伝達関数で単なる z の多項式となり、ak ̸= 0である係数が1つでもあれば、H(z)は IIRシステムの伝達関数となり、有理関数で表される。ここで例を考えてみる。差分方程式が

    y(n) − 14y(n − 2) = x(n) − x(n − 2) (3.17)

    で与えられるシステムの伝達関数を求めると

    H(z) =1 − z−2

    1 − 14z−2(3.18)

    である。このとき、伝達関数の分母と分子にそれぞれ z2 を掛け合わせると

    H(z) =z2 − 1z2 − 14

    (3.19)

    となり、因数分解すると

    H(z) =(z − 1)(z + 1)(z − 12 )(z +

    12 )

    (3.20)

    となる。ここで、分子多項式=0の解となる零点と、分母多項式=0の解となる極を求めると、零点は 1,−1、 極は 1/2,−1/2であることが容易にわかる。分母と分子に今度は z−2

    を掛け合わせると

    H(z) =(1 − z−1)(1 + z−1)

    (1 − 12z−1)(1 +12z

    −1)(3.21)

    となるため、式 (3.20)と式 (3.21)の関係から、z のべき乗の式変形を利用することにより、零点と極をより把握しやすくなることが理解できよう。

    関数 zplaneを利用すると、より複雑な差分方程式の係数値から直接的に零点と極を求め、それらを複素平面にプロットすることができる。スクリプト polezero.mは、差分方

    程式

    y(n) + 5y(n − 1) + 2y(n − 2) + y(n − 3) + y(n − 4) (3.22)= 2x(n) + 5x(n − 1) + 9x(n − 2) + 6y(n − 3) + 3y(n − 4)

    の例を与えている。結果は図 3.2となる。

    % Script polezero.m

    B=[2 5 9 6 3];

    A=[1 5 2 1 1];

    zplane(B,A)

    ここでは、○が零点で、×が極に対応している。

  • 53

    第 4章

    ディジタルフィルタ

    4.1 ディジタルフィルタの特性

    ディジタルフィルタの周波数特性は

    H(ejω) = |H(ejω)|ejθ(ω) (4.1)

    のように振幅項 |H(ejω)|と位相項 ejθ(ω) に分離できる。代表的なディジタルフィルタとして、振幅 |H(ω)|の特性により、低域通過 (Low Pass)、高域通過 (High Pass)、帯域通過 (Band Pass)、帯域阻止 (Band Stop)フィルタの4つが実用上特に重要である。ディジタルフィルタは信号を通過させる振幅1の通過域と、逆に信号を遮断する振幅零

    の阻止域から形成される。理想的なディジタルフィルタは通過域と阻止域のみから形成さ

    れるべきであるが、このような理想特性を実現することは不可能であり、通過域と阻止域

    をつなぐ遷移域を設け近似的にディジタルフィルタを実現する。

    位相特性は零位相が理想であるが、物理的に困難である。よって線形位相を望ましい特

    性と捉えることが多い。FIR形フィルタの場合には完全な線形位相が実現可能である。与えられる周波数特性の仕様を近似する伝達関数を導出する過程が、一般にディジタル

    フィルタ設計と呼ばれる。したがってディジタルフィルタ設計は、伝達関数の係数を決定

    することと等しい。

    4.1.1 線形位相フィルタ

     フィルタ長 N + 1のインパルス応答列 h(n)の z 変換は

    H(z) =N∑

    n=0

    h(n)z−n (4.2)

    と表され、ここでの次数は N である。周波数応答は、上式に z = ejω を代入すると、

    H(ejω) =N∑

    n=0

    h(n)e−jωn =∣∣H(ejω)∣∣ ejθ(ω) (4.3)

    と表され、次のように振幅項と位相項に分離できる。

    ∣∣H(ejω)∣∣ =√√√√( N∑

    n=0

    h(n) cos nω

    )2+

    (N∑

    n=0

    h(n) sin nω

    )2(4.4)

  • 54 第 4章 ディジタルフィルタ

    1

    0

    1

    0

    (a) LPF

    (c) BPF (d) BSF

    (b) HPF

    1 1

    0 0

    図 4.1: 代表的なディジタルフィルタ

    tan θ(ω) =

    N∑n=0

    h(n) sin nω

    N∑n=0

    h(n) cos nω(4.5)

    振幅特性は原点に対して偶対称、位相特性は奇対称になる。FIRフィルタの位相特性は一般には非線形となるが、係数に対称性を課すことにより、完全な線形位相を実現できる。

    N が偶数で、インパルス応答が偶対称、すなわち h(n) = h(N − n)の関係を持っている場合を考える。その周波数応答は、式 (4.2)より

    H(ejω) =N∑

    n=0

    h(n)e−jωn

    = h(N

    2)e−jω

    N2 +

    N/2−1∑n=0

    h(n){

    e−jωn + e−jω(N−n)}

    = e−jωN2

    h(N2

    ) +N/2−1∑

    n=0

    h(n){

    ejω(N2 −n) + e−jω(

    N2 −n)

    }= e−jω

    N2

    h(N2

    ) + 2N/2−1∑

    n=0

    h(n){

    cos(N

    2− n)ω

    } (4.6)と表される。ここで N/2 − n = k と置換し、γ(0) = h{(N)/2} 、γ(k) = 2h{N/2 − k}と置くと、

    H(ejω) = e−jωN2

    N/2∑n=0

    γ(n) cos nω (4.7)

  • 4.1 ディジタルフィルタの特性 55

    と簡素化される。従って

    ∣∣H(ejω)∣∣ = N/2∑n=0

    γ(n) cos nω (4.8)

    θ(ω) = −N2

    ω

    となる。このようにインパルス応答の対称性を利用することにより、容易に振幅項と位相

    項を分離でき、FIRディジタルフィルタの線形位相を確認できる。

    4.1.2 線形位相フィルタの零点配置

    線形位相 FIRディジタルフィルタの零点は、インパルス応答が対称であるため特別な配置となる。すなわち

    H(z) = h(0) + h(1)z−1 + h(2)z−2 + · · · + h(1)z−(N−2) + h(0)z−(N−1)

    = z−(N−1)H(z−1) (4.9)

    なる関係があるから、H(z) = 0 の根が z0 であるとすると z−10 も根となることがわかる。またH(z)を実係数多項式であるとし、z0 が複素根であるとすると、その複素共役であるz

    0 も根となる。そこで以下に線形位相ディジタルフィルタの零点配置の特徴をまとめる。

    1)単位円上にない複素零点(zi = riejθi (ri ̸= 1))この場合、この複素共役零点

    z∗

    i = rie−jθi

    と、これらの逆数である z∗−1

    i =1ri

    ejθi 、z−1i =1ri

    e−jθi の4つの零点を1組として零点

    が形成される。このような zi と z−1i の関係を鏡像関係にあるという。

    2)実軸上の零点(zi = r′i (r′i ̸= 1) )

    z−1i =1r′i

    (4.10)

    の零点が対をなす。

    3)単位円上の零点(zi = ejβi)この複素共役零点 z

    i = e−jβi の零点が対をなす。単位円上の零点は、H(ejβi) = 0 と

    なり、阻止域を形成することになる。

    4)単位円上かつ実軸上の零点、すなわち z = 1 or − 1の零点は単独で存在しうる。FIRディジタルフィルタの伝達関数は、次のように、単位円上および実軸上の2つの零点と、単位円上にない4つの零点に因数分解できる。

    H(z) =N1∏

    i =1

    (z − riejθi)(z − rie−jθi)(z −1ri

    ejθi)(z − 1ri

    e−jθi) 

    ·N2∏i=1

    (z − ejβi)(z − e−jβi)N3∏i=1

    (z − r′

    i)(z −1r′i

    ) (4.11)

    典型的な低域通過特性を持つ線形位相 FIRディジタルフィルタの零点配置を図 4.2に示す。単位円上の零点が阻止域を形成し、鏡像零点が通過域を形成することになる。

  • 56 第 4章 ディジタルフィルタ

    -1 0 1 2

    -1

    1

    ri

    1ri

    θiPass B andStop B and

    R e

    Im

    図 4.2: 線形位相低域通過 FIRディジタルフィルタの零点配置

    4.2 FIRフィルタの設計

    4.2.1 窓関数法

     最も簡単なフィルタ設計法は、理想フィルタのインパルス応答を有限項で打ち切って

    近似する方法である。周波数応答が

    H(ω) ={

    1 |ω| ≤ ωc0 |ω| > ωc

    (4.12)

    を満たす(振幅は通過域で1,それ以外で0、位相はすべての帯域で0、これを零位相応

    答という)LTIシステムは理想ローパスフィルタと呼ばれる。この理想ローパスフィルタのインパルス応答は、逆離散時間フーリエ変換により

    h(n) =sin(ωcn)

    πnfor −∞ < n < ∞ (4.13)

    で与えられる。このインパルス応答は非因果的かつ無限長であり、このままではディジタ

    ルフィルタとしての実現は不可能である。そこで無限インパルス応答を有限項で打ち切

    り、その周波数特性を求めてみよう。スクリプト impideal.mは、ωc = 0.5π のローパスフィルタを実現する例を示す。実行結果が図 4.3である。

    インパルス応答長をこのように有限にしても、まだ因果性は満たされない。そこで、ス

    クリプト firtrunc.mにあるように、インパルス応答長が 2N + 1の場合、N サンプルの

  • 4.2 FIRフィルタの設計 57

    -20 -15 -10 -5 0 5 10 15 20-0.2

    -0.1

    0

    0.1

    0.2

    0.3

    0.4

    0.5

    n

    h(n)

    図 4.3: 理想フィルタのインパルス応答

    時間シフトを行う。図 4.4となる。

    % Script firtrunc.m

    % fc = cut-off frequency [Hz]

    N=20;

    fc=0.25;

    n=[-N:N];

    h=2*fc*sinc(2*fc*n);

    m=n+N;

    stem(m,h);

    xlabel(’n’);

    ylabel(’h(n)’);

    firtrunc.m実行後

    freqz(h)

    として得た周波数特性を図 4.5に示す。所望の低域通過特性となっていることが分かる。上の例ではN = 20としたが、N の値による特性の変化を図 4.6に示す。この図から分かるように、N が大きくなるにつれて遷移特性はより急峻になり、理想特性に近づくもの

    の、通過域、阻止域端での振動が発生することが分かる。これをリップルと呼ぶ。

    リップルは、不連続点に生じるフーリエ級数固有の現象である。従ってリップルは N

    の値には関係なく生じ、N の値が大きくなれば大きなリップルを生じる範囲が狭くなる効

    果を与えるだけである。このような現象をギブス現象と呼んでいる。この現象を抑えるた

    めに、理想インパルス応答に窓関数を乗算する窓関数法と呼ばれる方法が知られている。