第10章 Mathematicaによる数式処理(U)

 

1.線形振動

1.1 連成振り子

 図10.1のような質量mの二つの振り子がばね定数k1k2でつながっている系を考えよう. x(t)y(t)は釣り合いの位置からの変位を示すとする.振り子の運動方程式は,

             

             

である.

             

                             k1                            k2                                     k1

                                   m                      m

 

図10.1 連成振り子

 

k1=1.0, k2=0.1で,初期条件を適当に与え,これを解くと,図10.2が得られる.

 

                      

図10.2 連成振り子の微分方程式

 この振り子の動きをグラフにすると図10.3になる.

             

              図10.3 二つの振り子の振動

 

1.2 減衰振動

 ばね定数kのばねの先端に結ばれた質量mの物体の運動は単振動で,

             

と表される.この物体が,粘性抵抗を受けていると,その運動方程式は、

             

と書ける.

 

課題1:上記の微分方程式を解き,様々な条件でどのような振動をするか図示せよ.

 

1.3 強制振動

 上記の振動に周期的な強制力が加わると,

             

となる.周期的な解を仮定して振動振幅0を求める.

             

              図10.4 強制振動の解

 

様々な,抵抗定数に対する振動振幅(これを共振曲線と言う)を求めよう.

 

             

図10.5 共振曲線の振幅部と位相部

 

 上記のプログラムにおいて,

              Plot[Release[Table[Abs[x0 /. sol[[1]] /. const, {c,0.1, 5, 0.5}]],

{omg, 0, 10}]

ReleaseEvaluateと同様に,Tableの内容Absを実行し,comgの変化に対する値を計算する.

 

課題2:周波数ωに対するx0の実部と虚部の応答を種々のパラメータcに対して描け.

 

2.電気回路の応答

 図10.6の回路を考えよう.

                                           L              C

 

 


               Vi                                          R                   V0

 

 

              図10.6 電気回路

 

時間に依存する電流iと電圧はvは,

             

の様になり,周波数ωの交流に対する解は,

             

とおいて,図10.7の様に解ける.ここで,この回路の伝達関数は,

             

と書ける.この時のステップ応答は,

             

              図10.7 電子回路の解

 

 周波数応答は,対数‐対数表示することが多い.Mathematicaでは,LogLinearPlotという関数が準備されている.これを呼び出すには,

             

とすれば良い.

             

             

              図10.8 電子回路の周波数応答

 

3.音声の周波数応答

 信号処理の一例として,音声のスペクトルを計算してみよう.Windowsでは,音声入力の応用ソフトウエアとして,サウンドレコーダが用意されている.ツールバーのスタート,プログラム,アクセサリ、エンターテインメントを順に開くと,サウンドレコーダが現れる.

             

              図10.9 サウンドレコーダ

 サウンドレコーダを使って音声をファイルに記録することが出来る.データは、1標本が1バイトのバイナリ形式でファイルに記録することが出来る.これを読み出し,プロットする.

             

              図10.10 音声の入力

 このプロットによると音声は1267バイトのデータに変換されていることがわかる.音声信号のスペクトルを計算するために1024バイトを取り出している.

 スペクトル計算と、Hammingウインドウの関数をまず定義しておこう.離散フーリエ変換を計算する関数Fourierを使っている.この関数は,複素数のリストからなるデータを離散フーリエ変換して,再びリストとして複素スペクトルを返す.パワースペクトルは,この絶対値の2乗である.

             

              図10.11 パワースペクトルと窓関数の定義

 

             

図10.12 音声信号のスペクトル

 

 実数データに対するフーリエ変換は,エルミート的である(実部が偶関数で、虚部が奇関数)ことに注意すると,N個の標本点のデータのパワースペクトル(スペクトルの絶対値の2乗)を知るには,N/2のデータで十分である.