RFワールドの著者の中本です
質問にお答えします。
>1.コメントにある、このパケット内で最大の〜 とありますが、
>フィルターを通した後の帯域(例 BW+/-1.5kHz)内での最大信号でしょうか、
>又はスペクトラム表示範囲(例 +/-8kHz)内での最大信号でしょうか?
これはフィルタを通った後の信号の最大振幅を求めています。
もし帯域全体で最もレベルの高い信号を表示してしまうと
バンド内に存在するローカル局が強力な電波をは送信した際に
いま受信している局とは無関係にSメータが振り切ってしまうため
フィルタを通した後のレベルを表示すべきだと思います。
>2.Sメーター用信号強度を得る方法として、他にスペクトラム表示の
>カーソル付近の信号を何点か抽出して平均化するという方法も
>考えていますが、他にも方法があったらアドバイスいただければ
>幸いです。
上記の理由からスペクトラム全体を見渡した受信レベル表示と
Sメータの表示は別物として考えた方が良いと思います。
ちなみにAGCの処理はフィルタを通した後の信号レベルで行っています。
これは近接した強力な局が存在してもいま受信している微弱な局にあわせて
ゲインを最大限にするための処理です。
スペクトラム全体レベル表示の場合には全体のレベルの平均値を
毎回の表示に際して計算し、たとえば赤い横線を描くような処理が
考えられますが、そのまま素直に実装するとあまりに赤線の上下が
激しくなってとても見にくくなってしまします。
一般にSメータをはじめとする人間に対する表示動作には必ず時定数が
必要です。レベルが大きくなる際に瞬時に上げてしかし下がる際には
ジワリと下げる処理をしないと人間が違和感を感じますのでご注意ください。
こうした処理はAGCの処理と共通ですのでSdrStudyのAGCの処理を参考に
してはいかがでしょうか?SdrStudyのAGCの処理は上記の時定数の処理を
移動平均法を用いて実現していますのでソースを読み込んでみて下さい。