告知を出すのが遅くなってしまいましたが、8/6と8/7のMaker Faire Tokyo 2016に出展します。今回の展示内容のメインはこれまで試作してきたマイコンベースのSDR受信機です。LPC-Link2を使ったSDRの実験を雑誌記事として紹介してきましたが、なかなか実物をご覧いただく機会がありません。実はこれまでMaker Faireに数回出展したときに、さりげなく置いてあったのですが、今年はソフトウェア受信機をメインに出展の申込をしてみました。
これまで雑誌記事掲載に合わせて、LPC-Link2を使ったソフトウェア受信機の内容をアップデートしてきました。前回の掲載までに、HF帯向けのSSB受信機に液晶スペクトラムディスプレイを動作させていました。
今回は、原点に戻って最初に実装成功したソフトウェアFM受信機に、液晶ディスプレイを追加してみました。このプロジェクトは、もともとFMステレオ受信機をソフトウェアで作ってみようというものでしたので、一周して元に戻って来たことになります。
この表示では、ADCでサンプリング(fs=9.984MHz )している信号をFFTしてリアルタイムで表示しています。FM放送帯域内の複数の放送波が見えています。右側の85MHz弱がナイキストの境界になっているのでここで鏡像対象に折り返しています。 (復調モード表示の修正はさぼっているのでLSBのままですが、W-FMのモードで動作しています)
スペクトラム表示は信号処理の中間の状態表示に切り替えられます。
これは放送波にチューニングし1/32デシメーションをした信号です。+-100kHzに広がっているのがわかります。fs=312kHz
これをFM復調した結果が次の表示です。
19kHzにステレオのパイロットトーンが立っていて、38kHzを中心に(L-R)の差信号が左右対称に配置されているのがわかります。L+Rはベースバンド(0Hz)にあります。この後、マトリクスでLとRを取り出しステレオ音声信号とし、さらに2/13にデシメーションして48kHzの音声信号となります。
FM放送は、適度に複雑なスペクトラム構造を持っているので観察していて面白いです。音楽や会話で見え方が違うのがよくわかります。
ステレオFM受信機は、SSBよりも複雑なのでMCUの負荷が高いです。元々97%くらいでサイクルがぎりぎりだったのですが、ディスプレイ処理を追加するためにマルチコア動作させると、サイクルが足りなくなってしまいました。メインコアの処理量そのものはほぼ同じはずなのですが、サブコアを動作させてしまうと、メモリが共用となっているため、メインコアの動作が10%弱遅くなってしまうようです。その対策として、サブコア側はSRAMではなくSPIFIフラッシュメモリ上で動作させてみると、メインコアの効率がかなり回復しました。フラッシュは動作が遅いのですが、サブコアだけであれば影響は表示更新レートが下がる程度です。SSB受信機では25fps程度だったのが10fps程度となってしまいました。地味な変更に見えますが、実は面倒な対策をしているのです。
動画です。
展示にはこのほかFriskSDRを出す予定です。
さすがにラジオだけではちょっと地味なので解説をどうしようか考えたいと思います。他に作りかけのもの(NanoVNAとかIQDDS等)も置いておきたいと思います。また、例年のような光り物も出す予定です。
デモのことを考えると会場はラジオの受信環境として厳しいものがあります。しかし、今年のMaker Faire Tokyoの新企画として会場内ミニFMが設置されるらしいことを見かけました。それをリアルタイムで受信できれば、良いデモになるかなと思っています。
今年は札幌SDR研究会のおじさんエンジニア達もヘルプで参加してくれます。濃いお話ができると思います。ではでは会場でお待ちしております。
リンク