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