FPGAによるダイレクトサンプリングAM受信回路
今回はFPGAを用いてAM受信回路を作製してみました。動作原理
ADCで変換された入力信号を[1+fAF(t)]cos(ωct+φ)とします。fAF(t)はAF信号で、変調度100%以内の時|fAF(t)|<1です。
このときの各ノードでの信号を以下に示します。 NCOの発振周波数ω ~ ωcとすると、(a-I), (a-Q)で信号fAF(t)がDC付近(ωc-ω)に変換されます。高周波側(ωc+ω)の信号は後段のCIC + FIRフィルタで除去されるため(c-I), (c-Q)には現れません。最後にI, Q信号の絶対値をとることで、復調信号fAF(t)が得られます(Fig. 1 (d))。
次に、CICフィルタの役割を説明します。これはCIC decimeterとも呼ばれ、サンプリングレートを間引く際に使用されるものです。
Fig. 1 (a-I), (a-Q)で周波数変換された後の信号では必要な帯域がDC付近に位置し、RFまで対応した高いサンプリング周波数は必要無くなります。不必要に高いサンプリングレートで処理を続けるとタイミング特性が厳しくなり、次段のFIRフィルタの計算量も極端に大きくなるため、サンプリング周波数を落とす必要があります。
次にFig. 2(b)のCIC decimeterデータを考えます。これは、Nクロック分の信号を積算して出力とするものです。積分回路なのでLPF型の周波数特性を持ちますが、減衰量自体は大きくありません。ただし、重要な特徴が次式で表される伝達関数のゼロ点の位置です。
構成
Fig. 4に全体の構成、Table 1に各ブロックに使用したIPを示します。 いずれもdefaultでライブラリに含まれているIPで、無料で使用することができます。 ADCはAD9283(8bit)を使用しています。今回、DACにはR-2R型を使用しましたが、AFのデコードなのでΔΣ型DACでも構いません。
今回用いたフロントエンド+ADCの回路図をFig. 5 に示します。 フロントエンドはBGA616の増幅器とアンチエイリアシングフィルタで構成しています。
皆様、おはようございます。
— JR2BMU/1 (@jr2bmu) August 19, 2023
昨晩は簡単なフロントエンドを組み立て、AMラジオを受信。
ちゃんと受信できました😊
現状は周波数固定なので、次はチューニングできるように改良したいと思います。 pic.twitter.com/pG7nDYQjKo