DirectX EmptyProjectを使う その21 (simpleAGCの改良等) 1.いや、参りました、 何に? if(DATA->count >= DATA->hold_time
|| DATA->peak_output >
DATA->prev_output) DATA->prev_output=DATA->diff*(float)DATA->count; DATA->gain=0.3f/DATA->rms;
DATA->count--;
if(DATA->count<=0) else
dBm表示と、dBuEMFの、2通りの表示方法を選択できる。
今、PM7:00ですが、ノイズばっかりで、静か。Soft66DB2のバンドパスフィルタって、優秀ですね。
peak値に、こだわっておりましたら、えらい目にあいました。
前節のsimpleAGCのプログラムでは、
AGCを掛けているにも拘わらず、SG出力の振幅が、一定しないのです.....
本来、以下のように、ならないと、あかんはずです。
色々、やってみましたが、結論として
peak値で、その都度、振幅を制御するには、無理がある事がわかりました。
つまり、gainを一定にする事が出来ませんでした。
ですので
AGCの制御は、peak値で行いますが、
gainの値を決めるのは、RMS(root
mean
square)を使って、root
2 を、掛けました。
そうしないと、不安定なpeak値から直接、安定したgainの値を、決めることができないのです。
//peak
detect
for(i=0;i<Capture_Data_Length;i++)
{
DATA->peak_output=max(DATA->peak_output,DATA->output[i]);//peak
DATA->rms
+=pow(DATA->output[i],2);//RMS
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//AGC
if(DATA->AGC)
{
{
DATA->count=DATA->hold_time;
DATA->diff=DATA->peak_output/(float)DATA->hold_time;
//DATA->hold_timeは、一定の値。CW,SSBで、異なる。sampling周波数でも異なる。
}
//DATA->rmsは、必ず DATA->peak_outputより、大きくする
DATA->rms=1.43f*sqrt(DATA->rms/Capture_Data_Length);//
RMS to peak
//limit upper gain
if(DATA->gain>DATA->hold_lower_value)
DATA->gain=DATA->hold_lower_value;
DATA->count=DATA->hold_time;
}
{ //non AGC
........
これでも、fps(frames
per
second)は、46以上、あります。(時々、ずっこける...)
このプログラムは、前節のプログラムと、大きく変わりませんが、考え方の違いがあります。
DATA->diffは、Sメータの動きを、アナログらしく見せるためでしか、ありません。
全て、peak値と、RMSで、決めているのです。
gainは、ディジタル的に、瞬時に変わっているのです。
2.低域の、cutoff周波数を変える試みは、失敗也
LPFの低域のcutoff周波数を、notchの手法を使って、変えられるように、してみたのですが、NG。
cutoff周波数付近で、ノイズが出て駄目です。
原因は、解っています。
私のプログラムでは、cutoff付近で、信号が下がった時、gainが、信号を上げようとして、不安定になるのです。
これを解消する手を、まだ、思いつきませんねん。
いや、違った。AGCを、offにしても、この現象が生じます。
と、言う事は、LPFに問題があるのか、 はて?
down
sampling して、LPFを、もっと鋭い特性にする必要があるのか.......
3.ウェーブレットって、何?
「ウェーブレットは信号の時間と周波数の関係を、2次元的にダイナミックに解析するものです。」 (最新ウェーブレット実践講座 softbank
creative co.刊)
なんか、凄いですよ。よう、わからんけど......
ガボール・ウェーブレットによる
連続ウェーブレット変換解析ツール WaveGabor.exe
http://www.cmagazine.jp/books/wavelet/index.html に、sampleプログラムあります。
「最新ウェーブレット実践講座」、この本しか、ないでしょ。 中々進まないです....
いつかは、使えるようになりたい.....
H.19.12.6