「Maximaでノイズ解析(2)」の編集履歴(バックアップ)一覧に戻る
Maximaでノイズ解析(2) - (2006/03/06 (月) 13:32:41) のソース
<a href="../../naminami/pages/9.html" title= "Maximaでノイズ解析(1) (4d)">Maximaでノイズ解析(1)</a>ではオペアンプの出力にどのような電圧がでているのかを計算しました。<br> 今回は、これを、物理的にきちんと意味のあるスペクトル表示にしたいと思います。<br> <h2>パワースペクトル</h2> ここでパワースペクトルの定義を考えます。<br> パワースペクトルの定義は<br> <blockquote>S(ω)=lim(T → ∞) <X<sup>*</sup> X / T><br></blockquote> <img src="file:///C:/DOCUME%7E1/kawanami/LOCALS%7E1/Temp/moz-screenshot.jpg" alt=""><img src= "file:///C:/DOCUME%7E1/kawanami/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt= ""><img src= "file:///C:/DOCUME%7E1/kawanami/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt= "">でした。ここで、X=X(ω)は信号x(t)のフーリエ変換。Tはその測定時間。X<sup>*</sup>はXの複素共役でやんす。<・>はアンサンブル平均でしたよね?<br> ここで、例えばX(ω)が電圧のデータだった場合にはS(ω)の単位はV<sup>2</sup>/Hzとなるのですが、データシートなどには、しばしばこれのルートを取ったV/rHz(rHzはルートヘルツと読む)という単位が使われています。<br> <h3>無相関と仮定</h3> ここで、Xがいくつかの成分の重ねあわせで書かれている場合を考えます。<br> <blockquote> X=a<sub>1</sub>X<sub>1</sub>+a<sub>2</sub>X<sub>2</sub>+a<sub>3</sub>X<sub>3</sub>+a<sub>4</sub>X<sub>4</sub>+・・・<br> </blockquote> のように定義されている場合を考えます。パワースペクトルを計算すると<br> <blockquote> ST=a<sub>1</sub><sup>*</sup>a<sub>1</sub><X<sub>1</sub><sup>*</sup>X<sub>1</sub>>+a<sub>1</sub><sup>*</sup>a<sub>2</sub><X<sub>1</sub><sup>*</sup>X<sub>2</sub>>+a<sub>1</sub><sup>*</sup>a<sub>3</sub><X<sub>1</sub><sup>*</sup>X<sub>3</sub>>+・・・ ぎゃー<br> </blockquote> とおそろしく複雑になるので、とりあえず違う成分は無相関であると仮定します。<br> <blockquote> S<sub>ij</sub>=<X<sub>i</sub><sup>*</sup>X<sub>j</sub>>=0(i≠j)<br></blockquote> <h2>実際に計算</h2> では、オペアンプのノイズ解析に戻りましょう。上のようなパワースペクトルを計算する方法はいろいろあると思いますが、まぁ適当にやっていきましょう。<br> まず、<a href="../../naminami/pages/9.html" title= "Maximaでノイズ解析(1) (4d)">Maximaでノイズ解析(1)</a>の中で出てきたi1、i2、i3、i_n、e_nに関して次のように仮定してやればよろしいということはなんとなくわかります。<br> <blockquote> S<sub>1</sub>=<i<sub>1</sub><sup>*</sup>i<sub>1</sub>>;S<sub>2</sub>=<i<sub>2</sub><sup>*</sup>i<sub>2</sub>>;S<sub>3</sub>=<i<sub>3</sub><sup>*</sup>i<sub>3</sub>>;S<sub>i</sub>=<i_n<sup>*</sup>i_n>;S<sub>e</sub>=<e_n<sup>*</sup>e_n>;Sホニャララ =0<br> ST=a<sub>1</sub><sup>2</sup>S<sub>1</sub>+a<sub>2</sub><sup>2</sup>S<sub>2</sub>+a<sub>3</sub><sup>2</sup>S<sub>3</sub>+a<sub>i</sub><sup>2</sup>S<sub>i</sub>+a<sub>e</sub><sup>2</sup>S<sub>e</sub></blockquote> ここで、a<sub>-</sub>は実数であると仮定しました(抵抗しか使ってないし)。<br> 例のsubstを駆使すれば出来そうですが、さすがにちょっと面倒くさい。そこで、次のように考えます。とりあえず、v_outの式からi1の係数を引っ張り出す。係数を2乗する。それにs1を掛ける。i2、i3、i_n、e_nに関して同様の計算し、すべてを足し合わせるとSTになる・・・はず。<br> <h3>係数を引っ張り出す</h3> では係数を引っ張り出して見ましょう。係数は英語でcoefficientですから、coeff~という関数がありそうです。という希望を旨に抱き、<br> <blockquote>? coeff<br></blockquote> とinputと書かれているところに入力します。<br> <blockquote><span style="color: rgb(255, 0, 0);">(%i1)</span> <span style= "color: rgb(51, 51, 255);">? coeff;</span><br> 0: COEFF :(maxima.info)Definitions for Polynomials.<br> 1: LOGCONCOEFFP :Definitions for Logarithms.<br> 2: PCOEFF :Definitions for Affine.<br> 3: TAYLOR_ORDER_COEFFICIENTS :Definitions for Series.<br> <i><span style="color: rgb(255, 0, 0);">Enter space-separated numbers, ALL orNONE:</span></i><br></blockquote> なにやらありましたね。番号を押せと書いているので早速0と入力してください。<br> <blockquote><i><span style="color: rgb(255, 0, 0);">Enter space-separated numbers, ALL or NONE:</span></i> <span style= "color: rgb(51, 51, 255);">0;</span><br> Info from file C:/PROGRA~1/MAXIMA~1.1/info/maxima.info:<br> - Function: COEFF (exp, v, n)<br> obtains the coefficient of v**n in exp. n may be omitted if it is<br> 1. v may be an atom, or complete subexpression of exp e.g., X,<br> SIN(X), A[I+1], X+Y, etc. (In the last case the expression (X+Y)<br> should occur in exp). Sometimes it may be necessary to expand or<br> factor exp in order to make v^n explicit. This is not done<br> automatically by COEFF.<br> (%i1) COEFF(2*A*TAN(X)+TAN(X)+B=5*TAN(X)+3,TAN(X));<br> (%o1) 2 A + 1 = 5<br> (%i2) COEFF(Y+X*%E**X+1,X,0);<br> (%o2) Y + 1<br> <span style="color: rgb(153, 0, 0);">(%o1)</span> false<br></blockquote> <br> <br>