2019年11月08日

FFTというものがありましてん・・・・ふーーん

(1)高速フーリエ変換 E.PRAN 今井・宮川訳 科学技術出版 1978年 Fortranプログラムが合ったのでC言語に書き換え

(2)CAIディジタル信号処理コロナ社 2000年頃 BASICプログラムがあったのでC言語に書き換え

(3)C言語による科学技術計算 小池・CQ出版 1990年頃 C言語によるプログラムがあったので写経

(4) アルゴリズム辞典・奥村 技評 第18版 1998年頃、サイトからC言語FFTをダウンロード


と、いくつか動かしてみたので写経がうまくなったりして(笑)

データ数 65536で比較して(2),(3),(4)は同等で(1)が一番遅い。5倍ぐらい違う。これの原因はFFTのアルゴリズムにある・・・・はずだが、今の所、違いはShufflingの処理だなあ。一括して実行するか、毎回実行するか。

2のべき乗計算でpow(2,4)っての使うよりはShift Leftが速いと体験したである。他にCの配列を使うのかポインターでやるのか・・・違いが出るかどうか知らんです。
  奥村アルゴリズム辞典では三角関数もテーブル作ってたな。それで高速になるのかどうか知らないが。
まー上の本は40年昔の、30年ぐらい昔の・・・・なんでして。当時のパソコンの性能と今のパソコンの性能は雲泥の差ですからね。
こんなに高速になったらFFT使わなくてもいいんじゃ?  DFTを単純に計算しても相当に速いのだぜ。。。つーか、データ数が128とかだったらDFTもFFTも大差はなかろうよ。うむうむ。

で、実はFFTは大事なのであるね。それ素晴らしいあるよ。現在の電子機器、特に通信・放送は符号理論とデジタル信号処理のカタマリなのである。デジタル信号処理の根幹はFFTである。これは実は単純に時間軸と周波数軸の行き来をするという用途だけではないのである。
OFDMではIFFTのアルゴリズムが使えるのである。高速計算は大事なのである。なんちて。

さてと、20年から40年ぐらい昔の本を読んだので次は10年ぐらい昔から現在までの本を探す。ディジタル信号処理技術を知るとね、ド素人相手に知ったか出来てたのしー・・・といいのにぃ。

  蛇足だが、65536ぐらいのデータになると数字がずらずらと出ても見る気もしない。グラフ化が大事だ。というか、必須だ。そしてグラフと言えば・・・C言語にグラフィクスライブラリって有名なのは何よおぉーって考えることもなく。gnuplotを使えば良いである。
データはファイルに落とし、そのファイルをgnuplotに食わせる。これ、簡単で便利。

ちなみにPython の Scipy のfft()は上のC言語のFFTよりも高速である。まー上のFFTのブログラムはアルゴリズム理解のためであって高速化を意図してはいないらしいが。
ScipyのfftはCかFortranか、どっちかで書かれたろ。最適化されてモジュールになったんだろねのね、と想像する。

まー言いたいことはPythonは遅いという一般論があるがモジュールは高速なのだぜ。。てへてへ。もちろん、Pythonの四則演算でFFTのプログラムを書いたら遅いの。
Pythonではグラフ化はmatplotlibを使うと大変便利ですね。

こういうのがタダで使えるって現在は・・・・しあわせすぎてこわい (笑)

posted by toinohni at 11:18| 東京 ☀| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2019年11月06日

素粒子

加速器・衝突実験機などで。高エネルギーの陽子を資料にぶつけて。何がしかの粒子が出てくる。何種類も。。。。という場合に、その粒子は資料の原子核に潜んでいたものなのか、あるいは衝突の際のショックで生み出されたものなのか?
宇宙線が大気上空で空気分子に衝突して壊す・・・その際に粒子がいくつか出てくる・・・ような事を入門書に書いてあった。宇宙線はほとんどが高速の陽子であり高エネルギーである。
分子を壊す・・・・ということは分子の原子核を壊すという事か。だとすると、原子核って陽子と中性子で構成されていると思っているのだが、他の粒子が出てくるということは陽子、中性子意外の粒子も潜んでいるってことなのか。
ワケワカメ。

これは実験装置で発見された数々の粒子にしても同様に。加速器で陽子を加速して高エネルギー状態にして資料にぶつけて壊す。すると粒子がいろいろ出てくる。それらは資料に潜んでいたものなのか、衝突の際のショックで生み出されたものなのか。
衝突の前後でエネルギーは保存されるというから、衝突前と衝突後で粒子の数は違うのだけどエネルギーは同じなんだな・・・ふーーん。そうなの。

で、新粒子は新たに生み出されたものなのか、潜んでいたものが衝突のショックで出てきたのか。うむうむ。考えたら眠れなくなるから考えないようにしよう。

生み出されたにしては寿命がちょ~短いのな。なんで長生きせーへんの?  ワケワカメ。

40年代から50年代、60年代と実験装置によって発見された新粒子は何百にも及ぶのだった。それらはハドロン、レプトンと分類され。ハドロンはバリオンとメソンに分類され・・・・
それらを説明するためには一つ階層を降りてだね、くゃークなるものを考えるとツジツマがあうとか。
そういう話の前に、発見された粒子は潜んでいたものなのか、衝突のショックで出てきただけのものなのか。そもそも寿命がそんなに短いのはなんでやねん。
考えたらダメだ。眠れなくなる(笑)

posted by toinohni at 21:05| 東京 ☀| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする