前回まででAMラジオ受信のSDR、ひととおり「部品」を手習ひできた感じです。しかし木を見て森を見ず。全体像をどう把握したものか。しかしお見通しでした。全体像が理解しやすくなるPC上のツールを三上先生がご用意くださっとります。三上先生ツールを動かしたら一目瞭然だわ、AMラジオの受信。今回はツールを動かしただけ。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※教科書として読ませていただいておりますのは、以下の三上先生の御本です。
CQ出版社『Armマイコンでつくるダイレクト・サンプリングSDR』
元記事はCQ出版社トラ技誌の2021年連載です。上記はそれをまとめたPDF版のダウンロードサイトへのリンクです。
さて「三上先生ツール」は、SDR本体(ST Microelectoronics製Nucleo-F446REボード上で動作するArm Mbed OSのソース/オブジェクト)とは別フォルダに格納されているMicrosoft C#用のプログラムです。ビルド済のオブジェクトファイルが含まれているので即使用可能です。今回使わせていただきましたのは以下の2つであります。
-
- AMラジオ_標本化周波数の検討.exe
- 直交復調_AM.exe
サンプリング周波数900kHzの裏側
今回のSDRは、アンダーサンプリングを使い、ナイキスト周波数よりも高い周波数にあるラジオの信号を「折り返して」受信するのだと手習ひさせていただきました。そのサンプリング周波数900kHzとうけたまわっております。しかし、なぜに900kHz?STM32F446REマイコンのArm Coretex M4Fコアの動作周波数と放送局の周波数を「勘案」してお決めになったのだろう、とは思いつつ、なぜなぜと疑問でありました。しかし、上記のAMラジオ_標本化周波数の検討.exe を実行いたしますとこの疑問は氷解いたしますです。
最初は、実際に「採用」されているサンプリング周波数900kHz(Fs/2=450kHz)のとき。Y軸に列挙されているのは関東(東京圏)のAM局です。「折り返しの状況により」上限、下限がヒックリ返ったりもしますが、重なることなく綺麗に住み分けしています。
中央付近にあるスライダーを操作するとサンプリング周波数が変わります。以下は、180/422、約426.5kHzまで落としてみたもの。あちゃー、重なってしまっています。一番下のNHK第1と第2が半分重なってます。ラジオ日本と文化放送はほぼほぼ丸被り、ニッポン放送とAFN Tokyoも重なりが大きいです。ダメだなこれは。
それにしてもAFN、年寄り的にはFEN(Far East Network、極東放送)の方がなじみが深いです。若者は知らないか、FEN。
さて、サンプリング周波数を上げてやり、使える周波数帯を広げれば被らなくなるというものでもないようです。以下はサンプリング周波数1333kHzのとき。ラジオ日本とニッポン放送が重なっております。これまたダメだね。
900kHz、かなり「考え抜いた」周波数みたいです。
SDR全体の動作
冒頭のアイキャッチ画像に、今回のAM受信SDRの全貌のブロック図を掲げました。しかし、その中を流れる信号にイマイチ実感がわきませぬ。しかしそれは、以下のプログラムを動かしてみると腑に落ちます。
直交復調_AM.exe
まずは、NCO(ブロック図の「~」のところ、正弦波、余弦波を生成する部分)でラジオ局側の搬送波の周波数、位相ともピッタリ一致の信号を生成している理想的な場合がこちら。IとQ、2ルートあるけれどもIだけで尽きており、出力信号はsqrt(I^2+Q^2)、実質IそのままでOKと。
でも、完璧に一致などありえん、ということでNCOの周波数が10Hzずれていたらどうでしょ、というのが以下に。Q信号が現れます。
I、Qと2ルートある意味がシミジミ実感されます。
一方、周波数は完璧に一致しているときに、フェーズがπ/2ずれていたらどうよ、という場合。Iが消えQが残ります。
0とπ/2の途中のズレならどうよ、と。位相差π/4のとき。このときはIとQで仲良く半分こという感じ。
このプログラム、私のような素人には実に感銘深いです。ありがとうございました。