MATLAB 応用講習会(A) 情報アシスタント M2(電気工学専攻) 山本幸司 アウトライン 0 . イントロダクション 1 . 簡単な数値解析処理 1. 1 因数分解 1. 2 多項式の微分 1. 3 定積分 2 . 音声のディジタル信号処理 2. 1 FFTを用いた周波数解析(実際の音声を解析) 3 . 画像のディジタル信号処理 3. 1 画像のヒストグラム 3. 2 エッジ検出 3. 3 ノイズ除去 2010.8.2 MATLAB応用講習会(A): 2 / 27 0 . イントロダクション MATLAB応用講習会(A)の目的 1. 難しいテーマを扱わずにMATLABの利便性を感じてもらう. 2. 1を理解してもらうため,主に信号処理をテーマに演習問題を通 して,MATLABを体験してもらう. 3. 色々なテーマに触れてもらい,研究へのヒントを掴んでもらう. 資料: http://www.isc.meiji.ac.jp/~kairomou/seminar.html 2010.8.2 MATLAB応用講習会(A): 3 / 27 1 . 簡単な数値解析処理 演習問題(Sample1.m) 適当な関数を与えて,その関数の因数分解を行う. 演習問題(Sample2.m) 適当な関数を与えて,その微分をして,グラフに表示して みる. 演習問題(Sample3.m) 適当な関数と積分区間を与えて,定積分を行う. 2010.8.2 MATLAB応用講習会(A): 4 / 27 2 . 音声のディジタル信号処理 MATLAB環境におけるディジタル音声の基礎 基本的に読み書きできるフォーマットは*.wavファイルである. (応用次第では,*.mp3の読み書きも可能) ディジタル音声は連続信号を,一 定の間隔でサンプリングして,さ らにその大きさを量子化している. 例)一般的なCD 2010.8.2 MATLAB応用講習会(A): 5 / 27 2.1 FFTを用いた周波数解析 時間領域から周波数領域へ 時間領域から周波数領域への変換は,次のようなFourier変換がよく 知られている. 上式では連続時間信号のため,離散信号には適応できない. そこで,時間・周波数共に離散化を行い計算機でFourier変換できるよ うに式変形をしたのがDFT(Discrete Fourier Transform)である. 2010.8.2 MATLAB応用講習会(A): 6 / 27 2.1 FFTを用いた周波数解析 DFTとFFT(Fast Fourier Transform) DFTは以下のように計算する. FFTはDFTの冗長性(何度も同じ計算をするところ)を省き高速に演算を することである.従って,本質的にはFFTとDFTは同じ. 2010.8.2 MATLAB応用講習会(A): 7 / 27 2.1 FFTを用いた周波数解析 パワースペクトル構造 ナイキスト周波数で対称 標本化の定理: サンプリング周波数の1/2までが復元可能な帯域となる. e.g.) CDの場合サンプリング周波数が44.1Khzなので復元可能な帯域幅 は直流成分から22.05kHzまでとなる.これは人間の可聴領域(約 20Hz~20kHz)を考慮して設計されている. 2010.8.2 MATLAB応用講習会(A): 8 / 27 2.1 FFTによる周波数解析 演習問題(Sample4.m) 様々な周波数の正弦波を入力して,そのスペクトルをグラ フに表せ. 演習問題(Sample5.m) 基本周波数220[Hz]の実際のピアノの’La’の音声をFFT を用いて解析して,周波数構造を観察せよ. 2010.8.2 MATLAB応用講習会(A): 9 / 27 3 . 画像のディジタル信号処理 MATLAB環境におけるディジタル画像の基礎 164 163 163 163 165 165 164 163 163 163 165 163 162 161 161 161 160 159 159 160 157 156 156 157 159 一般的にグレースケール画像は8bit=256階調で量子化されている 2010.8.2 MATLAB応用講習会(A):10 / 27 3 . 画像のディジタル信号処理 分解 height MATLAB環境におけるディジタル画像の基礎 width MATLABで画像を読み込むと光の3原色である赤R・緑G・青BのRGB画像 として読み込まれる.各成分の値は,先ほどのグレースケール画像と同様に 8bitに量子化された値を持つ. 2010.8.2 MATLAB応用講習会(A):11 / 27 3 .1 画像のヒストグラム ヒストグラム 各値がいくつあるかを棒グラフに表したもので,横軸にデータ区間・縦軸に頻 度を表している. 1 2 3 4 3 1 2 4 2 3 3 4 4 4 5 5 左の行列データに対して,1の要素をもつ数は2つ.2の要素を持つ数は 3つ.3の要素を持つ数は4つ.4の要素を持つ数は5つ.6の要素を持つ 数は2つ.したがって,ヒストグラムは右の図のようになる. 2010.8.2 MATLAB応用講習会(A):12 / 27 3 .1 画像のヒストグラム 演習問題(Sample6.m) 次の3枚の画像のヒストグラムをMATLABで表示して, ヒストグラムによりコントラストを確かめる. 2010.8.2 MATLAB応用講習会(A):13 / 27 3 .2 エッジ検出 エッジ検出方法 ディジタル画像におけるエッジ検出は画像の濃度変化が大 きなところを検出することである.つまり,微係数の大きなと ころを探索すれば良い. x方向(水平方向)の微分 2010.8.2 MATLAB応用講習会(A):14 / 27 3 .2 エッジ検出 水平方向の微分(垂直方向にも同様に計算) 後方微分 前方微分 対象微分 処理を行う信号はディジタル(離散信号)なので微分は差分で行う. 2010.8.2 MATLAB応用講習会(A):15 / 27 3 .2 エッジ検出 微分フィルタ -1 1 0 後方微分 0 -1 1 前方微分 -1 0 1 対象微分(×1/2) 一般に使用される微分フィルタ 0 0 0 -1 0 1 0 0 0 2010.8.2 MATLAB応用講習会(A):16 / 27 3 .2 エッジ検出 ディジタル画像へのフィルタの適応 58 62 192 54 77 221 67 75 200 入力画像 167 出力画像 2010.8.2 MATLAB応用講習会(A):17 / 27 3 .2 エッジ検出 様々なフィルタの紹介(水平方向に対して) -1 0 1 -1 0 1 0 0 0 -1 0 1 -2 0 2 1 -2 1 -1 0 1 -1 0 1 0 0 0 Prewitt Filter Sobel Filter Laplacian Filter 他にも,垂直方向に対するフィルタや斜め方向等のフィルタが多数存在す る.また,色々な方向を組み合わせたフィルタもある. 2010.8.2 MATLAB応用講習会(A):18 / 27 3 .2 エッジ検出 演習問題(Sample7.m) 次の画像を色々なフィルタを用いてエッジ検出する. 2010.8.2 MATLAB応用講習会(A):19 / 27 3 .3 ノイズ除去 デジカメ(熱雑音や暗電流)や通信経路から信号にノイ ズ(雑音)がのることがある.これを除去することを考え る.ノイズにも色々な種類があるが,ここではパルス状 のSalt&Pepper Noise(ゴマ塩状雑音)の除去を行う. 粒粒の雑音 がのっている 2010.8.2 MATLAB応用講習会(A):20 / 27 3 .3 ノイズ除去 移動平均フィルタによるノイズ低減 1 1 1 1 1 1 1 1 1 注目画素と8近傍の値の平 均をとる. 2010.8.2 MATLAB応用講習会(A):21 / 27 3 .3 ノイズ除去 移動平均フィルタによるノイズ低減 入力画像 58 62 62 54 77 75 67 75 68 出力画像 66 9画素の平均値を新たな値とする 2010.8.2 MATLAB応用講習会(A):22 / 27 3 .3 ノイズ除去 メディアンフィルタによるノイズ低減 メディアンフィルタは外れ値に強い(ロバスト) パルス状の雑音は,いわば外れ値なのでメディアンフィルタはこの 雑音に強い. 12 15 23 14 18 17 16 255 12 処理領域において一つでも外 れた値があると,平均値等の処 理を取ると外れ値の影響大! 2010.8.2 MATLAB応用講習会(A):23 / 27 3 .3 ノイズ除去 メディアンフィルタによるノイズ低減 入力画像 12 15 23 14 18 12 17 16 255 出力画像 16 昇順もしくは降順に並べたときの中央の値を選択 {255, 23, 18, 17, 16, 15, 14, 12, 12} 2010.8.2 MATLAB応用講習会(A):24 / 27 3 .3 ノイズ除去 演習問題(Sample8.m) 次の画像を移動平均フィルタとメディアンフィルタを適応し て適応後の画像を表示し比較する. 2010.8.2 MATLAB応用講習会(A):25 / 27 最後に... 数値解析や音声・画像のディジタル信号処理のほんの一 部に触れてもらいました. MATLABを使用することで,CやFORTRAN,JAVAと いった他言語に比べて圧倒的にプログラミングが簡単に できることを実感して頂けましたか? まだまだ色々なことができるので,興味のある分野の問 題に対してMATLABを使って遊んでみて下さい.思って いる以上に様々な機能や利便性に気づくと思います. 2010.8.2 MATLAB応用講習会(A):26 / 27 最後に... MATLABで他に何ができるの? – – – – – – – – – – – 制御系解析・設計 データ解析・可視化 シミュレーション 金融解析 実験・計測 信号処理 音声解析 画像・動画像解析 統計解析 生物情報系の解析 データベースアクセス ‥‥‥ これらの内容はMATLABがサポートし ており,豊富な組み込み関数が用意さ れています.もちろん,これ以外でも自 分でプログラムを作成すればだいたい のことができます. 2010.8.2 MATLAB応用講習会(A):27 / 27
© Copyright 2024 ExpyDoc