音声音響情報処理 其の二 20180417
はじめに
今回は,scilabを使って音声どうしの畳み込みまでやっていきました.理論的なことはあまり出てきませんでしたので,コードばかりのノートになると思いますが,悪しからず.
scilab操作
一応,今回の講義で使ったプログラムは以下の通り.
音の出力
t=(1:8000)/8000; //サンプリング周波数8kHz x=0.3*sin(2*%pi*1000*t); //角周波数1kHzのsin波を生成 plot(x(1:100)); //時刻100までの波形を出力 sound(x,8000); //サンプリングレート8kHzで再生
これなんですが,サンプリングレートを低くしたら低速で,高くしたら高速で再生されるようになります.
フーリエ変換
scilabには,fftという関数があります.これを使うと,離散フーリエ変換をしてくれるという仕組みになっています.ちなみに,離散フーリエ変換は以下のように記述できます.
ただし,離散フーリエ変換ではサンプル数(ここではのこと)が異なれば,1メモリが表す数が異なることにも注意したい.不確定性というらしい.
ということで,コードを書いていきましょう.
fx=fft(x); plot(20.*log10(abs(fx)));
人間の感覚は対数に対応しているので,このような式でプロット.また,単純な大きさ(絶対値)でプロットしているのは,虚数空間を無視するためです.
これでプロットされたのが次のグラフ.
さっきの「1メモリが変わる」というのもやってみましょうか.
fx=fft(x(1:4000)); plot(20.*log10(abs(fx)));
サンプル数を8000個から4000個に落とします.そうして出てきたのが次のグラフ.
どちらも,角周波数に設定した1kHzにスペクトルのピークが出ているのですが,前者は横軸が8000,後者は横軸が4000であることが分かります.サンプル数を半分に落とした分,横軸の1メモリに対応する値が2倍になったことがここからも確認できますね.
そのほか,グラフにピーク値が二つあるのはサンプリング定理によるもの.サンプリング周波数の半分(エイリアス)で折り返されるというあれですね.
音の足し合わせ
音は線形なので,足し合わすことができます.ということでコードを.
t=(1:8000)/8000; //サンプリング周波数8kHz x1=0.3*sin(2*%pi*1000*t); x2=0.3*sin(2*%pi*3000*t); x3=x1+x2; //足し合わせる sound(x3,8000); //音を聞く fx=fft(x3); //フーリエ変換 plot(20.*log10(abs(fx))); //プロット
出てきたグラフは次の通り.
きれいに1kHzと3kHzの場所にピークが来てますね.面白い.今度は,x2の方を半分にして足し合わせてみます.
x3=x1+0.5*x2; //足し合わせる sound(x3,8000); //音を聞く fx=fft(x3); //フーリエ変換 plot(20.*log10(abs(fx))); //プロット
出てきたグラフはこんな感じ.
3kHzの方だけピーク値が低いです.分かりにくいという人のために拡大画像を.
こんな感じ.音の大きさが半分になると,大体6dBだけピークが低くなることが分かっています.これは,デシベルの計算をみても理解できます.
知的学習システム 其の二 20180416
はじめに
今回は数理的準備について一通りという感じでした.最後に少しだけガウス分布について出てきましたが,学部2年の「確率論」「統計学」の範疇です.端的に書いていきますのでよろしくお願いいたします.
あと,提供されている資料は拡張子なしpdfファイルとしてダウンロードされるので,拡張子つけて閲覧してねということも連絡事項.自分はこれにはまって悶々としてしまっていた.最終的に連絡して解決.今に至るというわけです.
確立
わかりにくかったら2次元マトリックスにしてみろ
条件付確率・周辺化など,ぱっと見では理解しにくいようなもの,特に多次元になったときにはもうお手上げ...なんて物もとりあえずマトリックスに落とし込んで理解しろとのこと.確率の基本的な原理は「数え上げ」なので,とりあえず2次元で考えていきましょうとのことでした.
例えば,次のような確率変数からなる場合を考えてみる.
これをマトリックスに落とし込んでいくと,次のような形になる.
合計回施行した結果をとる回数をとしたとき,同時確立と周辺確立を考えていく.次のように表すことができる.
周辺確率に関しては,点じゃなくて面でみるといった感じですかね.あくまでイメージですけど.
条件付確率については,母数をではなく,確定値をとりうる状態数にすることで分かりやすくなります.つまり,
こんな感じですね.いわゆる乗法定理と呼ばれるものです.
では,いったいなぜこんな条件付確率が必要なのか.データの性質を最も直接的に理解できる方法は散布図を見ることです.しかし,多変量になればなるほど多次元空間を把握しなければならないため散布図で理解することは困難になります.そこで条件付確率を使い,多変数の分布をみることによりデータの特徴が把握できるというわけです.
ベイズの定理
データから結論を導くために,結論から得られたデータを使う...説明が難しいですね.「原因→結果」の関係を求める際に「結果→原因」の関係を使うことができる,そんな関係式.導出自体はとても簡単で.
したがって,
みたいな感じ.
事前確率・事後確率・尤度
結果が分かる前段階で得られる確率のことを「事前確率」.結果が得られた後の原因の選択確立のことを「事後確率」と呼んでいる.例えば箱から果物をとるといった場合,箱の選択確率が事前確率で,果物が確定した後から箱の選択確率を計算したものは事後確率になる.また,箱が確定したうえで果物の選択確率のことを「尤度」と呼ぶ.尤度は,得られたデータの確からしさを示す値で,確率のようにふるまうが実質確率ではないらしい.