■2次伝達関数とフィルタ特性 (Widgetの遠隔コントロールの例)
上のWidget使用サンプルのように,ユーザーがWidgetに一度も触れずに別のフォームにだけアクセスしてもシミュレーションできます.
このWidgetをベースにすれば伝達関数を利用した全く別のWeb Applicationを提供することができます.
■Javascriptコード
<script type="text/javascript">
<!--
function sim(fc,q,ft){
var w=2*Math.PI*fc; //周波数Hzを角周波数rad/sに変換
if(w==0 || q==0){return;} //無記入の場合の保護
// α=
document.dform_okawadenshi.p1.value="1 " + (w/q) + " " + (w*w);
// β=
switch(ft){
case "1":
document.dform_okawadenshi.p2.value=w*w;
break;
case "2":
document.dform_okawadenshi.p2.value="1 0 0";
break;
case "3":
document.dform_okawadenshi.p2.value=(w/q) + " 0";
break;
case "4":
document.dform_okawadenshi.p2.value="1 0 " + (w*w);
}
// [Calculate]押下
document.dform_okawadenshi.submit();
}
//-->
</script>
■フォームの配置
<form>
カットオフ周波数
fc=<input type="text" name="fcutoff" value="1000">[Hz]
クオリティー・ファクタ
Q=<input type="text" name="qualityfacter" value="0.707">
フィルタ種類:
<select name="passtype">
<option value="1" selected>LPF</option>
<option value="2">HPF</option>
<option value="3">BPF</option>
<option value="4">BEF</option>
</select>
<hr size="1">
↓
<input type="button" value=" 計算 " onclick="sim(this.form.fcutoff.value,this.form.qualityfacter.value,this.form.passtype.value)">
</form>