Top Banner
1 © 2013 The MathWorks, Inc. MATLABで信号処理 ~各種センサー信号を題材として~ MathWorks Japan シニアアプリケーションエンジニア 竹本佳充
58

MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3....

Jul 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

1 © 2013 The MathWorks, Inc.

MATLABで信号処理

~各種センサー信号を題材として~

MathWorks Japan

シニアアプリケーションエンジニア

竹本佳充

Page 2: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

2

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 3: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

3

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 4: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

4

概要:センサーとは?

(出展:フリー百科事典「ウィキペディア(Wikipedia)」)

センサまたはセンサー(英: sensor。英語発音: /ˈsensɔːr/ センソー、/ˈsensə/ センサ)は、自然現象や人工物の機械的・電磁気的・熱的・音響的・化学的性質あるいはそれらで示される空間情報・時間情報を、何らかの科学的原理を応用して、人間や機械が扱い易い別媒体の信号に置き換える装置のことをいい…

概要

センサーは今日、日常生活のあらゆるところで使用されている。特に、自動車、機械、航空宇宙、医学、産業およびロボット工学などで大いに使用される…

Page 5: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

5

概要:センサーの種類 時空間特性

●変位

ポテンショメータ, 差動トランス, 回転角センサー,

リニアエンコーダ

●回転数

タコジェネレータ, ロータリエンコーダ

●位置

光位置センサー (PSD), リミットスイッチ

●距離

超音波距離計, 静電容量変位計, 光学式測距, 電磁波測距

●速度

レーザードップラー振動速度計, レーザドップラー流速計

●角速度

ジャイロセンサー

●加速度

加速度センサー, 地震センサー

●一次元画像

リニアイメージセンサー

●二次元画像

CCDイメージセンサー, CMOSイメージセンサー

その他

液、硬度、電場、電流、電圧、電力、赤外線、放射線、湿度、

におい、流量、傾斜、振動、時間

物理特性

●力

ストレインゲージ(ひずみゲージ),

ロードセル, 半導体圧力センサー

●光

光センサー, 光電素子, フォトダイオード

●磁気

磁気センサー

●温度

接触式, サーミスタ, 抵抗測温体,

熱電対, 非接触式, 放射温度計

●音声

マイクロフォン

●化学

イオン濃度

●ガス濃度

出展:フリー百科事典「ウィキペディア(Wikipedia)

Page 6: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

6

概要:センサーシステム

測定物

アナログ回路

センサ

ADC デジタル

信号処理 DAC

センサシステムは、信号処理技術と密接に関係

信号処理の基礎知識は必要

最適な信号処理システム設計環境が重要

Page 7: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

7

概要:課題1

本来の周波数成分が

再現されない

0 0.05 0.1 0.15 0.2 0.25-1

-0.5

0

0.5

1cos波(時間軸)

時間[s]

0 0.05 0.1 0.15 0.2 0.25-1

-0.5

0

0.5

1cos波(時間軸)

時間[s]

0 20 40 60 80 1000

0.2

0.4

0.6

0.8

1

周波数[Hz]

cos波(周波数軸)

0 20 40 60 80 1000

0.2

0.4

0.6

0.8

1

周波数[Hz]

cos波(周波数軸)

信号の打ち切りによる影響

測定物

アナログ回路

センサ

ADC デジタル

信号処理 DAC

サイドローブ発生 サイドローブなし

0 100 200 300 400 500 600 700 800 900 1000-50

-40

-30

-20

-10

0

10

20

30

40

50

0 100 200 300 400 500-50

-40

-30

-20

-10

0

10

20

30

40

50

折り返し歪による影響

回避する

方法は?

打ち切り

Page 8: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

8

概要:課題2

所望成分の取得

0 1 2 3 4 5 6-5

-4

-3

-2

-1

0

1

2

3

4

時間

0 10 20 30 40 50 60 70 80-80

-70

-60

-50

-40

-30

-20

-10

0

周波数 (Hz)

パワ

ー/周

波数

(dB

/Hz)

ピリオドグラム パワー スペクトル密度推定

0 10 20 30 40 50 60 70 800.5

1

1.5

2

2.5

3

3.5

4

4.5

5

5.5

周波数 (Hz)

時間

特定の周波数成分のみ取り出すには?

所望成分

不要成分

測定物

アナログ回路

センサ

ADC デジタル

信号処理 DAC

Page 9: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

9

概要:課題3

ADC前処理とDAC後処理

DAC後のイメージ成分は、

アンチイメージングフィルタで除去

ADC周波数の1/2以上の成分は、

アンチエイリアシングフィルタで除去

最適なフィルタは?

測定物

アナログ回路

センサ

ADC デジタル

信号処理 DAC

Page 10: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

10

概要:課題4

システムシミュレーション、

実機への展開

要素設計からアーキテクチャ評価へ

デジタル処理とアナログ処理の混載

フィードバックループシステムの安定性解析

固定小数点化がシステム性能に与える影響

実機評価環境の整備

測定物

アナログ回路

センサ

ADC デジタル

信号処理 DAC

これらを効果的に

実現する環境は?

Page 11: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

11

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 12: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

12

信号の離散化

time[s]

サンプリング周期

Ts[s]

サンプリング周波数fs[Hz] =1/Ts[s]

時間軸方向の離散化:標本化(サンプリング)

振幅方向の離散化:量子化

量子化

最小ステップ

Page 13: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

13

サンプリング定理

time[s]

アナログ

time[s]

デジタル

(サンプリング密)

元信号のfs/2[Hz]以上の成分は、

折り返し(エイリアシング)に影響を受ける

⇒2倍以上のサンプリング or アンチエイリアシング処理が必要

F time[s]

デジタル

(サンプリング粗) サンプリング

F

0 fs1/2 frequency[Hz]

fs1

frequency[Hz] 0 0

fs2/2 frequency[Hz]

F

fs2

エイリアシング

Page 14: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

14

離散高速フーリエ変換:FFT

time[s]

FFT

frequency[Hz]

データタイプは複素数(振幅と位相の情報を持つ)

fs/2(ナイキスト)で折り返し

変換前と後で同じデータ点数

データ点数が多いほど、

周波数分解能は上がる 0 fs/2 fs

周波数分解能:

fs/データ数

DC成分 折り返し

Ni

N

N

k

kj

N

N

j

kj

N

e

where

kXNjxIFFT

jxkXFFT

/)2(

1

)1)(1(

1

)1)(1(

)()/1()(:

)()(:

Page 15: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

15

窓関数

初期値と最終値の不連続性(打ち切り誤差)を低減(FFTの前処理)

⇒周波数成分の再現性向上

time[s]

window

初期値

最終値

不連続

初期値

最終値

Page 16: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

16

主なスペクトル推定法

カテゴリ 特徴 メソッド名 関数名

パラメトリック法 信号自体からPSDを求める

比較的長いデータに有効

ピリオドグラム periodogram

ウェルチ pwelch

マルチテーパ― pmtm

ノンパラメトリック法 整形システムの係数推定により

PSDを求める

比較的短いデータに有効

ユール・ ウォーカー

pyuler

バーグ pburg

共分散 pcov

部分空間法

自己相関行列の固有解析・固有分解をベースとする

低S/N正弦波信号のスペクトル推定に有効

MUSIC pmusic

固有ベクトル peig

スペクトル推定法の種類と特徴

Page 17: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

17

エイリアシング

Ex1_1) 信号のFFT(エイリアシングの確認)

0 0.2 0.4 0.6 0.8 1-2

-1

0

1

2

0 100 200 300 400 500-100

-50

0

50

右クリック

0 0.2 0.4 0.6 0.8 1-2

-1

0

1

2

0 100 200 300 400 500-100

-50

0

50

f1 = 10, f2 = 50 f1 = 10, f2 = 350

0 0.2 0.4 0.6 0.8 1-2

-1

0

1

2

0 100 200 300 400 500-100

-50

0

50

f1 = 10, f2 = 550

ナイキスト以上の成分は折り返す

Page 18: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

18

Ex1_2) 信号のFFT(窓関数の効果)

0 0.2 0.4 0.6 0.8 1-2

-1

0

1

2

0 100 200 300 400 500-300

-200

-100

0

100

0 0.2 0.4 0.6 0.8 1-2

-1

0

1

2

97 98 99 100 101 102 103

-40

-20

0

20拡大

サイドローブの減衰大

(ハニング窓の特徴) メインローブが狭い

(ハミング窓の特徴)

>>wintool

ハミング

ハニング

Sig

Page 19: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

19

0 1 2 3 4 5 6

x 10-3

-4

-3

-2

-1

0

1

2

3

4

時間

0 10 20 30 40 50-100

-90

-80

-70

-60

-50

-40

-30

-20

周波数 (kHz)

パワ

ー/周

波数

(dB

/Hz)

ピリオドグラム パワー スペクトル密度推定

0 1 2 3 4 5

x 104

1

1.5

2

2.5

3

3.5

4

4.5

5

x 10-3

周波数 (Hz)

時間

Ex1_3) スペクトログラム Sig

時変信号を

効果的に可視化

周波数成分は求まるが、時間の情報が欠落

FFT

ノッキングセンサの例

スペクトログラム

Page 20: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

20

遅延量の推定

time[s]

time[s]

xサンプル

相互相関

(xcorr) 0

xサンプル

時間軸信号の類似性の指標

信号の遅延量推定に使用可能

Page 21: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

21

周波数成分の類似性

周波数軸信号の類似性の指標

位相遅れ推定

frequency[Hz]

コヒーレンス

(mscohere)

frequency[Hz]

frequency[Hz]

共通成分

クロススペクトル

/位相推定

(cpsd) frequency[Hz]

位相遅れ

Page 22: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

22

Ex1_4)遅延量測定

0 500 1000 1500 2000 2500 3000-0.01

-0.005

0

0.005

0.01

s1

0 500 1000 1500 2000 2500 3000-0.01

-0.005

0

0.005

0.01

s2

0 500 1000 1500 2000 2500 3000-0.01

-0.005

0

0.005

0.01

s3

Samples

-3000 -2000 -1000 0 1000 2000 3000-0.5

0

0.5

1

C21

Cross-Correlations

-3000 -2000 -1000 0 1000 2000 3000-0.5

0

0.5

1

C31

Samples

-350サンプルずれ

150サンプルずれ

相互相関関数の計算

振動センサー信号

相互相関(C21)

相互相関(C31)

s1

s2

s3

s1 s2 s3

振動センサの例

Sig

Page 23: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

23

Ex1_5)周波数成分類似度推定

0 0.2 0.4 0.6 0.8 1-6

-4

-2

0

2

4

s1

Time Series

0 0.2 0.4 0.6 0.8 1-4

-2

0

2

4

6

s2

Time (secs)

0 100 200 300 400 500

0.05

0.1

0.15

0.2

P1

Power Spectrum

0 100 200 300 400 500

0.05

0.1

0.15

0.2

P2

Frequency (Hz)

35.1563 164.0625

0.75

Coherence Estimate

35.1563 164.0625

-87-60

Cross Spectrum Phase (deg)

Frequency (Hz)

コヒーレンス/クロススペクトルの計算

共通成分

-60°

-87°

コヒーレンス

位相

Sig

Page 24: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

24

Sig 補足: 信号解析アプリ(sptool)

時間軸表示 スペクトル推定結果

Page 25: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

25

補足: File Exchange http://www.mathworks.co.jp/matlabcentral/fileexchang

e

キーワード検索でデモをサーチ

Page 26: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

26

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 27: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

27

種類

実現方法

フィルタの種類

フィルタ

ローパスフィルタ

バンドパスフィルタ

ハイパスフィルタ

f(Hz)

f(Hz)

f(Hz)

アナログフィルタ デジタルフィルタ

FIR IIR アクティブ パッシブ

Page 28: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

28

y(n) = Σ b k x(n-k) 差分方程式: N

k=0

+

b1

b2

x(n) y(n) b0

FIRフィルタの構成

Z-1

Z-1

Z-1

x(n-1)

x(n-2)

bN

Z-1

x(n-N)

y(n) = b0*x(n) + b1*x(n-1)

+ b2*x(n-2) +・・・+ bN*x(n-N)

デジタルフィルタ:FIR

Page 29: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

29

FIRフィルタの伝達関数

H(z) = = b(1)+b(2)Z-1+b(3) Z-2 +・ ・ +b(N+1)Z-N

1

(次数:N)

伝達関数

H(z)

入力

X(z)

出力

Y(z)

システム

)(

)()(

zX

zYzH

N

k

k

kZb0

1

)()1(

)()(

1 zXznx

zXnx

※Z変換

n

nZnxzX )()(

デジタルフィルタ:FIR (cont’d)

Page 30: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

30

5点移動平均フィルタの例

デジタルフィルタ:FIR/MA

+

1/5

1/5

x(n) y(n) 1/5

Z-1

Z-1

Z-1

x(n-1)

x(n-2)

Z-1

x(n-4)

x(n-3)

1/5

1/5

+

x(n) y(n)

Z-1

Z-1

Z-1

x(n-1)

x(n-2)

Z-1

x(n-4)

x(n-3)

1/5

y(n) = 1/5*{x(n) +x(n-1)

+ x(n-2) +x(n-3)+x(n-4)}

1

1*5/1

4321 zzzz

差分方程式

伝達関数

Page 31: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

31

y(n) = Σ b k x(n-k) a k y(n-k) 差分方程式: N

k=0

Σ N

k=1

+

Z-1

+

Z-1

Z-1

-a1

-a2

b1

b2

x(n) y(n) b0

IIRフィルタの構成

Z-1

Z-1

Z-1

Z-1

x(n-1)

x(n-2)

bN

Z-1

x(n-N) -aN

y(n-1)

y(n-2)

y(n-N)

デジタルフィルタ:IIR

Page 32: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

32

IIRフィルタの伝達関数

H(z) = = b(1)+b(2)Z-1+b(3) Z-2 +・ ・ +b(N+1)Z-N

1+a(2)Z-1+a(3) Z-2 +・ ・ +a(N+1)Z-N

(次数:N)

N

k

k

kZb0

N

k

k

kZa1

1

※零点/極

)())((

)())(()(

21

210

N

N

zzz

zzzHzH

因数分解

零点

デジタルフィルタ:IIR (cont’d)

Page 33: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

33

FIRフィルタとIIRフィルタとの比較

項目

FIR

(Finite Impulse

Response)

IIR

(Infinite Impulse

Response)

インパルス応答 有限 無限

次数 多い 少ない

フィードバック構造 なし あり

安定性 安定 不安定

群遅延特性 線形 非線形

H/Wコスト 高い 低い

速度 遅い 早い

Page 34: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

34

IIRフィルタの種類と特徴

項目 バタワース チェビシェフⅠ型 チェビシェフⅡ型 楕円

通過域リップル なし あり なし あり

遮断域リップル なし なし あり あり

群遅延特性 ○ △ △ ×

特徴

リップル特性を持たないため、平坦な周波数特性が得られる

通過域リップルを大きくすることで、急峻なロールオフ特性が得られる

遮断域の減衰量を小さく指定することで、急峻なロールオフ特性が得られる

通過域と遮断域双方のリップルを制御可能なため、最も急峻なロールオフ特性が得られる

波形イメージ

Page 35: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

35

Ex2_1)デジタルフィルタ設計手順 関数ベース(従来手法)

フィルタオブジェクトベース

仕様ベース

既述がシンプル

処理の可読性

フィルタの属性管理

豊富な解析機能

固定小数点化

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

-180

-160

-140

-120

-100

-80

-60

-40

-20

0

正規化周波数 ( ラジアン/サンプル)

振幅

(dB

)

振幅応答 (dB)

アルゴリズムの絞り込み

試行錯誤削減

Sig

Page 36: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

36

Ex2_2)各種フィルタの特性比較

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4-5

-4.5

-4

-3.5

-3

-2.5

-2

-1.5

-1

-0.5

0

正規化周波数 ( ラジアン/サンプル)

振幅

(dB

)

振幅応答 (dB)

バタワース

チェビシェフ I 型

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-90

-80

-70

-60

-50

-40

-30

-20

-10

0

正規化周波数 ( ラジアン/サンプル)

振幅

(dB

)

振幅応答 (dB)

バタワース

チェビシェフ II 型

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-90

-80

-70

-60

-50

-40

-30

-20

-10

0

正規化周波数 ( ラジアン/サンプル)

振幅

(dB

)

振幅応答 (dB)

バタワースチェビシェフ I 型チェビシェフ II 型楕円

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4-5

-4.5

-4

-3.5

-3

-2.5

-2

-1.5

-1

-0.5

0

正規化周波数 ( ラジアン/サンプル)

振幅

(dB

)

振幅応答 (dB)

バタワースチェビシェフ I 型チェビシェフ II 型楕円

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

0

5

10

15

20

25

30

35

40

45

正規化周波数 ( ラジアン/サンプル)

群遅

延 (

サン

プル

)

群遅延

バタワースチェビシェフ I 型チェビシェフ II 型楕円

バタワース vs チェビシェフⅠ

バタワース vs チェビシェフⅡ

バタワース vs

チェビシェフⅠ/チェビシェフⅡ/楕円

(振幅特性)

バタワース vs

チェビシェフⅠ/チェビシェフⅡ/楕円

(群遅延特性)

Sig

Page 37: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

37

Ex2_3)フィルタ仕様と手法選択

フィルタ仕様

・IIR型

・サンプリング周波数: 100k[Hz]

・フィルタ次数:10次以下

バタワース(12次):NG

チェビシェフⅠ、Ⅱ、楕円(8次):OK

frequency[Hz]

Ap

Sig

0 1 2 3 4 5 6 7 8 9 10-70

-60

-50

-40

-30

-20

-10

0

周波数 (kHz)

振幅

(dB

)

振幅応答 (dB)

バタワースチェビシェフ I 型チェビシェフ II 型

楕円

Fst2 Fst1

Ast2 Ast1

・左側遮断周波数(Fst1): 3k[Hz]

・右側遮断周波数(Fst2): 9k[Hz]

・通過帯域(Fp1, Fp2):5~7k[Hz]

・通過帯域リップル(Ap):0.5[dB]

・遮断帯域減衰量(Ast1, Ast2): 40[dB]

Fp2 Fp1

Page 38: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

38

Ex2_3)フィルタ仕様と手法選択

フィルタ仕様

・IIR型

・サンプリング周波数: 100k[Hz]

・フィルタ次数:10次以下

バタワース(12次):NG

チェビシェフⅠ、Ⅱ、楕円(8次):OK

バタワース(22次)、チェビシェフⅠ、Ⅱ(12次) :NG

楕円(8次):OK

frequency[Hz]

Ap

Sig

0 1 2 3 4 5 6 7 8 9 10-70

-60

-50

-40

-30

-20

-10

0

周波数 (kHz)

振幅

(dB

)

振幅応答 (dB)

バタワースチェビシェフ I 型チェビシェフ II 型

楕円

Fp2 Fp1

Fst2 Fst1

Ast2 Ast1

0 1 2 3 4 5 6 7 8 9 10-80

-70

-60

-50

-40

-30

-20

-10

0

周波数 (kHz)

振幅

(dB

)

振幅応答 (dB)

バタワースチェビシェフ I 型チェビシェフ II 型

楕円

・左側遮断周波数(Fst1): 3k[Hz]⇒4k[Hz]

・右側遮断周波数(Fst2): 9k[Hz]⇒8k[Hz]

・通過帯域(Fp1, Fp2):5~7k[Hz]

・通過帯域リップル(Ap):0.5[dB]

・遮断帯域減衰量(Ast1, Ast2): 40[dB]

Page 39: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

39

フィルタ設計アプリ: filterbuilder

Filter Builder環境の起動

Page 40: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

40

フィルタ設計アプリ: filterbuilder(cont’d)

フィルタの

方式を選択

周波数仕様、振幅仕様の設定

フィルタの種類を

選択

Page 41: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

41

フィルタ設計アプリ: filterbuilder(cont’d)

振幅特性

位相特性

群遅延特性

各種情報

(フィルタの安定性、

使用するH/Wコスト等)

Page 42: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

42

0 1 2 3 4 5 6

x 10-3

-4

-3

-2

-1

0

1

2

3

4

時間

0 5 10 15 20 25 30 35 40 45 50-100

-90

-80

-70

-60

-50

-40

-30

-20

周波数 (kHz)

パワ

ー/周

波数

(dB

/Hz)

ピリオドグラム パワー スペクトル密度推定

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

x 104

1

1.5

2

2.5

3

3.5

4

4.5

5

x 10-3

周波数 (Hz)

時間

0 5 10 15 20 25 30 35 40 45 50-100

-90

-80

-70

-60

-50

-40

-30

-20

周波数 (kHz)

パワ

ー/周

波数

(dB

/Hz)

ピリオドグラム パワー スペクトル密度推定

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

x 104

1

1.5

2

2.5

3

3.5

4

4.5

5

x 10-3

周波数 (Hz)

時間

Ex2_4)フィルタ処理(Ex1_3の続き) Sig

不要成分の除去

Page 43: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

43

Ex2_5)適応フィルタの使用例

MHB(母親)

89回/分

3.5mV

FHB(胎児)

139回/分

0.25mV

0 0.5 1 1.5 2 2.5-4

-3

-2

-1

0

1

2

3

4

Time [sec]

Vol

tage

[m

V]

Maternal Heartbeat Signal

0 0.5 1 1.5 2 2.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Time [sec]

Vol

tage

[m

V]

Fetal Heartbeat Signal

0 0.5 1 1.5 2 2.5-4

-3

-2

-1

0

1

2

3

4

Time [sec]

Vol

tage

[m

V]

Measured Signal

0 1 2 3 4 5 6 7-4

-3

-2

-1

0

1

2

3

4

Time [sec]

Vol

tage

[m

V]

Convergence of Adaptive Noise Canceller

Measured Signal

Error Signal

6 6.5 7 7.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

Time [sec]

Vol

tage

[m

V]

Steady-State Error Signal

測定データ

f()を推定し、

MHB成分を

除去

残差

(復元されたFHB)

f( )

Sig/DSP

FHB

MHB f(MHZ) +

FHB +

noise

Page 44: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

44

補足:Phased Array System Toolbox

レーダ方程式

レーダー波形解析

センサーアレイ解析

Page 45: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

45

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 46: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

46

変数の固定小数点化 Sig/DSP/Fix

固定小数点長を設定

浮動小数点(リファレンス)と

固定小数点との比較

0 5 10 15 20 25 30 35 40 45

-70

-60

-50

-40

-30

-20

-10

0

周波数 (kHz)

振幅

(dB

)

振幅応答 (dB)

フィルター #1: 量子化

フィルター #1: リファレンス

Page 47: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

47

Simulinkブロックの自動生成 Sig/DSP/Fix/SL

プリミティブブロックを使用 高抽象度ブロックを使用

Page 48: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

48

Sig/DSP/Fix/SL Ex3_1) Simulink環境への展開

filterbuilderにより

自動生成されたブロック

時間軸波形 周波数軸波形

ノッキング

信号生成

Page 49: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

49

Sig/DSP

統計値表示

・平均値

・RMS

・デューティ比

Time Scope Spectrum Analyzer

複素数表示

Peak検出

Max/Minホールド

MIDI Control 外部コントローラでパラメータ調整

I/O, 可視化系機能強化

Page 50: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

50

Logic Analyzer System Object

– アナログおよびデジタル表示フォーマット

– Bin, Hex, Oct, Dec表示

– カーソルを合わせた箇所の値を表示

アナログ表示

デジタル(Hex)表示 デジタル

2値表示

I/O, 可視化系機能強化(cont’d) Sig/DSP

Page 51: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

51

RoTH : Simulinkハードウエア連携機能 RoTH: Run on Target Hardware

Simulink単体でモデル組み込み実装を実現

LEGO

MINDSTORMS NXT

Arduino BeagleBoard/

PandaBoard

Student Version でも可能!

コンパイル/

実装

モデル

Gumstix Overo

Digilent

Analog Discovery Raspberry Pi

R2013a~

Cコード生成

(隠蔽化)

Page 52: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

52

Ex3_2) Raspberry Pi 赤外線センサモデル

モーションセンサが動きを検知したタイミング実行

(Simulink標準デモとして提供)

画像データをセーブ

音声を再生

SL

Page 53: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

53

補足: Cコード生成・検証オプション

MATLAB Coder

MATLABコードから等価なC

コードを生成

スタンドアローン化

アルゴリズムの配布

Simulink Coder

SimulinkモデルからCコード生成

プロトタイピング用

浮動小数点CPU向けコード

Embedded Coder

組込み用Cコード生成

固定小数点コード対応

各社IDEとリンク、デバッグの自動化

ターゲット用デバイスドライバブロック

デスクトップまたは組込み用Cコード生成および検証

Page 54: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

54

補足: HDLコード生成・検証オプション

HDL Coder

Stateflow, MATLABコード、Simulink

モデルからHDL生成

ターゲット依存しないVHDL/Verilog

テストベンチ(HDL, Model)生成

FPGAベンダツールと連携

HDL Verifier

HDLシミュレータと協調シミュレーション

ModelSim / Incisive(NC Verilog)

FPGA-in-the-Loop

SystemC TLM 2.0生成

ASIC/FPGAに実装可能なコードを生成および検証

Filter Design HDL Coder

MATLABで設計したIIR/FIR/マルチレート・フィルタからHDL生成

ターゲット依存しないVHDL/Verilog

テストベンチ(HDL, Model)生成 Z-1

Z-1

Z-1

Z-1

+

+

+

+

Page 55: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

55

補足:信号処理トレーニングコース

MATLABによる信号処理 Simulinkによる信号処理

Page 56: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

56

Agenda

1. センサーシステム設計の概要

2. センサーデータの解析

周波数解析

信号の遅延、類似性の評価等

3. センサーデータのフィルタリング

フィルタの種類と特徴

フィルタの設計

4. システムモデリングから実機テスト

固定小数点化

システムモデルへの展開

実装環境

5. まとめ

Page 57: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

57

まとめ1

センサーデータの解析

FFTをベースとした周波数解析基本環境

窓関数、スペクトル推定、相互相関等、豊富な信号処理関数ライブラリ

センサーデータの処理

与えられた仕様をもとにフィルタ設計

多様なフィルタ手法と、最適なフィルタ探索

Filterbuilder環境

システムモデリングから実機テスト

変数の固定小数点化

簡易実装環境

汎用性の高い自動コード生成機能

Page 58: MATLABで信号処理 ~各種センサー信号を題材として~ · センサーデータの解析 周波数解析 信号の遅延、類似性の評価等 3. センサーデータのフィルタリング

58

まとめ2

信号解析

フィルタリング

システム設計

実機評価

Signal

Processing

Toolbox

Simulink

DSP System

Toolbox

Fixed Point

Designer

Sig: Signal Processing Toolbox

DSP: DSP System Toolbox

Fix: Fixed Point Designer

SL: Simulink