ちょっとしたメモ。信号処理における自己相関関数について。
確率過程の場合は期待値を用いて$R_X(\tau)=E \left[ X(t)X(t-\tau) \right]$と定義されるが、このときの$t$について良く分かっていなかった。というか、今受けている講義において定義があんまり詳しく語られなかったので混乱していた。
これはどう扱うのかと言うと、結局文脈による。
まず定常過程においてはそもそもtによらない。当然だ。
問題は定常的でない過程で、この場合はRの引数として与える($R_{X}(t, \tau)=E \left[ X(t)X(t-\tau) \right]$のようにする)こともある。しかし$t$はスイープさせて平均をとるという場合もあるようで、自分の受けている講義ではこれだったらしい。つまり正確には、
\[ \displaystyle R_X(\tau)=\lim_{T \to \infty} \frac{1}{T} \int_{-T/2}^{T/2} E\left[ X(t)X(t-\tau) \right] dt\]
と定義する。
期待値の式なので確率変数以外動かないものと思っていたが、tも動かすようだ。
あるいは同じことだが、tは実数軸上で均一な確率変数のように解釈してもいいのかもしれない。そうすると期待値の式なのにtが動くのもまあ納得できる。
家に家族の買ったすごいH本が積んであったのでちょっと読んだ。
リストの後ろではなく先頭に要素を追加する方を重視しているのが面白いなと思った。大体の言語では後ろへの要素追加の方を重視している気がするので。読み進めて行くと、先頭への追加を特別視しているというよりパターンマッチで先頭から取り出すことを念頭にそういう設計になっているものと見える。
例えば
a=[2,3,4]
b=1:a
とすると b の値は [1,2,3,4] になるが、このコロンによる記法の目指すところはあまりそこではなく、例えば a = [1,2,3,4]
とあったときに、
first (x:_) = x
みたいな関数定義をして first a
とかやると1を取り出せる。さらに再帰を使って
mysum [] = 0
mysum (x:rem) = x + mysum rem
みたいな風にして総和を求めることもできる。要するにパターンマッチで最初の要素から取り崩していくための仕様らしい。そう考えるこの仕様も納得である。
パターンマッチは中々面白い。Rustでもパターンマッチは出てきたが、関数型言語ではパターンマッチは必須アイテムなのだろうか。
ガードというのもパターンマッチとは一応別枠であるらしい。パターンは束縛に焦点が当たっているのに対し、ガードは束縛の値に焦点が当たっているから一応棲み分けは出来ているんだろう。しかしif elseとは競合しないのだろうか。Pythonみたいな「同じことをするために2種類の記法で記述できるべきではない」みたいな思想にはまさしく抵触しそうだが。一応else/otherwiseが必須かどうかという違いはある。ガード+whereとif+letとかもどっちでも良さそう感があるが、棲み分けはあるのだろうか。
無限リストが定義できるというのは中々に驚いた。[1,3..]
とか書くだけで1,3,5,7,9,…みたいな無限に続く数列が定義できて、そっから更にtake 5 [1,3..]
とかやれば[1,3,5,7,9]
がもぎとれる。
あー、もしかしてだけど、Haskellのリストって基本的にデータというよりジェネレータ的なアレなのかな。PythonやC#でのyieldのアレみたいな。「リストを連結するときには最後まで走査されるのでデカいリストの連結に注意」みたいな断り書きがあったけど、そういう仕様の所為だと考えるとかなり納得が行く。もしかしてと思ってdropの仕様を再確認したけどやっぱり「先頭から落とす」仕様だった。やっぱりね。なんか色々と合点がいった。まだ最後まで読んでないので憶測だけど。
根本的に関数と定数は、引数が1個以上か0個かという違いしかない感じの仕様なのはイケてるなと思った。そういうの好きだよ。どんくらい役に立つ仕様なのかと言われると分かんないけど。
でも一般的なC系のプログラミング言語で変数が変更可能で関数が再定義不能なので、「同じものにしてます」という仕様はあらゆる変数(定数)が変更不能(再定義不能)であることに強い説得力を与えている気がする。
課題が片付いてきたので放心している。
課題が片付いたらもっと課題がやりたくなり、開発を進めたらもっと開発を進めたくなり、休んだらもっと休みたくなる。しかし現実には反対のことが求められていて、それが心を蝕んでいく。ままならない。
「Twitterなんて使いたいように使えばいい」というツイートを見たのだが、今の自分には「Twitterをこう使いたい」「Twitterでこうなりたい」みたいな欲求自体特に無いことに気付いた。それなり面白いものがたまに見れるからというのと、7年間使い続けたアカウントが勿体ないという気持ちだけでTwitterをやっている。
いいねは貰えば嬉しいけどバズったところでなんだという風に思っているし、気苦労が苦手なので特別誰かと繋がりたいという気持ちもない。自分をアピールするような実績も特に今のところないから書くことがないし、最近気づいたこととしては、自分は気持ちなどを言語化さえすれば割と満足する性質なようなので別にそれを無駄に目立つ上に140字制限のあるTwitterに置いておく理由もない。日報で十分だ。
こういう話こそTwitterに書くべきな気もするが、長文を投稿するのもTwitterらしくなさを感じるので。ああ、「こう使いたい」は無いけど「かく使うべきである」的なふわっとした美学くらいはあるな。なんか、Twitterに限らず道具は制作者の企図通りに使いたいみたいな。
Categories: 未分類