トランジスタ技術別冊トラ技Jr 2015/3.4号に紹介されている「第1回パソコンでAMラジオ放送を聴く」をMacで試してみました。
ソフトウェアラジオ(Software Design Radio)AMラジオ編は、サポートページでより詳しく説明されています。
私の作成した「ブレッドボードで作ったAMラジオ」は、以下の様な物です。
第1回パソコンでAMラジオ放送を聴く」で紹介されているソフトウェアラジオのPC用アプリケーションは、 SDRadio.exe ver.0.99というWindows用のアプリです。
私は、Mac OSXを使っているので、Mac用のソフトウェアラジオ・アプリケーションを探しました。 今回「ブレッドボードで作ったAMラジオ」の再生用に使ったのは、 Dream 1.11です。
Dreamを起動し、入力をマイクとし、DemodulationをAMにし、15kHzあたりのピークをクリックすると赤い線がそこに移動します。 次にFilter Bandwidthを5kHz程度にするとラジオの放送が聞こえてきます。
私の住む高岡市で最も電波の強い放送局は北日本放送(738kHz)です。 Dreamで受信した北日本放送は、以下の様な音でした。音声は小さいですがアナウンサーの声が聞き取れます。
「ブレッドボードで作ったAMラジオ」の構成を回路をトラ技Jの図1から引用します。
ブレッドボードで処理しているのは、同調・講習は増幅、局部発振、ミキサの3つの機能だけです。 どうしてこんな単純なもので、ソフトウェアラジオが聞こえるのか不思議ですね。
「ブレッドボードで作ったAMラジオ」の回路をトラ技Jの図7から引用します。
第1回 パソコンでAMラジオ放送を聴く(補足資料)の4.1に周波数変換の原理について説明があります。
ミキサの原理は、放送波を$v_{rin} = sin(2 \pi f_r t)$、局部発振の出力を$v_{LO} = sin(2 \pi f_{LO}t)$とすると、 ミキサーからでる信号は、以下の様になります。 $$ \begin{eqnarray} v_{mix} & = & sin(2 \pi f_r t) \times sin(2 \pi f_{LO} t) \\ & = & \frac{1}{2} \left \{ -cos(2\pi(f_r + f_{LO})t) + cos(2\pi(f_r - f_{LO})t) \right \} \end{eqnarray} $$ つまり、$f_r - f_{LO}$の周波数を持つ低い波と$f_r + f_{LO}$の周波数を持つ高い波の2つの信号に分けることができます。 ローパスフィルターを使って高い波を取り除くと、$f_r - f_{LO}$の低い周波数帯で放送波を扱うことができます。 これが、ミキサによる周波数変換のマジックです。
AM波では、バンド幅を15kHzとしているので、北日本放送(738kHz)に対する局部発振周波数は、753kHzになります。 「ブレッドボードで作ったAMラジオ」の発振モジュール(秋月のLTC1799)の周波数をみてみると753kHzになっています。
以下に、第1回 パソコンでAMラジオ放送を聴く(補足資料)から図A.14を引用します。
実際にAM放送の信号が局部発振波(ここではsin波)を使ったミキサによって音声(ここでは2kHzのsin波)が取り出される様子を 見てみましょう。
最初によく使う関数(Rutil.py)をロードします。
|
周波数が100kHz(北日本放送ではこれが738kHzです)で振幅1のsin波をVc(t)を定義し、Tend(0.002秒)まで出力してみます。
|
次に音声の代わりに2kHzのcos波をVs(t)と定義し、プロットします。
|
WikipediaによるとAM変調は、以下の様に定義されています。 $$ v_{am} = (V_s + V_{cm})sin 2\pi f_c t $$
定義にそってAM変調された波をVam(t)を定義し、プロットします。 AM変調では、上下のエンベロープ(信号の端の形)に音声信号が現れます。
|
搬送波+15kHzの局部発振のsin波とVam(t)と掛け合わせると、以下の様に15kHzの波で音声波が 見えてきます。
|
AM変調の復調には、ミキサされた信号を絶対値absを使って片方向に揃えます。 これで、音声の2kHzの形がぼんやり見えてきます。
|
scipyを使ってローパスフィルター(butter_lowpass_filter関数)を定義します。
|
|
サンプリングレートは、96kHzとし、ローパスフィルターのカットオフ周波数を4kHzとしました。
|
|
ローパスフィルタを掛けた結果yとサンプリングデータdataをプロットします。 緑のフィルター後の波形に2kHzの波が取り出されています。
|
|
局初のスイッチによる方形波をPiecewise使って以下の様に定義します。これから求まるフーリェ級数から、 奇数倍の周波数のsin波の足し合わせになっていることがわかります。
|
$v_{LO}$は、以下の様になります。 $$ v_{LO} = \frac{1}{2} + \frac{2 \, \sin\left(2 \, \pi x\right)}{\pi} + \frac{2 \, \sin\left(6 \, \pi x\right)}{3 \, \pi} + ... $$
次数を変えて、フーリェ級数で表される方形波をみてみましょう。nを31にすると定義の波に近くなりますが、 値が急に変わる不連続点では急な盛り上がりがでます。これはギブスの現象と呼ばれるものです。
|
|
入力波が$v_{Rin} = V sin(2\pi f_{Rin} t)$とすると、以下のように$v_{mix}$には、$f_{Rin} - f_{LO}$成分が含まれます。 $$ \begin{eqnarray} v_{mix} & = & v_{Rin} \times v_{LO} \\ & = & \frac{V}{2} sin(2 \pi f_{Rin} t) + \frac{V}{2\pi} \left \{ -cos(2\pi(f_{Rin} + f_{LO})t) + cos(2\pi(f_{Rin} - f_{LO})t) \right \} + ... \end{eqnarray} $$
|