ディジタル信号処理 第 12 回
マルチレート信号処理
マルチレート信号処理とは
•
マルチレート信号処理とは, 信号のサンプリ ング周波数の変換を伴う信号処理のこと.•
歴史的には, サンプリング周波数が異なるシ ステムの間でデータをやり取りの技法•
今日では, マルチレート信号処理は日常生活 に浸透している.•
たとえば, ハイレゾ音源をダウンロード形式 で購入した場合のサンプリング周波数は, FLAC 形式とDSD
形式では・・・FLAC: 44.1/48/88.2/96/176.4/192/384 kHz DSD: 2.8/5.6/11.2 MHz
手持ちの再生環境がファイルのサンプリング 周波数に対応していない場合には, サンプリ ング周波数の変換が必要になる.
今回の講義の教科書以外の典拠は 貴屋,マルチレート信号処理,昭晃堂, 1995.
•
マルチレート信号処理は,⊲
信号のサンプリング周波数を下げること
(ダウンサンプリングという)
⊲
信号のサンプリング周波数を上げること
(アップサンプリングという)
に関連した処理から成る.
•
ダウンサンプリングをする機器をダウンサン プラと呼ぶ. サンプリング周波数を1/D
に変 えるダウンサンプラを↓ D
という図記号で 表す.•
アップサンプリングをする機器をアップサン プラと呼ぶ. サンプリング周波数をU
倍に変 えるアップサンプラを↑ U
という図記号で 表す.•
ダウンサンプラとアップサンプラは, 単体で 使用すると, エイリアシングによる信号の歪 みを引き起こす. そこで,これらと適切なディ ジタルフィルタと組み合わせて使う必要があ る(後述).
•
ダウンサンプラとディジタルフィルタを組み 合わせたものをデシメータ(decimeter,
間 引き器)と呼ぶ.•
アップサンプラとディジタルフィルタを組み 合わせたものをインタポレータ(interpola-
tor,
補間器)と呼ぶ.•
サンプリング周波数の変換はアップサンプリ ング, ダウンサンプリングおよびディジタル フィルタによる処理を含むが, フィルタによ る処理はフィルタの係数と信号との乗算およ びその結果の加算なので, リアルタイム信号 処理では, これを低いサンプリング周波数の 信号に対して行う場合と高いサンプリング周 波数の信号に対して行なう場合で, CPUへの 負荷が変わる.•
具体的な構成は後で述べるが, 乗算を低いサ ンプリング周波数で実行するためによく知ら れたフィルタの構成法に, 直接型構成と呼ば れる構成法と,ポリフェーズ構成と呼ばれる, フィルタを適切に分割した構成がある.•
信号を処理する際に, 信号を周波数領域で複 数の成分に分解し, 成分ごとに異なる処理を おこなうことが望ましい場合がある. これを 実現するためのフィルタの構成をフィルタバ ンクと呼ぶ. フィルタバンクはマルチレート 信号処理の枠組の中で取り扱われることが通 例である.•
以下では, これらについて順番に説明する.アップサンプリング
•
信号x = (x[n])
n∈ZをU
倍にアップサンプリ ングすることを考える(U ∈ N ).
•
最も素朴な方法は,U
のn
倍(n ∈ Z )
の時刻 ではy[nU ] = x[n]
とし, それ以外の時刻ではy
の値を零にする, という方法である. 実際 に, この方法が用いられる.•
たとえば,x[0] = 4, x[1] = 8, x[2] = 2
とした とき, これを3
倍にアップサンプリングした 信号をy
とすると,y[0] = 4, y[1] = 0, y[2] = 0,
y[3] = 8, y[4] = 0, y[5] = 0,
y[6] = 2, y[7] = 0, y[8] = 0
となる.• x
がz
変換可能であると仮定し, これをU
倍 にアップサンプリングした信号をy
とする.y
もz
変換可能であると仮定し(収束領域は後
で調べる),x
とy
のz
変換をX
Z, Y
Zとする とY
Z(z) = P
n∈Z
x[n]z
−nU= X
z(z
U)
となる.アップサンプリングと収束領域
R
1(x) = lim sup
n→∞ np|x[n]|,
R
2(x) = lim sup
n→∞ np|x[−n]|とす ると,
x
の収束領域は{z ∈ C: R
1(x) < z <
R21(x)}であっ た.y
の収束領域は,y[n] = 0
の項が評価に寄与しないことに注意 すると,R
1(y) = lim sup
n→∞ np|y[n]|
= lim sup
k→∞ kUp|y[kU]|
= lim sup
k→∞ kUp|x[k]|
= (R
1(x))
U, R
2(y) = lim sup
n→∞ np|y[−n]|
= lim sup
k→∞ kUp|y[−kU
]| = lim sup
k→∞ kUp|x[−k]|
= (R
2(x))
U なの で,収束領域は
z
∈C: (R
1(x))
U< z < 1 (R
2(x))
U
である. これが空集合でないと仮定しなければならない.この条件は, 信号が因果的な場合には後半の条件はなくなるので問題にならない が,信号が因果的でない場合には制約的である.
• x
とy
の収束領域がともに単位円を含むもの と仮定し,z
にe
jωを代入すると,x
およびy
の周波数特性(X(ω)
とY (ω)
と書く)が得ら れる.Y
Z|
z=ejω= X
Z|
z=ejU ω だから,Y (ω)
はX(ω)
を横軸方向に1/U
に縮小したもので ある.• X(ω)
は周期2π
の周期関数だから,Y (ω)
は 周期2π/U
の周期関数である.•
アップサンプリングによって余分な周波数成 分が発生しないようにするためには, アップ サンプリング後に, 低域通過フィルタによって
[−π/U, π/U]
の範囲以外の周波数特性を零にする必要がある. アップサンプラにディジ タルフィルタとしてこの低域通過フィルタを 含めたものインタポレータと呼ぶ.
•
以下にU = 3
の場合の模式図を示す.−π 0 π
−π π
−π π
アップサンプリング
低域通過フィルタ
インタポレーション
ダウンサンプリング
•
信号x = (x[n])
n∈Zを1/D
倍にダウンサンプ リングすることを考える(U ∈ N ).
•
最も素朴な方法は,D
のn
倍(n ∈ Z )
の時刻 のx
値を使ってy[n] = x[nD]
とする方法で, 実際に, この方法が用いられるが, エイリア シングの発生を防ぐために, 信号x
に前処理 を施す必要がある.•
たとえば, 以下の信号x
を1/3
にダウンサン プリングすることを考える.x[0] x[1] x[2] x[3] x[4] x[5]
6 5 4 3 2 1
x
をエイリアシングを考慮せずに機械的に1/3
にダウンサンプリングした信号をx
Dとする と,x
D[0] = 6, x
D[1] = 3.
• x
がz
変換可能であると仮定し,これを1/D
倍にダウンサンプリングした信号をy
とする.y
もz
変換可能であると仮定し(収束領域は後
で調べる),x
とy
のz
変換をX
Z, Y
Zとする.•
天下り式であるが,W = e
−j2π/Dとおくと,Y
Z(z) = 1
D
D−1
X
l=0
X
Z(W
lz
1/D)
である.これを確認する.
k
∈Zに対し,k
がD
の整数倍であればW
k= 1
で あり,k
がD
の整数倍でないときには,W
k6= 1で, PD−1l=0
W
kl= (1−W
Dk)/(1−W
k) = 0である. X
Z(W
lz
1/D) =
Pn∈Z
x[n]W
−nlz
−n/D だから,和の順番を入れ換えてx[n]
に関する項をまとめると(収束領
域ではこれは可能),1 D
D−1
X
l=0
X
Z(W
lz
1/D) = 1 D
X
n∈Z
x[n]
D−1
X
l=0
W
−nl!
z
−n/Dとなる.
n
がD
の整数倍のときには括弧内の和はD,
それ以外の場合 は零だから,n = kD (k
∈Z)
という項だけ残すと,1
DX−1X (W
lz
1/D) =
Xx[kD]z
−k= Y (z). =
Xy[k]z
−k= Y (z).
ダウンサンプリングと収束領域 再び,
R
1(x) = lim sup
n→∞ np|x[n]|,
R
2(x) = lim sup
n→∞ np|x[−n]|
とする.
nD = k
とおくと,n = k/D
で,n
→ ∞ な らk
→ ∞ で あ り,R
1(y) = lim sup
n→∞ np|y[n]|
= lim sup
n→∞ np|x[nD]|
= lim sup
k→∞pn
|x[n]|1/D
= (R
1(x))
(1/D), R
2(y) = lim sup
n→∞ np|y[−n]|
= lim sup
n→∞ np|x[−nD]|
= lim sup
k→∞pk
|x[−k]|1/D
= (R
2(x))
(1/D)
なので,収束領域は (z
∈C: (R
1(x))
1/D< z < 1 (R
2(x))
1/D)
である. これが空集合でないと仮定しなければならない.この条件は, 信号が因果的な場合には後半の条件はなくなるので問題にならない が,信号が因果的でない場合には制約的である.
• x
とy
の収束領域がともに単位円を含むもの と仮定し,z
にe
jωを代入すると,x
およびy
の周波数特性(X(ω)
とY (ω)
と書く)が得ら れる.W
lz
1/D= e
jD1(ω−2πl)だから,Y
Z|
z=ejω= 1 D
D−1
X
l=0
X
Z(W
lz
1/D)
z=ejω= 1 D
D−1
X
l=0
X
ω − 2πl D
.
• Y (ω)
は,X(ω)
の高さを1/D
にして横にD
倍 に伸ばしたものを, 2πの0, 1, . . . , D − 1
倍横 にずらし,これらをすべて足し合わせたもの.• [−π/D, π/D]
の区間の外部でX(ω) = 0
なら,X(ω)
を横方向に原点を中心にしてD
倍拡大 した周波数特性が得られるが, それ以外の場 合には歪みが発生する. 次ページにD = 3
の 場合の例を示す.−π 0 π
−π 0 π
−π 0 π
−π 0 π l=0
l=1 l=2
加算
−π 0 π
ダウンサンプリングで問題が生じない場合(D=3)ダウンサンプリングで問題が生じる場合
0 0.5 1
-8 -6 -4 -2 0 2 4 6 8
0
-8 -6 -4 -2 0 2 4 6 8
0
-8 -6 -4 -2 0 2 4 6 8
0
-8 -6 -4 -2 0 2 4 6 8
⇓
加算0 0.5 1
-8 -6 -4 -2 0 2 4 6 8
•
ダウンサンプリングでエイリアシングによっ て波形が歪むことを防ぐためには, ダウンサ ンプリングに先立って,低域通過フィルタに よって信号x
の[−π/D, π/D]
以外の周波数成 分を零としておく必要がある.•
ダウンサンプラとこのような低域通過フィル タを組み合わせたものをデシメータと呼ぶ.•
教科書ではアップサンプラとインターポレー タ, ダウンサンプラとデシメータを区別して いない. 文献によって用語の定義が異なるの で注意せよ.•
教科書では134
ページでアナログ信号のイ メージによってダウンサンプラの性質を説明 しているが, 講義ではディジタル信号で話が 閉じるように説明を変更した.有理数比のサンプリング周波数変換
•
サンプリング周波数を有理数比で変更すると きには,デシメータとインターポレータを組 み合わせて用いる.アップ / ダウンサンプリングの性質
•
アップサンプラおよびダウンサンプラは線形 作用素である.•
以下では, 説明の便宜上, 信号を1/M
にダ ウンサンプリングする作用素をD
M, M
倍に アップサンプリングする作用素をU
Mと書く.• U
M1U
M2= U
M1M2= U
M2U
M1.
• D
M1D
M2= D
M1M2= D
M2D
M1.
• M
1とM
2が互いに疎のとき,R
M2/M1 によっ て有理数比のサンプリング周波数変換作用素 を表すことにすると,D
M1U
M2= R
M2/M1=
U
M2D
M1.
•
フィルタH(z)
は安定かつ線形時不変で, イン パルス応答h
を持つものとする.H(z)
が定 める作用素をH(z)
と書き, アップサンプラ やダウンサンプラとの直列接続をU
MH(z), D
MH(z)
のように書く. このとき, 次の式が 成り立つ:⊲ U
MH(z) = H(z
M)U
M.
⊲ H(z)D
M= D
MH(z
M).
U
MH(z) = H(z
M)U
Mの証明H(z)[x]
によって,
信号x
をフィルタH(z)
に通した結果得ら れる信号を表す. z
変換作用素をZ [·]
とし,
上記を省略せず に書けば, H(z)[x] = Z
−1[H(z)Z [x]]
である.
(H(z)[x]) [n] = P
k∈Z
h[k]x[n − k]
であり,
ゆえに(U
MH(z)[x]) [t] =
(P
k∈Z
h[k]x[n − k], t = nM, n ∈ Z
0,
それ以外である
.
一方,
(
H(z
M)
は線形時不変のフィルタで,
そのインパルス応答をh
M とすると,
h
M[t] =
( h[n], t = nM, n ∈ Z
0,
それ以外である
.
ゆえに,
H(z
M)U
M[x]
[t] = (P
k∈Z
h[k]x[n − k], t = nM, n ∈ Z
0,
それ以外となり
,
よってU
MH(z) = H(z
M)U
Mである.
H(z)D
M= D
MH(z
M)
y
1= (H(z)D
M)[§]
とすると, y
1[n] = P
l∈Z
h[l]x[(n −l)D].
一 方,
フィルタH(z
D)
のインパルス応答は, n = kD
のときh[k],
それ以外のとき零となるから(k ∈ Z ), x
1= H(z
D)[x]
とする と, x
1[m] = P
l∈Z
h[l]x[m − lD].
よって, y
2= D
MH(z
M)[x]
とすると
, y
2[n] = x
1[nD] = P
l∈Z
h[l]x[nD − lD]
となり,
こ れらは一致する.
要注意 !
U
MH(z) = H(z
M)U
M, H(z)D
M= D
MH(z
M)
× U
MH(z) = H(z)U
M, H(z)D
M= D
MH(z)
•
フィルタH(z)
とアップサンプラおよびダウ ンサンプラが可換にならないのは, アップサ ンプラおよびダウンサンプラが時不変作用素 ではないから.• U
MH(z) = H(z
M)U
MおよびH(z)D
M= D
MH(z
という等式は,以下で述べるポリフェーズフィ ルタを構成する際に利用する.直接型構成
•
デシメータでは信号とフィルタの係数との乗 算をダウンサンプラの後に, インターポレー タでは信号とフィルタの係数との乗算をアッ プサンプラの前にすることで, 信号に対する 演算の内容を変えずに乗算を低いサンプリン グレートで実行することができる(教科書図
12.7,
図12.8).
これらを直接型構成と呼ぶ.ポリフェーズフィルタ
•
リアルタイム信号処理において,乗算を低い サンプリング周波数で実行するために,フィ ルタをポリフェーズ表現と呼ばれる形に分解 表現することがある. このような構成をポリ フェーズ構成,対応するフィルタをポリフェー ズフィルタと呼ぶ. 以下ではこれらについて 述べる.•
以下の議論はフィルタの次数には依存しない ので, フィルタが無限次元で,l
1に属する信 号との畳み込みで表現されている場合を考え る. フィルタの伝達関数をH(z)
とすると,H(z) = X
n∈Z
h[n]z
−n である.• M ∈ N , M ≥ 2
とし, フィルタのインパル ス応答をM
ごとに使う次のような2
種類の フィルタを考える.E
k(z) = X
n∈Z
h[Mn + k]z
−n, R
k(z) = X
n∈Z
h[M (n + 1) − k − 1]z
−n,
k = 0, . . . , M − 1
•
フィルタH(z)
のタイプI
のポリフェーズ表 現とは,次のような表現である.H(z) =
M−1
X
k=0
E
k(z
M)z
−k• E
k(z)
あるいはE
k(z
M)
を,H(z)
のポリフェー ズフィルタと呼び,M
を分割数と呼ぶ.•
フィルタH(z)
のタイプII
のポリフェーズ表 現とは,次のような表現である.H(z) =
M−1
X
k=0