さらに改良を加えました。
前の記事にバンドスコープの画面がありますが、AM放送以外の高い周波数まで受信しています。AM放送受信が目的なので、処理前にこれを取り除きたくなるのが人情です。
実はこれがアナログ頭の発想です。「エイリアシング云々」と書いたのは、このためですが、よく考えるとHackRF Oneのハードの中でデジタル化してしまっているので、そのあとのPC側で処理することに何の意味があるのかと気づきました。SDRレシーバーで使われるアンチエイリアシングフィルタはADCの前に置かれます(こう書くとカッコいいのですが、実は下の作業を通じて気づきました。また、あとで書きますが、それなりに意味はあるようです)。
といっても、せっかっくなのでお勉強の一環として進めます。AM放送帯のフィルタを入れることにしました。周波数変換の前にバンドパスフィルタのブロックを置き、通過帯域として500KHz~1700KHzを設定します。受信はできますが、狙ったAM放送帯をうまく通してくれません。これもアナログ頭の発想でした。受信帯域の中心周波数(この場合、2.4MHz)を中心に考える必要があるようで、ここと通過帯域の周波数差を計算して設定する必要があるようです。
そこで、通過帯域を700KHz(=2400KHz-1700KHz)~1900KHz(=2400KHz-500KHz)と設定するとうまくいきました。
ところが、バンドスコープを見ると中心周波数の2.4MHzを中心とした反対側でも、スペクトルが観察できます。どうもAM放送のスペクトルと対称的な形になっています。実際の受信波ではないようです。さて、これは何だ?となりました。