この解説は、Skyworks (Silicon Labs) Si47XX PROGRAMMING GUIDE AN332 を基に、Google AI (Gemini) の協力を得て作成しています。
1 プロパティ 概要
SSB_IF_AGC_RELEASE_RATE(プロパティID: 0x3703)
IF AGCの解除レート(release rate)を設定します。値を大きくすると解除は遅くなり、小さくすると速くなります。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、POWERUPモードでのみ設定または読み出しが可能です。デフォルト値は140(約40 dB/s)です。
AGC Release Rate(dB/s) = 5600 / RELEASE
「5600」という公称値は、Silicon Labs社のAMアンテナダミーおよびSi474x EVBリファレンスデザインに基づいています。
ソースインピーダンスや設計変更によって変動する可能性があります。ほとんどのシステムでは、正確な値は重要ではありません。
ただし、異なるソースインピーダンスや設計に合わせて計算を行う場合は、以下の手順に従ってください。
1. 目的のソースインピーダンスでアンテナ入力に信号を供給します(アンテナまたはアンテナダミーを使用)。
2. AGCインデックスが19から20に変化するまでRFレベルを上げます。インデックスが19のときの最後のRFレベルを記録します。
3. AGCインデックスが39に達するまでRFレベルを上げます。インデックスが39のときのRFレベルを記録します。
4. レート計算式の「5600」を「(RF39 – RF19) / 0.00667」に置き換えます。
デフォルト: 0x008C
ステップ: 4
範囲: 4~248
IF AGCの解除レート(release rate)を設定します。値を大きくすると解除は遅くなり、小さくすると速くなります。
次のコマンドを送信しても安全な状態になると、CTSビット(およびオプションの割り込み)がセットされます。
このプロパティは、POWERUPモードでのみ設定または読み出しが可能です。デフォルト値は140(約40 dB/s)です。
AGC Release Rate(dB/s) = 5600 / RELEASE
「5600」という公称値は、Silicon Labs社のAMアンテナダミーおよびSi474x EVBリファレンスデザインに基づいています。
ソースインピーダンスや設計変更によって変動する可能性があります。ほとんどのシステムでは、正確な値は重要ではありません。
ただし、異なるソースインピーダンスや設計に合わせて計算を行う場合は、以下の手順に従ってください。
1. 目的のソースインピーダンスでアンテナ入力に信号を供給します(アンテナまたはアンテナダミーを使用)。
2. AGCインデックスが19から20に変化するまでRFレベルを上げます。インデックスが19のときの最後のRFレベルを記録します。
3. AGCインデックスが39に達するまでRFレベルを上げます。インデックスが39のときのRFレベルを記録します。
4. レート計算式の「5600」を「(RF39 – RF19) / 0.00667」に置き換えます。
デフォルト: 0x008C
ステップ: 4
範囲: 4~248
2 プロパティ
2.1 プロパティリスト
| Bit | 上位バイト PROPH | 下位バイト PROPL | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | RELEASE | |||||||
| Bit | Name | Function |
|---|---|---|
| 7:0 | RELEASE |
2.2 プロパティ
本プロパティは、SSBモードにおいて、中間周波数(IF)ステージおよびデジタル可変ゲインアンプ(PGA)段で一度絞り込まれたAGC(自動ゲイン制御)のゲインを、
信号が弱くなった、または消失した際に「どれくらい素早く元の適正な増幅状態に戻すか」という復帰速度(リリース・タイム)を設定します。
動作メカニズム:
既定値:
動作メカニズム:
強力な信号が入力されてIFアタック(0x3702)が機能したあと、目的チャネル内の電界強度が低下した際に、IFステージのデジタルゲインを復帰させる時定数を決定します。
既定値:
0x0018(10進数で24、パッチの内部基準単位で 24 ms 相当)。
2.2.1 RELEASE
目的と概要:
目的チャネル内の強力な信号(または過渡ノイズ)が去ったあとの、IFステージにおけるゲイン復帰速度をミリ秒(ms)相当のステップで設定するためのフィールドです。
AN332に明記されない目的と解説:
標準マニュアル(AN332)には未記載のパッチ専用レジスタです。
内部のDSPファームウェアパッチにおける隠れた挙動として、このIF段のリリース速度は「オーディオ出力段のバックグラウンドノイズの『うねり(ポンピング)』およびデジタル歪みのバランス調整」に直結しています。
RF AGCリリース(0x3701)がアンテナ全体の広帯域なフェージングによる音量変動をカバーするのに対し、 IF AGCリリースは「チャネルフィルタで急峻に切り出された音声(キャリアのないSSB信号)の切れ目」そのものにミリ秒単位で追従します。
そのため、この値をデータシートの公称値のみを頼りに極端に短く(例: 5msなど)設定してしまうと、音声の音素(言葉のわずかな合間)ごとにIF PGAのゲインが超高速で最大値まで戻ろうとします。
その結果、復調音声の後ろで「シュワシュワ」「サー、サー」というデジタル特有の背景雑音が激しく息つき(ポンピング現象)を起こし、聴感を著しく損ねる原因となります。
内部のDSPファームウェアパッチにおける隠れた挙動として、このIF段のリリース速度は「オーディオ出力段のバックグラウンドノイズの『うねり(ポンピング)』およびデジタル歪みのバランス調整」に直結しています。
RF AGCリリース(0x3701)がアンテナ全体の広帯域なフェージングによる音量変動をカバーするのに対し、 IF AGCリリースは「チャネルフィルタで急峻に切り出された音声(キャリアのないSSB信号)の切れ目」そのものにミリ秒単位で追従します。
そのため、この値をデータシートの公称値のみを頼りに極端に短く(例: 5msなど)設定してしまうと、音声の音素(言葉のわずかな合間)ごとにIF PGAのゲインが超高速で最大値まで戻ろうとします。
その結果、復調音声の後ろで「シュワシュワ」「サー、サー」というデジタル特有の背景雑音が激しく息つき(ポンピング現象)を起こし、聴感を著しく損ねる原因となります。
3 応答パラメータ
プロパティを設定する SET_PROPERTY コマンド、または読み出す GET_PROPERTY コマンドを実行した際、Si4735は1バイトのステータスバイト(STATUS)を応答パラメータとして返します。
STATUS (Status Byte)[目的と概要]:
送信されたIF AGCリリース定数がDSPに正しく受理され、内部のIFゲイン制御ループのタイマーと同期が取れたかを通知するステータスレジスタです。
STATUS (Status Byte)[目的と概要]:
送信されたIF AGCリリース定数がDSPに正しく受理され、内部のIFゲイン制御ループのタイマーと同期が取れたかを通知するステータスレジスタです。
CTS (Clear to Send): 1 の場合、IFリリース定数の書き込みと内部テーブルの更新が完了し、次のコマンドを受け入れ可能であることを示します。
ERR (Error): 1 の場合、SSBパッチが完全にロード・起動していない状態でこのプロパティを叩いたか、ハードウェアの演算限界を超える値を書き込もうとした際のエラーをホストMCUに通知します。
ERR (Error): 1 の場合、SSBパッチが完全にロード・起動していない状態でこのプロパティを叩いたか、ハードウェアの演算限界を超える値を書き込もうとした際のエラーをホストMCUに通知します。
4 その他(Google AI (Gemini) の見解)
4.1 コマンドの重要ステップと注意事項
IFアタックレート(0x3702)との比率関係の維持:
AGCの制御ループを安定させるための絶対条件として、「IFアタックタイム(0x3702) ≪ IFリリースタイム(0x3703)」の関係(通常は数倍〜数十倍以上の差)を必ず維持してください。
デフォルトの「アタック4ms / リリース24ms」の比率を崩してリリースを極端に短くすると、ゲイン制御ループが内部でハンチング(発振)を起こし、受信音声全体が激しく歪むか、または震えるような音になる原因になります。
デフォルトの「アタック4ms / リリース24ms」の比率を崩してリリースを極端に短くすると、ゲイン制御ループが内部でハンチング(発振)を起こし、受信音声全体が激しく歪むか、または震えるような音になる原因になります。
4.2 もう少し踏み込んだ応用展開
RF AGCリリース(0x3701)との『2段階時定数(デュアルタイムコンスタント)』の連携設計:
本格的な通信型受信機のような、ノイズが少なく明瞭度の高いSSB受信環境を作るため、RF段とIF段のリリース速度に意図的な「段差」を設けるアルゴリズムが非常に有効です。 設計例(SSB音声優先):
効果:
本格的な通信型受信機のような、ノイズが少なく明瞭度の高いSSB受信環境を作るため、RF段とIF段のリリース速度に意図的な「段差」を設けるアルゴリズムが非常に有効です。 設計例(SSB音声優先):
RF AGCリリース(0x3701)を 80ms〜100ms と長めに設定してアンテナ側のゲインをあらかじめ低めに安定(ホールド)させつつ、本プロパティ 0x3703(IF AGCリリース)はデフォルトの 24ms または 30ms 前後の適度な速度に保ちます。
効果:
これにより、強力な局の音声が飛び込んできても、アンテナ側(RF)はゆっくりと追従するため背景ノイズの急激な浮き上がり(サー音)を完璧に抑え込むことができ、
同時にチャネル内(IF)の微細な音量変動には適度な解像度で追従するため、音声のキレやメリハリを維持した「非常に高級感のある静かな受信音」を実現できます。
同時にチャネル内(IF)の微細な音量変動には適度な解像度で追従するため、音声のキレやメリハリを維持した「非常に高級感のある静かな受信音」を実現できます。
4.3 デバッグ時のチェックリスト
GET_PROPERTY で 0x3703 を読み出し、意図したIFリリース値(例: 0x0018)が正確に反映されているか?
強いSSB信号を受信中、言葉の切れ目(一瞬の無音)で音声の後ろに控えているホワイトノイズが「ザッ、ザッ」と激しく脈打つように主張してこないか?(主張する場合は、0x3703 の値が小さすぎます)
強電界の局が送信を終了した(マイクを離した)直後、他局の音声や通常の短波ノイズが聴こえるようになるまで、何秒もの不自然な「無音(感度抑圧による静寂)」が発生していないか?(戻りが遅すぎる場合は、0x3703 の値が大きすぎます)
4.4 まとめ
0x3703 (SSB_IF_AGC_RELEASE_RATE) は、SSB/CW受信における「聴き心地のしなやかさ」を決定づける、DSP内部ゲイン制御の最後の調律パラメータです。
デフォルトの 24ms は非常に優れたバランスですが、ホストMCUのソフトウェア側から受信モードや電波のコンディション(フェージングの周期)に応じてこの値を微調整できるようにすることで、 デジタル特有のチープなポンピングノイズを完全に排した、ハイエンドSDRレシーバーに匹敵する安定したオーディオ品質を構築することができます。
デフォルトの 24ms は非常に優れたバランスですが、ホストMCUのソフトウェア側から受信モードや電波のコンディション(フェージングの周期)に応じてこの値を微調整できるようにすることで、 デジタル特有のチープなポンピングノイズを完全に排した、ハイエンドSDRレシーバーに匹敵する安定したオーディオ品質を構築することができます。
