- この内容は
- z変換とラプラス変換で周波数特性を得るjavascriptに統一されました:
- 旧ソースファイル sFuncMk.js
- 呼出例script
- グラフ描画部PaintLogLev.js
処理したい式
f0.Qを設定値として 演算子s の以下の式から周波数fへの応答POW/RADを得る
s2はs^2の意味 | |
---|---|
HPF1 | w0=2PI*f0;s/(s+w0) |
LPF1 | w0=2PI*f0;w0/(s+w0) |
APF1 | w0=2PI*f0;(s-w0)/(s+w0) |
HPF2 | w0=2PI*f0;w2=w0*w0;s2/((w2+w0/Q*s+s2) |
LPF2 | w0=2PI*f0;w2=w0*w0;w2/(w2+w0/Q*s+s2) |
BPF2 | w0=2PI*f0;w2=w0*w0;w0/Q*s/(w2+w0/Q*s+s2) |
BEF2 | w0=2PI*f0;w2=w0*w0;(s2+w2)/(w2+w0/Q*s+s2) |
APF2 | w0=2PI*f0;w2=w0*w0;(w2-w0/Q*s+s2)/(w2+w0/Q*s+s2) |
方針
- Zは複素数だが sは虚数なので数式を手作業で変換するのは難しくはないが、せっかくだから数式を伝達関数の数式に変換するツールを作ってみる。
- z変換で周波数特性を得るjavascript作成奮戦記のようにPascalで作らず その作成関数を変更する事でjavaScriptで作ってみる
- 前回は数式から定数を全部数値にしその計算も内部でしていた。変数は変数のまま数式に置換してゆく。
- 前回はZのべき乗を配列にしていたが今回はsをjw s2を-w*wと置換してゆく
機能
- 入力数式:
s1 s2 s3 s4 はs s^2 s^3 s^4と解釈され s5はs*5になるかな、まあ使わないだろうから PIと2PIは定数に置換する 変数名は英字1文字+数字 (snとcnとfは使えないけど) 未定義の変数名を使った場合は引数として変数名を渡す方針 *は省略可能な場合がある
- 使い方
var sfunc={f0:500,Q:0.7, pg:Function("fi","f0","Q",sfResponseMk("w0=2PI*f0;w2=w0*w0;s2/((w2+w0/Q*s+s2)")), frqResponse:function(f){this.pg(f , this.f0 , this.Q); } }; のように呼びだすと sfuncをPaintLogLevのgetpow配列の要素として渡せる
プライバシーポリシー本文は日本語以外に翻訳禁止