logo

logo

メールマガジン・新着情報一覧

  1. TOP
  2. メールマガジン・新着情報一覧
  3. A-0046. 振幅伝達率の計算 — TT

2015.03.11

A-0046. 振幅伝達率の計算 — TT

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ 
 
振幅伝達率の計算 
 
発行:エスオーエル株式会社 
https://www.sol-j.co.jp/ 
 
連載「X線CTで高精度寸法測定!?」 
2015年3月11日号 VOL.046 
 
平素は格別のお引き立てを賜り、厚く御礼申し上げます。 
X線CTスキャンによる精密測定やアプリケーション開発情報などをテーマに、 
無料にてメールマガジンを配信いたしております。 
 
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ 
 
 
 
「巨人の肩の上に立つ」という言葉には、含蓄があり、 
考えさせられることがしばしばあります。 
 
また、誤りを恐れて前に進むことを躊躇っていては、 
成果を得ることは難しいでしょう。 
 
今回は、伝えたいことが上手く伝わるか分かりませんが、 
挑戦してみます。 
 
 
 我々の仕事では、フーリエ変換が必須です。 
 でも、基準が難しく、どうやって理解度を確認したら良いのか悩みます。 
 テストして、合格点だから十分ということはないのです。 
 
 難しい計算ができなくてもよいので、概念を理解し、仕事で応用することが求められます。 
 概念の理解は、確認が難しく、本人ですら分かったつもりということがあります。 
 ジョン・サールの「中国語の部屋」という思考実験が思い出されます。 
 
 仕事で応用できて、成果を出すことができれば、会社としてはそれでよいのですが、 
 理解度の確認が必要なのは、現状を把握して、レベルアップを図るためです。 
 
 
さて、今回のメルマガで紹介しようと思っている計算は、 
  2010年6月10日号 VOL.018 フィルタの種類と特徴
に出てくる

  A1 = A0 exp( -π(aλ/λ0)^2 ) 

の導出です。 
 
2010年のメルマガでは、「答えを書いてしまうと」と言って、 
計算過程を省略しました。 
 
丁度良いので、メルマガ1回分の計算になるかと思い、 
もう一度計算を始めましたが、途中で手が止まりました。 
そして、5年前にどうして計算過程を省略したのか思い出しました。 
 
ちゃんと計算過程を全て書くと、とてもメルマガ1回分には収まらないと気づきました。 
 
そういう訳で、読み手のことを考えずに、手を進めて、どんな計算をしたのか載せます。 
そもそもこれまでに読み手のことを考えて分かり易い書き方をしたことがあるのか 
という声もありますが、気にせず書きます。 


----------

振幅 A0、波長λ0 の正弦波を 

  f(x) = A0 sin (2πx/λ0) 

と書き、ガウス関数(正規分布関数)を、 

  g(x) = 1/(aλ) exp( -π(x^2)/(aλ)^2 ) 

と書きます。 
畳み込み(コンボリューション)を計算すれば良いので、 

  f*g(x) = ∫f(u)g(x-u)du 

ですが、フーリエ変換した後に計算を進めて、最後に逆フーリエ変換します。 
つまり、F をフーリエ変換、R を逆フーリエ変換とすると、 

  f*g(x) = R(F(f*g))(x) = R(F(f)F(g))(x) 

と変形することができます。f(x)のフーリエ変換は比較的容易に計算できて、 

  F(f)(s) = A0(δ(s - 1/λ0) - δ(s + 1/λ0)) / (2i) 

になります。証明するには、

  F(exp(icx))(s) = δ(s - c/(2π))

を示します。 

次に、g(x)のフーリエ変換を頑張って計算すると、 

  F(g)(s) = exp( -π(aλs)^2 ) 

になります。xのガウス関数が sのガウス関数になっています。 
続いて、F(f)F(g) の逆フーリエ変換を実行します。 

  R(F(f)F(g))(x) 
   = (A0/2i)∫(δ(s - 1/λ0) - δ(s + 1/λ0)) exp(-π(aλs)^2) exp(2πixs) ds 
   = (A0/2i) ( exp(-π(aλ/λ0)^2) exp(2πix/λ0) - exp(-π(aλ/λ0)^2) exp(-2πix/λ0) ) 
   = A0 exp(-π(aλ/λ0)^2) sin(2πx/λ0) 

と計算することができます。 
従って、

  f(x) = A0 sin (2πx/λ0) 

が ガウシアンフィルタによって、 

  f*g(x) = A1 sin (2πx/λ0) 

になったとすると、 

  A1 = A0 exp( -π(aλ/λ0)^2 ) 

と書けることが分かりました。 

----------


一応、この程度の計算ができたので、自分のフーリエ変換に対する理解度は、 
ある一定のレベルにはあるのではないかと自己分析しますが、冒頭にも述べたように、 
計算できることと、概念の理解の深さは、関係はありますが、イコールではありません。 
 
分かったつもりで、思考停止することを自戒せねばなりません。 
 
計算は誰かがやったのを信じて、A1 = A0 exp( -π(aλ/λ0)^2 ) を公式として使う 
という手もあります。ただ、自分の性格上、自分で確かめないと気が済みません。 
 
では、どこまで確かめれば気が済むのでしょうか? 
想像すると気が遠くなります。 
δ関数を普通に使っていますが、シュワルツ超関数(ディストリビューション)の理論で 
不備が無いか確認していくことが必要です。 
 
 シュワルツ超関数を思い出すと、連想の連鎖が続きます。 
 おそらく、シュワルツ超関数という巨人の肩の上に立つことで満足(思考停止)してしまうと、 
 佐藤超関数(ハイパーファンクション)には辿り着かないのではないかと思います。 
 佐藤超関数と言えば、層のコホモロジーが思い出され、数学者グロタンディークを思い出します。 
 最近、グロタンディークさんはお亡くなりになられたそうで、 
 その話題を一緒にできる身近な人がいなくて少し寂しいです。 
 昔、数学者のアンドレ・ヴェイユが亡くなったときに、騒いでいた人が近くにいて、 
 「そんなに騒がなくても... それにしても伝説の人が昨日までまだ生きていたとは!」 
 という感想を持ったものですが、今はその騒いでいた人の気持ちが少し分かります。 
 
 そのうち、選択公理とかZFC系が気になりだして、 
 ゲーデルの不完全性定理に辿り着き、結局何を気にしていたんだろう 
 という無常(空というべきか)を感じるのかもしれません。 
 
全てを自分で確かめようとせず、ある程度納得のいくレベルで受け入れ、 
土台、あるいは仮説という形で認めて、前に進むことが必要そうです。 
どっちが前かという議論もありますが、少なくとも仕事で成果を出して、 
人の役に立つというのが良い方向性かと思います。 



さて、せっかくなので、振幅伝達率のグラフを描いてみます。 
例えば gnuplot というツールを使えば、 

  unset key 
  unset xtics 
  set ytics 25 
  set multiplot 
  set logscale x 
  set xr[0.0001: 10000000] 
  set samples 100000 
  plot (1-exp(-3.141592*(0.4697*2/(x))**2))*100 lt 1 
  plot (exp(-3.141592*(0.4697*2/(x))**2))*100 lt 2 
  unset multiplot 

と打つと、確認することができます。 


--
高野智暢


☆TomoScope専門サイトはこちら☆

一覧に戻る

お問い合わせ Contact

048-441-1133

お問合せフォーム