« 連載GPSによるナビゲーション(36)秋月のGPSレシーバを組み立てる(3) | メイン | プチロボXケータイ操縦計画 ~その4 ファームウエアの制作(1)~ »

連載キットで作る(47) 音声スイッチの作成(2)

コンデンサ・マイクロフォンの入力信号の合成
 拍手や拍子木のような音声スイッチの入力信号のシミュレーションの方法を考えました。
 コンデンサ・マイクロフォンの容量の変化を関数の式、式の演算で表すことができます。また、使用できる関数も数式以外にif関数のような条件式も設定できます。

IF関数式
 if(x,y,z) x>0.5のとき xにyをセットし x>0.5でないときはxにzをセットします。
 この関数を使用して5msまで出力信号が抑制され、その後は正弦波の出力が生じる方法を考えます。
 次のif関数は、

 if(time*100,1,0)
 timeが5ms(0.005)を超えると time*100>0.5となるので 関数は 1となります。
 timeが0から5msまではtime*100<=0.5 となり 関数は0となります。
 サイン関数の中にこの条件関数式を組み込み、
   SIN(2*pi*1k*time*if(time*100,1,0)

とします。

kt470010.jpg

所定の時間までオン、その後オフ 
 次にif関数式を使用して、5ms+αまでオン、その後オフにする方法を考えます。αを5mとすると、(time-0.005)*100とします。0と1を入れ替えて次のような式になります。
    SIN(2*pi*1k*time*if((time-0.005)*100,0,1))
 シミュレーション結果は次のようになります。

 

kt470020.jpg二つを組み合わせる
 上記の二つのif関数式を組み合わせます。
  SIN(2*pi*1k*time*if(time*100,1,0)*if((time-0.005)*100,0,1))

 

kt470030.jpg開始時間を遅らせるには
 if関数の大小判別は0.5を基準にして変更できませんので、変数のほうの加減乗除で調整します。100倍を50倍に変更すると、次に示すように10msから開始します。

 

kt470040.jpg この場合、if文で関数の値を強制的に0にしています。データのつながりによって期待通りにならない場合があります。時間の設定を正弦波の半波長の整数倍にすることで上記のようにデータがつながります。

<神崎康宏>

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/1971

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1