ディジタルAGC事始め



 1. 7MHz DXを受信
     
      TI4 ( コスタリカ ) から、7MHzで、強力な電波が.....19:45 05/Apr  2007 

        2回目の "no problem "で、 擬似AGCを掛ける
        ↑click here
 
2 AGCと言えば...

     入力が大きくなれば、出力を小さくして、入力信号のレベルが低くなれば、出力を大きくするには.....

     確か、そんな関数があったような...  思い出した!

     exp(-x)が、確かに、そんな関数でしたね。

     そんで、最初のグラフは、 exp(-x)、exp(-x/2)、exp(-x/4)の各関数のグラフです。

     exp(-x)では、減衰が大きすぎて、聞こえなくなってしまいますね。

     次に、この関数を、もう少し変形します。

                      
 

     exp(-x)では、減衰が大きすぎるので、試しに、 exp(-x/4)

     そして、ここに、0.5,1.5 を加えて、 exp(0.5-x/4)、exp(1.5-x/4)

     こうすると、レベルの低い入力を、増幅できるのです。

     しかし、この関数では、ダイナミックレンジが狭すぎるので、今後の課題です。

     私は、今の所 exp(0.64-x/1.4) に、採っています。

 

 
     
     これは、擬似AGCです。

     入力の音声に途切れがあると、その部分だけ、雑音が入ってきます。

     正確に AGCを掛ける為には

          48KHzサンプリングでは、 1mSは、48サンプルに相当する

          110mSで、AGCを効かすには、 48*110 サンプル後に、AGCを掛ける

     と、言う事をする必要が、あります。

     まだ、そこまで、やってませんねんわ....
 
3. consoleアプリケーションを、 window ベースに移植完了

     
 
     さあ、このwindowに、DirectXで、描きましょうか?

     それとも、 DirectXベースで、全て、描きましょうか?

   


     以前 C#を使って、 DirectXで描いたスペアナは、流用しないつもりです。
 
 

   H.19.4.13