授業内容
- 第2回小テスト
- 4 相関関数(教科書p.51-)
- 4.1 関数の類似性を測る
- 4.2 相互相関関数
- 実習14に取り組む
実習内容
実習17【10点】 実習16に対して,Cプログラムによってτの範囲を高次元化(τ=−36〜36)にしたときの相互相関関数値が得られるようにする.
そして,その得られた関数値を縦軸,横軸をτとした折れ線グラフをExcelで作成せよ.また,Cソースプログラムも示しなさい.
注)入力波形の与え方は,以下の相関関数プログラム例のようにmain()内でとりあえず与えて,プログラムが動作するかを確認できれば最低限OKです.ただ,今後の課題でプログラムを再利用しますので,時間があれば,外部からExcelデータで入力波形を与えられるようにしておく方が賢明です.提出期限 10/21(金)17:00
- プログラムソースは,e-Learningシステムに提出
- 得られた相互相関関数のグラフとプログラムリストをA4用紙に印刷し松尾のメールボックスに提出
Excelで求めた相互相関関数のように,間引きの大きい計算では,大まかな相関の変化はつかめるが,詳細な相互相関関数値が読み取れなかった.
しかしながら,正確な相互相関関数値を求めるには,Excelでは,かなりの労力を要する.
そこで,相関関数をCプログラムによって簡単に計算させるCソースプログラム例をe-Learningシステム上に示しておきます.
このプログラムを改良することで,相互相関関数値を瞬時に求めることができます.
なお,求められた相互相関関数値の出力をExcelによって,グラフ表示させる方法については,以下の手順を参考にしてください.
- ExcelデータをCプログラムに読み込ませるデータ形式に変換する
- UNIXにおけるCプログラムへExcelデータの引渡す -->Windowsの場合は,第10回講義内容のCプログラムを参照してExcelデータを読み込んでください.
- Cプログラムで求めた結果をExcelデータファイルとして出力する-->Windowsの場合は,CSV形式でファイルに結果を出力しExcelデータにしてください.
- 出力結果をWindowsで確認する
次に,上の処理を体験した後,今度はC言語によって2つの関数f(t)とg(t)の相関係数rを求めるプログラムを作成する.
まず,順番に以下の関数を作成していくことをお勧めする.
- ノルムを求める関数 double nol(double *data1,int samp)
- 内積を求める関数 double nai(double *data1,double *data2,int samp)
- 相関係数を求める関数 double soukan(double *data1,double *data2,int samp)
これらの関数でdouble *dataは,samp次元のサンプリングデータ値です.
関数名は,各自で自由につけてもらってかまわない.
プログラム例を以下に示しておくので参考にしてもらいたい.
ただし,ノルムが0であるときの処理はしていないので気をつけること.
連絡事項
- シラバスは,毎時間持って来てください.また,自己点検の欄の記入を忘れないように.
- 受験,就職関係で公欠するときは,メールで事前に松尾まで連絡してください.
- 第18回(10/17)は,マルチメディア演習室です.
〒639-1080 大和郡山市矢田町22
奈良工業高等専門学校 情報工学科
教授 松尾 賢一
E-mail:matsuo□info.nara-k.ac.jp
(巡回ロボット対策のため,□を@に変えてください)