GNU Radioに関する海外のサイトを調べると、バンドパスフィルタの設定にTapをReal(実数)で設定するかComplex(複素数)で設定するか選択できるようです(プロパティ設定画像中”FIR Type”)。複素数で設定すると中心周波数に対して非対称なバンドパスフィルタを作成できるとのことです。
これに従って設定すると確かに非対称なフィルタとなり、通過帯域も中心周波数(ここでは2.4MHzとしている)からの”距離”を設定すればよいようです。通過帯域を500~1700KHzとしたので、設定上は-1900Khz~-700KHzとなります。ちなみにデジタル信号処理を理解する上で、このマイナスの周波数が”腹落ち”することが重要です。また、デジメーションを2のべき乗とし、サンプリング周波数も見直してあります。これに伴い、Audio Sink(すなわち、サウンドカード)のサンプリング周波数も48Kから32Kにしました。もっとも、AM放送ですから32KHzもあれば十分です。
周波数変換・復調前に余分な信号を排除したからか、CPUの使用率も20~30%台に減少し、40%を超えることはほとんどなくなりました。
バンドスコープの画像では1MHzより下に4波のピークがありますが、周波数の低い側からNHK第一(594KHz)、NHK第二(693KHz)、AFN(旧FEN、810KHz)、TBS(954KHz)です。ここではTBSとAFNを同時受信しています。TBSの送信所は戸田市にあり、私の住んでいるさいたま市のそばです。フィルタ設置前はAFNはTBSに押されるような感じで受信音も弱かったのですが、フィルタ設置後はAFNも良好に聞こえます。
Attached is a improved GRC(GNU Radio Companion) flow for AM broadcast receiving with HackRF One. A band pass filter is placed before mixer to reduce unwanted signal processing. As a result, reduced CPU load slightly.
Mar. 18,2021
このフローはWX GUIを使用しています。GNU Radio3.8はWX GUIをサポートしませんので、それに代わる適切なQT GUIのブロックに置き換えてください。
As using WX GUI, this workflow does not work on GNU Radio 3.8. Please replace these blocks with corresponding QT GUI blocks.