「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii...

39

Upload: others

Post on 19-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)
Page 2: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

「線形離散時間システム入門」

サンプルページ

この本の定価・判型などは,以下の URL からご覧いただけます.

http://www.morikita.co.jp/books/mid/091921

※このサンプルページの内容は,初版 1 刷発行当時のものです.

Page 3: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)
Page 4: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

i

まえがき

物理現象はある値によって特徴づけられる.現象の特徴を示す値を時間に沿って表

現したものが信号である.たとえば,電気回路の電流や電圧は信号である.また,電

波,音声,気温,株価も全て信号である.信号を解析することで現象の性質を調べる

ことができる.一方,ある信号を入力したとき,ある信号を出力する装置あるいは仕

組みを一般化したものをシステムという.信号とシステムは,理工系分野のみならず,

経済,医学など,さまざまな分野で現れる.信号とシステムに関する知識は,現象を

理解しシステムを開発するための基礎となっている.

実世界の物理現象の特徴量の多くは時間に関し連続な連続時間信号で表現される.

たとえば,ある地点の気温は時間に関し連続である.一方,日々の平均気温を並べた

ものは,時間に関し連続ではなく離散点で値を持つ離散時間信号となる.集積回路技

術の発展とともに,さまざまな機器がディジタル化され小型化・高機能化されている.

これらの機器の心臓部であるマイクロプロセッサやディジタル信号処理プロセッサな

どのディジタル回路は一定周期ごとに動作することから,ディジタル回路の解析・設

計には離散時間信号が使用される.そのため離散時間信号と離散時間システムを学ぶ

ことは,理工系の情報通信,計測制御,信号処理などに関連する電気・電子・情報分

野の必須となっている.

本書は,離散時間信号と離散時間システムの基礎を学ぶための教科書である.ある

特定の分野に特化することなく,電気・電子・情報分野において重要となるであろう

内容を記述している.まず,離散時間信号の解析に必要となる知識と離散時間システ

ムの表現を導入し,離散時間システムが持つ性質を調べる.つぎに,連続時間システ

ムと離散時間システムの関係について述べ,離散時間システムを制御する方法と離散

時間システムの内部を観測する方法を紹介する.さらに,ランダムな信号を入力とす

るシステムを考え,信号の推定法を学ぶ.

本書は大学・高等専門学校の半期の講義の教科書を想定し,できる限り予備知識な

しで内容が理解できるよう丁寧に書かれている.基礎となる理論,理論を理解するた

めの例題,理解を深めるための演習問題,より深い内容を扱う章末問題,理論を実践

Page 5: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

ii まえがき

するためのプログラミング演習を,1コマ (90分程度)の講義で 1章を学べるよう配

置している.本書は,序論の第 1章を含め全 16章で構成されている.複素数,正弦

波,行列論,確率論などの基礎的な数学的知識を記述するとともに,理論を直観的に

理解できるよう工夫しているので,自習も可能である.なお,授業内容に応じ,各章

を取捨選択してもよい.

プログラミング演習のためのアプリケーションとして,ライセンスにしたがえば

無料で利用できる Scilab を採用している.Scilab はフランス国立研究機関 INRIA

(Institut nationale de Recherche en Informatique et en Automatique) と ENPC

(Ecole nationale des ponts et chaussees) が開発した数値計算ソフトウェアであり,

比較的簡単にプログラミングできる.Scilab の基本的な使用法を付録にまとめている

ので,パーソナルコンピュータを持っていれば本書のプログラミング演習を行うこと

ができる.プログラミング演習を行い演習結果を確認することで,理論に対するより

深い理解を得ることができる.各章のプログラミングに関しては Scilab と並行し高機

能商用数値計算ソフトウェアMATLAB R© の説明も行っているので,MATLAB が利

用できる場合はMATLAB を利用すればよい.

本書を執筆するにあたり多くの方々のご協力をいただいた.特に,学生の頃よりご

指導いただいている同志社大学教授 (京都大学名誉教授) 片山徹先生,京都大学教授

酒井英昭先生の講義を非常に参考にさせていただいた.また,執筆のために参考にし

た書籍の著者の方々に深く感謝する.草稿の校正を手伝っていただいた広島大学大学

院工学研究科修了生の石井隆章君と山口健一君に心より感謝する.本書執筆の機会を

与え出版にあたりご尽力いただいた森北出版の滝 貴紀氏に心からの謝意を表する.

本書の全ての図は,LATEX2ε ,Scilab,Tgif のフリーソフトウェアで作成している.

これら有用なフリーソフトウェアを開発し普及されている方々に深くお礼を申し上げ

る.

2007年 11月

大野修一  

Page 6: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

iii

目  次

第 1章 序 論 1

1.1 信号とシステム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 本書の目的と構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

第 2章 Z 変換と逆 Z 変換 7

2.1 Z 変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Z 変換の性質 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3 逆 Z 変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

章末問題 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

プログラミング: 多項式 . . . . . . . . . . . . . . . . . . . . . . . . 19

プログラミング演習 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 22

第 3章 線形離散時間システムの時間応答と伝達関数 23

3.1 線形離散時間システム . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2 インパルス応答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 伝達関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4 ブロック線図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

章末問題 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

プログラミング: システムの定義と応答 . . . . . . . . . . . . . . . . 34

プログラミング演習 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 37

第 4章 正弦波と周波数応答 38

4.1 正弦波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2 正弦波に対する応答 . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3 振幅特性と位相特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

章末問題 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

プログラミング: 周波数応答 . . . . . . . . . . . . . . . . . . . . . . 45

プログラミング演習 4 . . . . . . . . . . . . . . . . . . . . . . . . . 46

Page 7: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

iv 目  次

第 5章 線形離散時間システムの状態空間表現 47

5.1 状態と状態変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2 状態空間表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.3 可到達正準形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.4 等価表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.5 実 現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.6 状態空間表現と伝達関数 . . . . . . . . . . . . . . . . . . . . . . . . 54

5.7 可観測正準形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

章末問題 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

プログラミング: 状態空間表現 . . . . . . . . . . . . . . . . . . . . 60

プログラミング演習 5 . . . . . . . . . . . . . . . . . . . . . . . . . 62

第 6章 線形離散時間システムの安定性 63

6.1 有界入力有界出力安定 . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2 漸近安定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.3 A の固有値と伝達関数の極の関係 . . . . . . . . . . . . . . . . . . . 68

6.4 安定性判別 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

章末問題 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

プログラミング: 安定性 . . . . . . . . . . . . . . . . . . . . . . . . 75

プログラミング演習 6 . . . . . . . . . . . . . . . . . . . . . . . . . 76

第 7章 可到達性と可観測性 77

7.1 可到達性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.2 可観測性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.3 双対性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

章末問題 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

プログラミング: 可到達性と可観測性 . . . . . . . . . . . . . . . . . 87

プログラミング演習 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 88

第 8章 状態フィードバックによる安定化 89

8.1 状態フィードバック . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

8.2 安定化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.3 可到達正準形への変換 . . . . . . . . . . . . . . . . . . . . . . . . . . 95

章末問題 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Page 8: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

目  次 v

プログラミング: 極配置 . . . . . . . . . . . . . . . . . . . . . . . . 98

プログラミング演習 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 99

第 9章 最適レギュレータ 100

9.1 信号のエネルギーと評価関数 . . . . . . . . . . . . . . . . . . . . . . 100

9.2 対称行列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

9.3 正定値行列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

9.4 ノルム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

9.5 2次評価関数の最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . 106

章末問題 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

プログラミング: リカッチ方程式 . . . . . . . . . . . . . . . . . . . 110

プログラミング演習 9 . . . . . . . . . . . . . . . . . . . . . . . . . . 111

第 10章連続時間システムと等価離散時間システムの関係 112

10.1 等価離散時間システム . . . . . . . . . . . . . . . . . . . . . . . . . . 112

10.2 伝達関数の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

10.3 状態空間表現の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

10.4 システムの極の関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

10.5 可到達性・可観測性の関係 . . . . . . . . . . . . . . . . . . . . . . . 122

章末問題 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

プログラミング: 等価離散時間システム . . . . . . . . . . . . . . . . 123

プログラミング演習 10 . . . . . . . . . . . . . . . . . . . . . . . . . 124

第 11章信号のスペクトルとサンプリング定理 125

11.1 サンプリング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

11.2 デルタ関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

11.3 離散時間信号の連続時間表現 . . . . . . . . . . . . . . . . . . . . . . 129

11.4 連続時間信号と離散時間信号のスペクトル . . . . . . . . . . . . . . . 131

章末問題 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

プログラミング: スペクトル . . . . . . . . . . . . . . . . . . . . . . 140

プログラミング演習 11 . . . . . . . . . . . . . . . . . . . . . . . . . 141

第 12章オブザーバによる状態推定 142

12.1 状態推定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

12.2 オブザーバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Page 9: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

vi 目  次

12.3 オブザーバの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

12.4 オブザーバを用いたレギュレータ . . . . . . . . . . . . . . . . . . . . 151

章末問題 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

プログラミング演習 12 . . . . . . . . . . . . . . . . . . . . . . . . . 154

第 13章確率論の基礎 155

13.1 事象と確率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

13.2 確率分布関数と確率密度関数 . . . . . . . . . . . . . . . . . . . . . . 157

13.3 ガウス (正規)分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

13.4 確率変数の関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

13.5 複数の確率変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

章末問題 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

プログラミング: 乱数の発生 . . . . . . . . . . . . . . . . . . . . . . 166

プログラミング演習 13 . . . . . . . . . . . . . . . . . . . . . . . . . 167

第 14章定常過程と線形確率システム 168

14.1 確率過程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

14.2 定常過程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

14.3 定常過程に対するシステムの出力 . . . . . . . . . . . . . . . . . . . . 172

14.4 パワースペクトル密度 . . . . . . . . . . . . . . . . . . . . . . . . . . 173

14.5 線形確率システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

章末問題 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

プログラミング: リヤプノフ方程式 . . . . . . . . . . . . . . . . . . 179

プログラミング演習 14 . . . . . . . . . . . . . . . . . . . . . . . . . 180

第 15章 LS推定とMMSE推定 181

15.1 推 定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

15.2 LS 推定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

15.3 MMSE推定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

章末問題 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

プログラミング演習 15 . . . . . . . . . . . . . . . . . . . . . . . . . 195

第 16章カルマンフィルタ 196

16.1 MMSE推定の性質 . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

16.2 予測,瀘波,平滑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

Page 10: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

目  次 vii

16.3 イノベーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

16.4 状態のMMSE推定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

16.5 スカラーカルマンフィルタ . . . . . . . . . . . . . . . . . . . . . . . 203

章末問題 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

プログラミング演習 16 . . . . . . . . . . . . . . . . . . . . . . . . . 209

付 録A 行 列 210

A.1 行列の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

A.2 行列の基本操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

A.3 転置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

A.4 線形独立 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

A.5 ランク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

A.6 行列式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

A.7 逆行列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

A.8 固有値と固有ベクトル . . . . . . . . . . . . . . . . . . . . . . . . . . 214

A.9 対角化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

A.10行列の関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

A.11ケーリーハミルトンの定理 . . . . . . . . . . . . . . . . . . . . . . . 215

A.12線形方程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

付 録 B Scilab 216

B.1 Scilab のインストール . . . . . . . . . . . . . . . . . . . . . . . . . 216

B.2 Scilab の使い方の基礎 . . . . . . . . . . . . . . . . . . . . . . . . . 216

B.3 プログラミングの基礎 . . . . . . . . . . . . . . . . . . . . . . . . . . 219

B.4 グラフィックス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

B.5 プログラミング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

演習問題 �解答 � 234

参考文献 249

索  引 251

Page 11: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)
Page 12: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

1

第1章序 論

本章では,これから学ぶ信号とシステムについて述べるとともに,本書の目的と利

用法を説明する.

��本章のポイント��

信号/システム

1.1 � 信号とシステム

電気回路に電圧をかけると電流が回路に流れる.電圧を変化させると電流も変化す

る.電圧や電流のように時間変化する値を表現したものを信号 (signal)という.電気

回路の電気信号だけでなく,電波,音声,気温,株価にいたるまで,時間とともに変

化する値は全て信号とみなすことができる.

図 1.1 に正弦波信号を示している.ただし,横軸は時間とする.縦軸は信号の値で

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0−5

−4

−3

−2

−1

0

1

2

3

4

5

Time

Am

plitu

de

図 1.1 連続時間信号

Page 13: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

2 第 1章 序 論

あり,たとえば,電圧の場合単位はボルトとなる.��

��注 1.1 本書では,さまざまな信号を統一的に扱うため,信号の値の単位を特定しないことが

ある. �

図 1.1 の正弦波のように時間に関し連続な信号を連続時間信号 (continuous-time

signal) という.連続時間信号は定義された時間内であればどの時間においても値を

持つ.

連続時間信号 y(t) を考えよう.k を正整数とし,時間 t = kTs のおける y(t)の値

を並べると y(0),y(Ts),y(2Ts),. . .の数値の列,数列が得られる.ここで,

yk = y(kTs) (1.1)

と定義すると,数列は y0,y1,y2,. . .と書ける.ykのインデックス kは時間を表現して

いる.ykのように,ある時間においてのみ値をとる信号を離散時間信号 (discrete-time

signal)とよぶ.

連続時間信号から離散時間信号を生成することを,サンプリング (標本化),あるい

は離散化とよぶ.式 (1.1)では一定時間 Tsごとに離散時間信号を作成している.この

Ts をサンプリング周期あるいはサンプリング時間という.図 1.2 にサンプリングと,

連続時間信号と離散時間信号の関係を示している.ここで図の矢印は一定時間ごとに

サンプリングすることを意味している.

�� �y(t) yk = y(kTs)

連続時間 離散時間

図 1.2 サンプリング

図 1.3は,図 1.1の連続時間信号を Ts = 0.2 でサンプリングして得られた離散時間

信号を示している.図からわかるように離散時間信号はもとの連続時間信号のサンプ

リング点の情報しか持っていない.つまり,サンプリングするとサンプリング点間の

情報が失われる.

集積回路技術の発展とともに,さまざまな機器がディジタル化され小型化・高機能

化されている.これらの機器の心臓部であるマイクロプロセッサやディジタル信号処

理プロセッサなどのディジタル回路は一定周期ごとに動作することから,ディジタル

回路の解析・設計には離散時間点で信号を表現する離散時間信号が都合がよい.��

��注 1.2 実際のディジタル回路では,回路は全ての時間でなんらかの値を持つ.したがって,物

理的にはディジタル回路内の信号は連続時間信号である. �

Page 14: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

1.1 信号とシステム 3

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0−5

−4

−3

−2

−1

0

1

2

3

4

5

Time

Am

plitu

de

図 1.3 離散時間信号

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0−5

−4

−3

−2

−1

0

1

2

3

4

5

Time

Am

plitu

de

図 1.4 ディジタル離散時間信号

ディジタル回路は 2進数で表現される有限個の値 (あるいは状態)しかとることがで

きない.そこで,離散値,つまりとびとびの値しかとることができない信号をディジ

タル信号,あらゆる値をとることができる信号をアナログ信号と定義しよう.

��

��注 1.3 本書とは異なるアナログ信号とディジタル信号の定義が用いられることもある. �

演習 1.1 2進数について調べなさい. �

図 1.3 のアナログ離散時間信号の値を四捨五入することを考える.四捨五入して得

られた信号を図 1.4 に図示している.図 1.4 の信号は整数値しかとることができない

ので,ディジタル信号である.このようにアナログ信号をディジタル信号に変換する

ことを量子化とよぶ.連続値を離散値に変換するため量子化すると誤差 (量子化誤差)

が発生する.たとえば,四捨五入により量子化を行った場合,もとの信号の小数点以

下の値が誤差となる.

サンプリングするとサンプル間の情報を失い,量子化すると値の情報の一部を失う.

これらがディジタル化の主な欠点である.一方,ディジタル化の利点として以下が挙

げられる.

1. 処理をプログラムとして記述できるため,処理の変更が容易

2. 回路のばらつきの影響が小さく,経年変化,温度変化に強い

3. 回路を集積化することで小型化が可能

4. さまざまな処理の統合が可能

サンプリング周期を短くし値を表現するためのビット数を多くすると,処理データ量

は増加するがディジタル化の欠点が克服される.したがって,集積回路技術の発展に

Page 15: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

4 第 1章 序 論

ともないディジタル化の欠点は小さくなる.そのため多くの機器がアナログからディ

ジタルに移行している.

演習 1.2 映像機器などのアナログ機器からディジタル機器への変遷について調べなさい. �

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0−5

−4

−3

−2

−1

0

1

2

3

4

5

Time

Am

plitu

de

図 1.5 ディジタル連続時間信号

表 1.1 信号の分類

時間 連続 離散

値 アナログ ディジタル

本書での信号の分類を表 1.1 にまとめている.連続時間信号と離散時間信号は時間

に関する性質が異なり,アナログ信号とディジタル信号は値の性質が異なる.この分

類を用いると信号は 4種類の信号に分類される.たとえば,図 1.5の信号はディジタ

ル連続時間信号である.

ディジタル回路の値は,離散値をとるディジタル信号でなければならない.しかし,

離散値を数学的に扱うことは容易でないことから多くの場合アナログ離散時間信号が

ディジタル回路の解析・設計に使用される.本書もディジタル離散時間信号は直接扱

わず,アナログ離散時間信号を主に使用する.以下,特に明記しない場合,離散時間

信号はアナログ離散時間信号とする.

信号を発生する仕組み,回路,あるいは装置などを総称しシステムとよぶ.システ

ムはあらゆる分野に現れる.たとえば,携帯電話はデータを通信するシステムであり,

自動車やロボットもシステムとみなすことができる.

通常,システムには入力と出力がある (図 1.6).システムは入力に応じ出力を生成

する.システムを調べることで,どのような入力に対しどのような出力が生成される

のか知ることができる.また,システムを学ぶことで所望の性質を持つシステムを設

Page 16: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

1.2 本書の目的と構成 5

� システム S �入力 出力

図 1.6 システム

計することもできる.

システムの入出力が連続時間信号であるとき,システムを連続時間システムとよぶ.

一方,システムの入出力が離散時間信号であるとき,システムを離散時間システムと

いう.本書では,ディジタル機器の利用を前提にしているため,入出力が離散時間信

号である離散時間システムに焦点をあてる.なお,断りのない限り信号とシステムの

係数は実数値をとるものとする.

1.2 � 本書の目的と構成

それぞれの専門分野に現れるシステムを個別に考えるのではなく,システムをモデ

ル化しシステムとしての共通の性質や特徴を学ぶことで,情報通信,計測制御,信号

処理などに関連する電気・電子・情報分野の基礎的でかつ適応可能な知識の修得を目

指す.

まず,第 2章で離散時間システムを学ぶための基礎知識として,Z 変換とその逆変換である逆Z 変換について解説する.システムのなかで特に重要となる線形システムを第 3章で導入し,入力と出力の関係を第 3章と第 4章で調べる.つぎに,システム

の内部を表現する状態空間表現を第 5章で学び,状態空間表現により導入される線形

離散時間システムの基本的性質を第 6章と第 7章で紹介する.

第 8章と第 9章では,フィードバック制御による線形離散時間システムの安定化に

ついて学ぶ.連続時間システムと離散時間システムが混在するシステムを解析するた

め,第 10章で連続時間システムと等価離散時間システムの関係を調べ,第 11章で周

波数領域における信号の情報であるスペクトルとサンプリング周期の設定方法につい

て述べる.

第 12章以降は,信号の予測と推定を扱う.まず,第 12章でシステムの入出力から

システムの内部状態を求める方法を紹介する.つぎに,第 13章と第 14章で確率的信

号を扱うための知識を導入した後,第 15章で推定の基礎を学び,第 16章でカルマン

フィルタを導入する.

本書は,できるかぎり予備知識なしで内容を理解できるよう記述している.また,数

学的な証明は必要最低限に留めてある.理論を理解するための例題,理解を深めるた

Page 17: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

6 第 1章 序 論

めの演習問題,より深い内容を扱う章末問題,さらに理論を実践するためのプログラ

ミング演習を各章に配置しているので,積極的に取り組んでいただきたい.

プログラミング演習は無料で利用できる Scilab [1]を採用している.Scilab の基本

的な使用法は付録にまとめてある.Scilab の詳細については開発コミュニティ Web

サイト [1]を参照していただきたい.各章のプログラミングに関しては Scilab と並行

し商用数値計算ソフトウェア MATLAB の説明も行っているので,MATLAB を利用

できる場合はMATLAB を利用すればよい.なお,MATLAB の基本的な使用法は,

MATLAB に関する書籍,あるいは販売元の Webサイトを参照いただきたい.

Page 18: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)
Page 19: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

142

第12章オブザーバによる状態推定

実システムでは状態変数の値が全て利用できるとは限らない.システムが可観測で

ありノイズや外乱がなければ,入出力から状態の値を求めることができる.しかし,ノ

イズや外乱がある場合,状態の正確な値を得ることができなくなることがある.本章

では,ノイズや外乱があっても状態の値が推定できる仕組みを学ぶ.

��本章のポイント��

オブザーバ/最小次元オブザーバ/オブザーバを用いたレギュレータ

12.1 � 状態推定

状態変数はシステムの内部状態を示す変数である.ある時間において状態変数の値

がわかるとシステムの挙動を特定することができ,状態変数を用いたさまざまな処理,

たとえば,第 8章で学んだ状態フィードバック,が可能になる.しかし,実システム

において全ての状態変数が測定可能とは限らない.そのため,何らかの方法で状態変

数を推定する必要がある.

システムの入力と出力は利用可能とする.また,システム (A, b, c)は既知と仮定す

る.システムの入力値と出力値から状態を推定する仕組み (あるいは装置)をオブザー

バ (observer)とよぶ (図 12.1).状態 xk の推定値を xk とし,推定誤差を

ek = xk − xk (12.1)

と定義する.当然,誤差を小さくする推定値を求めたい.

7.2 節で述べたように,(c, A)可観測でありノイズや外乱がなければ,入出力から

状態の値を完全に復元することができる.

Page 20: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

12.2 オブザーバ 143

� システム �

� �オブザーバ

状態推定値 xk

uk yk

図 12.1 オブザーバ

(c, A)可観測と仮定する.システムの入出力から式 (7.10)より状態の初期値 x0 が

求まったとする.そこで x0 = x0 とおき

xk+1 = Axk + buk (12.2)

により状態の値を求めたとしよう.状態方程式は xk+1 = Axk + buk であるので,

誤差はek+1 = Aek (12.3)

となる.

誤差やノイズなどの何らかの要因である時間 k0において xk0 �= xk0,つまりek0 �= 0

となったとしよう.このとき,式 (12.3) よりA が安定でなければ誤差 ek が増大し

てゆく.実システムでは外乱やノイズは必ず存在するため,A が安定でなければ,式

(12.2)で状態を推定できない.A が不安定であっても推定誤差を減少できる仕組みが

次節で述べるオブザーバである.��

��注 12.1 A が安定であっても,Aの固有値が単位円周上に近ければ誤差の影響が長時間続く

ことになる. �

12.2 � オブザーバ

推定誤差が大きければ,推定誤差を小さくなるよう調整できれば問題はない.しか

し,誤差の式 ek = xk − xk からわかるように,誤差を求めるには未知の xk が必要

となる.そのため,推定誤差の値を利用することはできない.そこで,状態推定値か

ら求めたシステムの出力の予測値 yk = cxk と実際のシステムの出力 yk の差,すな

わち,出力誤差

εk = yk − cxk = c(xk − xk) = cek

を利用することを考える.

出力誤差が小さくなるよう状態推定値を求めれば,状態の推定誤差が小さくなるこ

Page 21: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

144 第 12章 オブザーバによる状態推定

とが期待できる.そこで,式 (12.2) に εk をつぎのようにフィードバックしてみよう.

xk+1 = Axk + buk + kεk (12.4)

このとき,状態推定誤差は

ek+1 = xk+1 − xk+1 = Axk + buk − Axk − buk − k(yk − cxk)

= (A − kc)xk − (A − kc)xk

からek+1 = (A − kc)ek (12.5)

となる.したがって,k を調節することでA − kc を安定行列にできれば

limk→∞

ek = 0 (12.6)

とすることができる.ここでつぎの定理がある.

定理 12.1 A − kc の固有値を任意に設定できる k が存在する必要十分条件は,

(c, A) 可観測である.

証明: A− kcを転置するとAT − cT kT となる.A− kcとAT − cT kT の固有値

は等しいので,AT −cT kT の固有値を任意に設定できる kT が存在すれば,A−kc

の固有値を任意に設定できる k が存在する.

定理 8.1のA − bf において

A → AT , b → cT , f → kT

とおくと,AT − cT kT の固有値を任意に設定できる kT が存在する必要十分条件

は (AT , cT )可到達である.一方,例題 7.3 でみたように,(AT , cT )可到達であれば

(c, A) 可観測であり,その逆も成り立つ.以上より,A − kc の固有値を任意に設定

できる k が存在する必要十分条件が (c, A) 可観測であることがわかる.

この定理から,(c, A) 可観測であればA − kcを安定にする k が存在し,状態推

定誤差を漸近的に 0 にできることがわかる.オブザーバの構成を図 12.2の下半分に

示している.オブザーバは自身の出力 yk とシステムの出力を比較しその誤差 εk を用

いて状態の推定値を修正していると考えることができる.

例 12.1 システム

A =

[0 1

61 − 1

6

], b =

[1

0

]c =

[1 0

]を考える.状態の初期値 x0 = [ 3 −1 ]T とする.

Page 22: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

12.3 オブザーバの設計 145

� +b � �z−1I �

�A

�+ c �uk xk yk

xk yk� b � �z−1I �

�A

�c

��� +εk

−−k

�+

図 12.2 オブザーバの構成

このシステムに対し極が ±1/4 のオブザーバを設計した.オブザーバの初期値を x0 =

[ 0 0 ]T とし,状態変数とオブザーバによる推定値を図 12.3に示している.時間 5 以降,オ

ブザーバによる推定値は真値にほぼ一致していることがわかる. �

0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

Time

Am

plitu

de

x1x2x1x2

図 12.3 例 12.1:状態と状態推定値

12.3 � オブザーバの設計

A − kc の安定化は,第 8章で述べたレギュレータのための極配置と同様に行うこ

とができる.A − kc の固有値を µ1, µ2, . . . , µn に設定するとしn∏

i=1

(z − µi) = zn + αnzn−1 + · · · + α1 := α[z] (12.7)

Page 23: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

146 第 12章 オブザーバによる状態推定

を定義する.(A, b, c)が可観測正準形で表現されているとすると

AT :=

0 1 0...

. . .. . . 0

0 · · · 0 1

−a1 −a2 · · · −an

, cT =

0...

0

1

となる.オブザーバゲインを

k =[

k1 k2 · · · kn

]Tとし,(A − kc)T を考えると

AT − cT kT :=

0 1 0...

. . .. . . 0

0 · · · 0 1

−(a1 + k1) −(a2 + k2) · · · −(an + kn)

を得る.A − kcと (A − kc)T の特性方程式は等しく,いずれも

zn + (an + kn)zn−1 + · · · + (a1 + k1) (12.8)

となる.したがって

ki = αi − ai, for i ∈ [1, n] (12.9)

とすれば,A − kcの極を所望の値に設定することができる.

例 12.2

A =

[0 −1

1 −2

], c =

[0 1

]とする.A− kc の固有値を ±1/2に配置する k を求めてみよう.

システムの特性方程式は z2+2z+1である.一方,極配置後の特性方程式は (z+1/2)(z−1/2) =

z2 − 1/4である.システムは可観測正準形であるので,式 (12.9)より

k1 = −1

4− 1 = −5

4, k2 = 0− 2 = −2

を得る. �

システムが可観測正準形でない場合の極配置は,レギュレータの設計と同様,つぎ

の 2つの方法がある.

1. 特性多項式より直接求める

2. 可観測正準形に変換した後,上で述べた方法を適用する

特性多項式より直接求める方法はつぎの方程式を満たすk を係数比較で直接求める.

|zI − A + kc| = α[z]

Page 24: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

12.3 オブザーバの設計 147

■例題 12.1

A =

[1 1

0 −2

], c =

[1 0

]において,A − kc の固有値を ±1/2に配置する k を直接法で求めなさい.

解答: kT = [ k1 k2 ] とおくと

A − kc =

[1 − k1 1

−k2 −2

]の特性多項式は z2 + (1 + k1)z + 2k1 − 2 + k2 となる.一方,指定された閉ループシ

ステムの特性方程式は (z + 1/2)(z − 1/2) = z2 − 1/4 であるので,係数比較すると

1 + k1 = 0

2k1 − 2 + k2 = −1

4

と得る.これを解くと k = [ −1 15/4 ]T となる.

演習 12.1

A =

[1 1

1 −2

], c =

[1 2

]において,A− kc の固有値を ±1/2に配置する k を求めなさい. �

12.3.1 可観測正準形への変換

8.3 節では,状態空間表現の係数 (A, b, c)を持つシステムを可到達正準形へ変換す

る方法を述べた.ここでは,システムを可観測正準形へ変換するため,図 12.4 の手順

を考える.

(A, b, c) �双対システム

(AT , cT , bT )

�可観測正準形 �

双対システム可到達正準形

図 12.4

まず,係数 (A, b, c)を持つシステムの双対システムを考え,双対システムを可到達

正準形に変換する.双対システムの係数は (AT , cT , bT )なので,双対システムの可

到達性行列は [ cT AT cT (AT )n−1cT ] = UTo となる.したがって,双対システ

Page 25: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

196

第16章カルマンフィルタ

第 12 章で説明したように,オブザーバを用いると状態の推定が可能である.オブ

ザーバによる状態推定値の性質はオブザーバの極配置に依存する.しかし,その極配置

の明確な指針はない.一方,第 15章で学んだようにノイズの分散などの情報が利用で

きる場合,誤差分散を最小にするMMSE推定値を求めることができる.しかし,シス

テムの入出力から状態のMMSE推定値を直接求めるには大量の計算が必要であり,状

態推定にMMSE推定を利用することは困難であった.1960年代 カルマン (Kalman)

が低計算量で逐次的にMMSE推定値を求めるカルマンフィルタを開発したことで,現

在,さまざま分野でカルマンフィルタによるMMSE推定が行われている.本章では,

カルマンフィルタを導出し,カルマンフィルタの原理を学ぶ.

��本章のポイント��

MMSE推定/予測/カルマンフィルタ

16.1 � MMSE推定の性質

y を観測値,θ を推定したいパラメータとする.θ と v が結合ガウス分布のとき,

MMSE 推定値は 式 (15.46)の LMMSE 推定値と一致する.一般には,MMSE 推定

値 θ はθ = E {θ|y} (16.1)

となることが知られている.ただし,E {θ|y} は,yが与えられたときの θの確率密

度関数を p(θ|y)とすると

E {θ|y} =

∫θp(θ|y)dθ (16.2)

Page 26: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

16.1 MMSE 推定の性質 197

で定義される条件付き期待値である.

性質 16.1 θの平均を 0,z1 と z2 の平均を 0とする.θ, z1, z2 が結合ガウス分布に

したがい,z1 と z2 が独立であれば

θ = E {θ|z1, z2} = E {θ|z1} + E {θ|z2} (16.3)

が成立する.

証明: z = [z1 z2]T とおき

Czθ = E{zθT} =

[Cz1θ

Cz2θ

]とする.z1 と z2 の分散を σ2

z1 と σ2z2 とすると,z1 と z2 が独立であるので,zの共

分散行列は

Czz = E{zzT} =

[σ2

z1 0

0 σ2z2

]となる.θ, z1, z2 が結合ガウス分布にしたがうので,MMSE 推定値は LMMSE 推定

値と一致する.また,Czz が対角行列なので

θ = E {θ|z1, z2} = CTzθC−1

zz z =CT

z1θ

σ2z1

z1 +CT

z2θ

σ2z2

z2

を得る.式 (15.46)より上式の右辺第 1項は E{θ|z1} であり第 2項は E{θ|z2} である.以上より式 (16.3) が示せた.

性質 16.1を図 16.1 に幾何学的に示している.15.3.2項でみたように LMMSE推

定値は z1 と z2 の張る平面に θ を (期待値の意味で) 直交射影したものとみなせる.

z1 と z2 が独立ということは,z1 と z2 が直交していることを意味している.z1 と z2

z1

z2

θ

θE{θ|z1}

E{θ|z2}

図 16.1 性質 16.1の幾何学的表現

Page 27: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

198 第 16章 カルマンフィルタ

が直交しているので,θ の z1 と z2 の張る平面への直交射影は θ の z1 への直交射影

E{θ|z1}と z2 への直交射影 E{θ|z2}の和となる.

性質 16.2 θと z は確率変数とする.θ = θ1 + θ2 であれば

θ = E {θ|z} = E {θ1|z} + E {θ2|z} (16.4)

が成り立つ (章末問題 16.1).

性質 16.3 θと z は確率変数とする.θ と z が独立であれば

θ = E {θ|z} = E {θ} (16.5)

となる (章末問題 16.2).

16.2 � 予測,瀘波,平滑

xk に ノイズ vk が付加された値 yk を観測しているとする.

yk = xk + vk (16.6)

観測値から xk をMMSE推定することを考えよう.ただし xk と vk は平均 0 で自己

相関関数がそれぞれRxx(k) とRvv(k) のガウス定常過程とし,互いに無相関とする.

��

��注 16.1 xk と vk は無相関なガウス定常過程であるので,その結合確率密度関数はガウス分

布となる.したがって,以下の議論において,MMSE 推定値と LMMSE 値は一致している.

時間 mまでの観測値

Ym =[

y0 y1 · · · ym

]T(16.7)

から,時間 kの xk をMMSE推定したい.Ym を用いた xk のMMSE推定値を xk|m

と表す.

m < k であり,時間 m までの情報から未来の時間 k の値を推定することを予測

(prediction)という.特に k = m + n(n > 0) のとき,時間 m までの情報で n時間

先の値を予測するので n 段予測という.また,m = k のとき瀘波 (filtering),m > k

のとき平滑 (smoothing) という (図 16.2).

例 16.1 式 (16.6)において,k 個の観測値 y0, . . . , yk−1が与えられたときの,x0, . . . , xk−1

のMMSE 推定値を求めてみよう.

Page 28: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

16.2 予測,瀘波,平滑 199

データ ym

�時間m

xk|m

k

データ�時間

xk|m

k

データ�時間

m

xk|m

k

予測

瀘波

平滑

図 16.2 予測,瀘波,平滑

Xk−1 = [ x0 · · · xk−1 ]T,Vk−1 = [ v0 · · · vk−1 ]T とおくと

Yk−1 = Xk−1 + Vk−1 (16.8)

と書ける.Xk−1 と Vk−1 の自己相関行列をそれぞれ R(k)xx = E

{Xk−1XTk−1

}と R

(k)vv =

E{Vk−1VT

k−1

}とする.xk と vk は無相関なので,Yk−1 の自己相関行列は

R(k)yy = E

{Yk−1YTk−1

}= R(k)

xx + R(k)vv (16.9)

となる.また,xk と vk は無相関なので,Yk−1 と Xk−1 の相互相関行列R(k)yx は

R(k)yx = E

{Yk−1XTk−1

}= R(k)

xx (16.10)

で与えられる.したがって,式 (15.46) より,MMSE 推定値はx0|k−1

...

xk−1|k−1

= R(k)xx

(R(k)

xx + R(k)vv

)−1

y0...

yk−1

(16.11)

となる.また,式 (15.47) より,誤差共分散行列は

R(k)xx −R(k)

xx

(R(k)

xx + R(k)vv

)−1R(k)

xx (16.12)

となる. �

■例題 16.1 式 (16.6) において,k 個の観測値 y0, . . . , yk−1 が与えられたときの,

xk−1 のMMSE 瀘波推定値を求めなさい.

解答: 例 16.1 の式 (16.11)の左辺第 k 要素は,y0, . . . , yk−1が与えられたときの xk−1

のMMSE 推定値であるので,y0, . . . , yk−1 が与えられたときの,xk−1 のMMSE 瀘

波推定値である.

Page 29: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

200 第 16章 カルマンフィルタ

演習 16.1 vk は白色で分散 σ2v とする.式 (16.11) より

x0|0 =Rxx(0)

Rxx(0) + σ2v

y0 (16.13)

x1|1 =[

Rxx(1) Rxx(0)] [ Rxx(0) + σ2

v Rxx(1)

Rxx(1) Rxx(0) + σ2v

]−1 [y0

y1

](16.14)

となることを確かめなさい. �

つぎに,k 個の観測値 y0, . . . , yk−1 から xk の (1段)MMSE予測値 xk|k−1 を求め

てみよう.xk|k−1 は

xk|k−1 = c(k)1 y0 + c

(k)2 y1 + · · · + c

(k)k yk−1 (16.15)

と書ける.ここで

c(k) =[

c(k)1 c

(k)2 · · · c

(k)k

]T(16.16)

を定義するとxk|k−1 =

[c(k)

]T Yk−1 = YTk−1c

(k) (16.17)

と表現できる.

例 16.2 LMMSE 推定の直交性原理を用いて c(k) を求めてみよう.

推定誤差は

xk|k−1 = xk − xk|k−1 = xk − YTk−1c(k) (16.18)

と書ける.直交性原理から m = 0, . . . , k − 1 に対し

E{ymxk|k−1

}= 0 (16.19)

が成り立たなければならない.式 (16.18) を上式に代入し m = 0, . . . , k− 1 に対する方程式を

並べると

E {Yk−1xk} − E{Yk−1YT

k−1}

c(k) = 0 (16.20)

を得る.E {Yk−1xk} = [ Rxx(k) · · · Rxx(1) ]T,E{Yk−1YT

k−1

}= R

(k)yy なので

c(k) =[

R(k)yy

]−1

Rxx(k)

...

Rxx(1)

(16.21)

を得る. �

演習 16.2 vk は白色で分散 σ2v とする.式 (16.17) と 式 (16.21) から

x1|0 =Rxx(1)

Rxx(0) + σ2v

y0 (16.22)

x2|1 =[

Rxx(2) Rxx(1)] [ Rxx(0) + σ2

v Rxx(1)

Rxx(1) Rxx(0) + σ2v

]−1 [y0

y1

](16.23)

となることを確かめなさい. �

Page 30: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

16.3 イノベーション 201

16.3 � イノベーション

Ym による yk のMMSE推定値を

yk|m = E{yk|Ym} (16.24)

と表記する.推定誤差

yk = yk − yk|k−1 (16.25)

を定義すると,直交性原理より

E {Yk−1yk} = 0 (16.26)

が成り立つ.

MMSE 予測値 yk|k−1 は式 (16.15)と同様

yk|k−1 = d(k)1 y0 + d

(k)2 y1 + · · · + d

(k)k yk−1 = YT

k−1d(k) (16.27)

と表現できる.式 (16.27)を用いると Yk−1 = (y0, . . . , yk−1) から yk|k−1 を一意に

決定できる.式 (16.25)から,(Yk−1, yk) が与えらえると (Yk−1, yk) が求まり,逆

に (Yk−1, yk) が与えらえると (Yk−1, yk) が求まる.このことから,(Yk−1, yk) と

(Yk−1, yk)は同じ情報を持つことがわかる.

y0 = y0, y1 = y1 − y1|0, . . . , yk = yk − yk|k−1 から {y0, y1, . . . , yk} を構成する.このとき式 (16.26)より,l �= k のとき E {ylyk} = 0,つまり {y0, y1, . . . , yk} の要素が互いに独立であることがわかる.

{y0, y1, . . . , yk}と同じ情報を持ち,要素が独立な {y0, y1, . . . , yk}を {y0, y1, . . . , yk}のイノベーション (innovation)とよぶ.直感的にいうと,{y0, y1, . . . , yk}を直交化すると {y0, y1, . . . , yk}が得られる.■例題 16.2 式 (16.6) に対し

yk|k−1 = xk|k−1 (16.28)

となることを示しなさい.

解答: 直交性原理から m = 0, . . . , k − 1 に対し

E{ymyk|k−1

}= 0 (16.29)

が成り立たなければならない.yk|k−1 = yk−YTk−1d

(k) を上式に代入しm = 0, . . . , k−1 に対する方程式を並べると

E {Yk−1yk} − E{Yk−1YT

k−1

}d(k) = 0 (16.30)

Page 31: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

202 第 16章 カルマンフィルタ

を得る.xk と vk は無相関なので,E {Yk−1yk} = E {Yk−1xk}が成り立ち,式 (16.20)

より d(k) = c(k) となる.さらに,式 (16.17) に注意すると yk|k−1 = YTk−1d

(k) =

YTk−1c

(k) = xk|k−1 が示せる.

演習 16.3 式 (16.6) において,Rxx(k) = ρ|k| (|ρ| < 1),Rvv(k) = σ2vδk とする.この

とき [y0

y1

]=

[1 0

− ρ1+σ2

v

1

][y0

y1

](16.31)

となることを示しなさい.また,y0 と y1 が無相関であることを示しなさい. �

16.4 � 状態のMMSE推定

第 14章で導入したつぎの線形確率システムを考える.

xk+1 = Axk + buk + wk

yk = cxk + vk

ただし,システムは安定で,ノイズwk は平均 0,共分散行列 Qの白色ガウス過程,

ノイズ vk は平均 0,分散 rの白色ガウス過程とする.また,wk と vk は無相関とす

る.なお,14.5節で述べた理由から,簡単のため入力は uk = 0 とおく.

式 (14.28)より,xk はつぎのように x0 と w0, . . . , wk の線形和 xk = Akx0 +∑k−1l=0 Ak−1−lwl で表現できる. x0 はガウス変数 (あるいは確定変数)からなるベ

クトルと仮定する.ガウス変数の線形和はガウス分布となるので,xk はガウス分布を

持つ.同様に Yk はガウス変数 xk と vk の線形和であるのでガウス分布となる.

Ym に基づく x のMMSE推定値 xk|m は

xk|m = E {xk|Ym} (16.32)

で与えられる.いま,時間 k までの出力 yk から状態 xk を MMSE 推定したい.

� b �+��z−1I �

A

�c �+ ��uk xk yk

wk vk

図 16.3 線形確率システム

Page 32: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

251

索 引

Scilab索引,MATLAB索引,英文索引,和文索引の順に掲載している.

Scilab 索引

abcd 61

abs 221

ans 220

bilin 75

Boolean 231

break 233

browsevar 227

ceil 221

clear 227

clf 229

cont mat 87

continue 233

cos 221

dbphi 45

Demos 217

denom 21

derivat 20

det 226

diag 225

diary 228

disp 219

dscr 124

expm 123

eye 225

fft 140

floor 221

flts 35

for 233

Help Browser 217

histplot 166

honer 21

ifft 140

imag 221

inv 226

legend 230

length 223

load 228

log 221

ltitr 61

lyap 179

matrix 224

max 226

mean 166

min 226

numer 21

obsv mat 87

ones 224

pfss 21

plot 229

plzr 36

poly 19

ppol 98

quit 219

rand 166

rank 226

real 221

repfreq 45

ricc 110

roots 20, 75

round 221

routh t 75

save 228

select-case 232

simp 20

Page 33: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

252 索  引

sin 221

size 223

spec 75, 226

ss2tf 60

stabil 98

sum 226

svd 226

syslin 35, 60

tan 221

tf2ss 60

trace 226

variance 166

while 233

who user 227

who 227

xtitle 230

zeros 224

行列 221

大きさ 223

空行列 224

逆行列 226

行列式 226

固有値 226

固有値分解 226

サイズ変更 224

四則演算 225

スカラー倍 226

転置 223

トレース 226

複素共役 223

複素共役転置 223

冪乗 226

要素ごとの演算 227

要素数 223

ランク 226

グラフィックエディタ 231

継続行 219

コマンド行 218

コメント行 219

条件文 232

タイトル 230

代入演算子 219

特殊変数 220

円周率 220

虚数単位 220

計算精度 220

ネピア数 220

無限大 220

凡例 230

比較演算子 231

複素数 221

変数名 220

ループ 233

論理式 231

MATLAB 索引

acker 99

c2d 124

ctrb 88

dlqr 111

dlyap 180

eig 76

expm 124

fft 140

filter 36

freqz 46

hist 167

ifft 140

lsim 62

lyap 180

mean 167

obsv 88

poly 21

polyder 22

pzmap 37

rand 167

randn 167

residue 22

roots 22, 76

ss 61

ss2tf 61

ssdata 61

tf 36, 61

tf2ss 61

var 167

Page 34: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

索  引 253

英文索引

adjoint 213

aliasing 133

amplitude 38

angular frequency 38

AR 26

ARMA 30

asymptotically stable 66

auto regressive 26

auto-correlation function 170

block diagram 32

block matrix 212

causal 7

causality 24

central limit theorem 161

characteristic equation 214

chi-squared distribution 245

close loop system 91

column vector 210

complement event 155

conditional probability 157

continuous-time signal 2

controllable 81

convolution 11

correlation 164

correlation matrix 164

covariance 164

covariance matrix 164

cross-correlation function 171

dB 44

delta function 128

determinant 212

diagonal matrix 210

diagonalization 214

discrete-time Fourier transform 131

discrete-time signal 2

eigenvalue 214

eigenvector 214

ensemble average 159

estimation error 182

Euclidean norm 104

event 155

expected value 159

external stability 69

feedback gain 90

filtering 198

finite impulse response 26

FIR 26

Fourier transform 131

frequency 39

frequency response 41

Gaussian distribution 160

identity matrix 210

i.i.d. 168

IIR 26

image 215

impulse response 26

infinite impulse response 26

inner product 189

innovation 201

internal stability 69

inverse discrete-time Fourier transform

131

inverse Fourier transform 131

inverse matrix 212

inverse z-transform 15

invertible 212

joint probability density function 163

joint probability distribution function

163

jointly wide-sence stationary process 172

Kalman gain 204

kernel 215

Kronecker’s delta 10

least squares 181

least squares estimator 184

linear estimation 182

Page 35: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

254 索  引

linear minimum mean square error estimator

190

linearity 11, 24

linearly independent 211

LPF 137

LTI 25

MA 33

magnitude response 43

MATLAB ⇒ MATLAB 索引

mean square error 183

mean, average 159

minimal realization 54

minimum mean square error 181

minimum mean square error estimator

189

MMSE 189

moving average 33

non-linear estimation 182

nonsingular matrix 212

norm 104

normal distribution 160

null space 215

Nyquist frequency 135

observable 83

observable canonical form 57

observer 142

open loop system 91

orthogonal matrix 213

orthogonality principle 193

output equation 50

period 38

phase 38

phase response 43

pole 16, 31

polynomial 16, 30

positive definite matrix 103

positive semidefinite matrix 103

power spectral density 173

power spectrum 173

prediction 198

probability density function 158

probability distribution function 157

process 168

proper 30

pulse transfer function 28

random variable 157

range 215

rational function 16

rational polynomial 30

reachable canonical form 52

reacheable 77

realization 54

regulator 91

response 24

root 16

row vector 210

sample process 168

sample space 155

Scilab ⇒ Scilab 索引

sequence 7

signal 2

sinusoid 38

smoothing 198

spectrum 130, 131

stabilizability 82

stable matrix 66

state 48

state equation 50

state space representation 50

state variable 48

state vector 49

step response 28

stochastic process 168

stochastically independent 156

strict-sence stationary process 171

strong stationary process 171

symmetric matrix 211

the Wiener-Kinchin relation 174

Page 36: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

索  引 255

time response 24

time-invariance 25

transfer function 28

transpose 211

unbiased estimate 182

variance 159

weakly stationary process 170

white Gaussian process 168

wide-sence stationary process 170

z-transform 7

zero 16, 31

zero-input response 51

和文索引

あ 行

ARMA モデル 30

IIR システム 26

アナログ信号 3

安定行列 66

位相 38

位相特性 43

イノベーション 201

因果性 24

因果的 7

インパルス応答 26

Wiener-Kinchin の関係 174

AR モデル 26

FIR システム 26

MA モデル 33

エリアシング 133

オイラーの公式 18

応答 24

オブザーバ 142

か 行

可安定 82

χ2 分布 245

外部安定 69

開ループシステム 91

ガウス分布 160

可観測 83

可観測性行列 84

可観測正準形 57

可逆 212

核 215

角周波数 38

確率過程 168

確率分布関数 157

確率変数 157

確率密度関数 158

可制御 81

過程 168

可到達 77

可到達性行列 80

可到達正準形 52

カルマンゲイン 204

期待値 159

逆行列 212

逆 Z 変換 15

逆フーリエ変換 131

逆離散時間フーリエ変換 131

強定常過程 171

共分散 164

共分散行列 164

行ベクトル 210

行列式 212

極 16, 31

極配置 91

クロネッカデルタ 10

結合ガウス分布 165

結合確率分布関数 163

結合確率密度関数 163

結合弱定常過程 172

合成積 11

固有値 214

固有ベクトル 214

Page 37: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

256 索  引

根 16

さ 行

最終値定理 14

最小誤差分散法 181

最小誤差分散推定値 189

最小 2 乗推定 181

最小 2 乗推定値 184

最小実現 54

サンプリング 2

時間応答 24

自己回帰モデル 26

自己相関関数 170

事象 155

システムの極 68

実現 54

時不変性 25

弱定常過程 170

周期 38

自由系 65

集合平均 159

収束円 8

収束半径 8

収束領域 8

周波数 39

周波数応答 41

出力方程式 50

条件付き確率 157

状態 48

状態空間表現 50

状態ベクトル 49

状態変数 48

状態方程式 50

初期値定理 14

信号 2

振幅 38

振幅特性 43

推定誤差 182

数列 7

ステップ応答 28

スペクトル 130, 131

正規分布 160

正弦波 38

正則行列 212

正定値行列 103

正方行列 210

Z 変換 7

ゼロ空間 215

ゼロ状態応答 51

ゼロ点 16, 31

ゼロ入力応答 51

漸近安定 66

線形最小誤差分散推定値 190

線形時不変システム 25

線形推定 182

線形性 11, 24

線形独立 211

像 215

相関 164

相関行列 164

相互相関関数 171

た 行

対角化 214

対角行列 210

対称行列 211

多項式 16, 30

畳み込み 11

縦ベクトル 210

単位インパルス列 10

単位行列 210

単位ステップ列 10

値域 215

中心極限定理 161

直交行列 213

直交性原理 193

低域通過フィルタ 137

ディジタル信号 3

Page 38: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

索  引 257

デシベル 44

デルタ関数 128

伝達関数 28

転置 211

統計的に独立 156

特性方程式 214

な 行

ナイキスト周波数 135

内積 189

内部安定 69

ノルム 104

は 行

白色ガウス過程 168

パルス伝達関数 28

パワースペクトル 173

パワースペクトル密度 173

半正定値行列 103

非線形推定 182

フィードバックゲイン 90

フーリエ変換 131

複素形式フーリエ級数展開 129

複素正弦波 39

複素フーリエ係数 130

部分分数展開 16

不偏推定値 182

ブロック行列 212

ブロック線図 32

プロパー 30

分散 159

平滑 198

平均 159

平均 2 乗誤差 183

閉ループシステム 91

ベキ級数 8

補事象 155

ま 行

見本過程 168

見本空間 155

無相関 164

や 行

有界入力有界出力安定 63

ユークリッドノルム 104

有理関数 16, 30

余因子行列 213

横ベクトル 210

予測 198

ら 行

離散時間システム 5, 24

離散時間信号 2

離散時間フーリエ変換 131

量子化 3

レギュレータ 91

列ベクトル 210

連続時間システム 5

連続時間信号 2

瀘波 198

Page 39: 「線形離散時間システム入門」 サンプルページmain0703 : 2007/12/27(17:54) ii まえがき するためのプログラミング演習を,1 コマ(90 分程度)

main0703 : 2007/12/27(17:54)

著 者 略 歴

大野 修一 (おおの しゅういち)

1995 年 京都大学大学院工学研究科博士後期課程修了同年 島根大学 総合理工学部助手

1999 年 同講師2002 年 広島大学大学院工学研究科助教授2007 年 同准教授

現在に至る.博士 (工学).

線形離散時間システム入門  c© 大野 修一  2008

2008 年 1 月 25 日 第 1 版第 1 刷発行 【本書の無断転載を禁ず】

著   者 大野修一発 行 者 森北博巳発 行 所 森北出版株式会社

東京都千代田区富士見 1–4–11(〒 102–0071)

電話 03–3265–8341/ FAX 03–3264–8709

日本書籍出版協会・自然科学書協会・工学書協会 会員http://www.morikita.co.jp/

JCLS < (株) 日本著作出版権管理システム委託出版物>

落丁 · 乱丁本はお取替えいたします  印刷/モリモト印刷・製本/ブックアート

Printed in Japan /ISBN978–4–627–91921–1