夢の受信機完成！
〜 50MHz のすべてに
イントロダクション 0Hz
1Hz 刻みで一発チューン！

FPGA で作る高音質
ディジタル・ラジオ
Ojsankoubou

小川 一朗 Ichiro Ogawa
携帯電話やテレビなど，今ほとんどの受信機はソフトウェア・ラジオ（SDR）で作られています．アンテナ入力後に A-D 変換され，各種ディジタル信号処理を通って音声信号が得られます．

● スタンドアロンで動作するラジオ（図 1）
特集で紹介するラジオは，市販品（普通に購入できる価格帯で，スタンドアロンでスペクトラム表示できるラジオ受信機は市販されていない）にも負けない性能と操作性（UI）を持っているのではないかと思っています．タッチ・パネルによる GUI は，主な設定項
目は画面に出ているボタンをタッチするだけで変更可
能なので直感的に操作でき，初めて使った方でもすぐに理解できます．操作例は図 2，図 4 〜図 6 を参照してください．
● ディジタル信号処理の中身に踏み込んで解説
このラジオにはディジタル信号処理，ユーザ・インターフェースのプログラムなど多岐に渡る技術が使われています．本文ではこれら使われている技術についてできるだけ丁寧に説明していきます．アマチュアの自作でこの程度のものが作れるのだということ，そしてその技術はすぐそこにあるのです．一度読んだだけでは理解できないかもしれませんが，まずは興味があ

コラム 1

1

ラジオの構成ここで作るラジオは，いわゆるSDR（Software DefinedRadio）です．ラジオの機能をソフトウェアで構成しているので，あとから新しい機能を追加するとか，動作中に特性を好みに応じて変更するといったことが簡単にできます．図 3 に各部の機能の概要と、第 1 章以降で説明している項番号を示しました．
また，ディジタル信号処理ではアナログ回路では不可能な，振幅特性・群遅延特性がフラットなフィルタを作ることができ，いままでにない高音質の AM 放送の受信や，妨害を軽減する VSB（Vestigial Side Band）モードの受信ができます．操作のようすや表示波形などを図 2，図 4〜図 6 に掲載します．

本器の心臓部 APB-3 基板

本特集で用いる APB-3 基板は，汎用実験基板として設計しています．2012 年終わりから今年にかけて，『トランジスタ技術』誌上では測定器としての使い方を説明していますが，アナログ信号を入出力してディジタル信号処理するという用途なら何でもできてしまうといってよいくらい応用範囲の広い基板です．
APB-3 基板を設計する前に，筆者は同様な汎用実験基板として APB-1 基板を作っていて，そのときに デ ィ ジ タ ル 信 号 処 理 の ラ ジ オ を 作 り ま し た．
APB-3 基 板 は APB-1 を は る か に 凌 駕 す る 性 能 をもった基板なので，この基板でラジオを作るとどの4るところを何回も何回も読み返してみてください．いつかきっとアハと思うときがくるはずです．
それでは最後までお付き合いください．

程度の性能のものが作れるのか，ものすごく興味がありました．
しかし，APB-1 のときとまったく同じものを作っても面白くありません．
そこで，FFT を使ったリアルタイム・スペクトラム・アナライザ（受信する信号とその周辺のスペクトラムを表示）を搭載することにし，そのためグラフィック LCD（TFT LCD）を使うことにしました．また，ユーザ・インターフェース（UI：UserInterface）を一新し，タッチ・パネルによる操作をメインにして使いやすく，わかりやすいものにしました．

イントロダクション FPGA で作る高音質ディジタル・ラジオ

No.1

特集 タッチ・スペアナ付き FPGA ラジオ
LCDパネルの上のブロックは各種メニュー．タッチすると設定メニューが表示される周波数を変更するダイヤル

周波数の表示．
単位はHz．この文字の上をタッチすると，周波数のステップを変更できるメニューが出る

LCDの下半分は，本ラジオの最大の特徴である
スペクトラム表示．画面は横幅80kHzのスパンを表示している．横軸の数字付近をタッチすると，スパンを変更できるメニューが表示される
図1

製作した FPGA ラジオの外観

音量のボリュームを変更するダイヤル．
LCD画面で各種メニューを表示した際にこのダイヤルで項目を変更できるケースに入れたようす．キットにケース類は含まれない．ケースの製作は第 6 章を参照．

① ダイヤルを回して目的の周波数にする（電源投入直後は9kHzステップになっている）．
RF GAINとNOISE CANは執筆時点では機能を実装していない④ 短波帯に移動したいときはステップ数を100kHzなどに変更し，例えば7MHzまで一気に移動
図2② LCD画面のスペクトラム表示上をタッチすると，そこがセンタにシフトして選局ができる③ 画面中央に表示されている周波数をタッチすると，ステップを変更できる（最小は1Hz，最大は1MHz）⑤ そのあとは100Hzや10Hzのなどのステップに変更⑥ ゆっくりチューニングする

操作例：周波数を変える

ディジタルだからアナログ・デバイス特有の非線形や温度変化による性能劣化から解き放たれる．

No.1

1 ラジオの構成

5

アンテナからの信号を A-D 変換してから音声出力Synthesizer）で作った 2 相信号で周波数変換して，ゼするまで，すべてディジタルでの信号処理になっていロ周波数付近にします．周波数変換された信号は，いるので特性が一定しており，誰が作っても同じ性能がわゆる I，Q の複素信号で，ゼロを中心に正と負の周無調整で得られます．

波数のスペクトラム成分があります．
その次に，CIC（Cascaded Integrator Comb：カス■ ラジオの各ブロックの概要

ケード積分くし型）フィルタで 1/64 の 1.56MHz にサンプリング周波数を落とした後，FIR POLY フィルタでさらに 98kHz にサンプリング周波数を落とします．
ここの信号を FFT してスペクトラム・アナライザ表示をしています．復調するにはまだサンプリング周波数 が 高 す ぎ る の で， さ ら に FIR フ ィ ル タ を 通 し て24kHz に サ ン プ リ ン グ 周 波 数 を 落 と し ま す． 最 初100MHz だったサンプリング周波数を 24kHz まで落とすと同時に，希望周波数だけを抜き出すフィルタ処理をしてきたわけです（第 2 章 図 2-3 も参照）．

A-D 変換した信号をディジタル信号処理して音声信号にしているのが FPGA で，このラジオの中心部分です．FPGA で実装しているラジオの信号処理は，① 希望周波数を抜き出すフィルタ（詳しい解説は第 2 章）
② 変調信号を音声にする復調（詳しい解説は第 3章）に大きく分けられます．
① FPGA に 入 っ た 信 号 は，DDS（Direct Digital

トラ技USB-FPGA信号キットAPB-3TGKITAPB-3基板
APB-3基板FPGA（XC6SLX9）
アンテナ

ADC

1-1

1-1

2-3
2-3

3-1

2-4

2-6

2-9

2-8

複素周波数変換

CIC
フィルタ

FIR POLY
フィルタ

FIR
フィルタ

DDS
2相発振器

AM復調
SSB復調
FFT

3-4

1-3
1-3IIR
フィルタ

オーディオ
DAC

1-6

レギュレータ

3-3

3-5

2-5

3.3V

1.2V

ノイズ・キャンセラ
内部モジュールへアクセス

3-133-6アクセス
調停回路

USB

1-5PC
図36

FPGA で作る高音質ディジタル・ラジオの構成と各要素技術の説明場所（【例】「3-5」…第 3 章の 5 項で説明している）

イントロダクション FPGA で作る高音質ディジタル・ラジオ

No.1

特集 タッチ・スペアナ付き FPGA ラジオ② サンプリング周波数が 24kHz になった変調信号

スイッチ類などを制御して，ラジオ全体の GUI を構を，復調して音声に戻します．このラジオでは AM と築します．ソフトウェアは簡易 OS 上で動いていて，SSB を復調できます．AM は，CORDIC（COordinateGUI のほか AGC（Automatic Gain Control）や RF 信号

Rotation DIgital Computer）を使った絶対値計算で振の FFT もこのマイコンで実行しています．

幅を取り出して復調します．SSB はヒルベルト・フィルタを使って位相を 90°ずらした信号を作り，加減算して復調します〔いわゆる PSN（Phase Shift Net work）と同じ〕．
復調した音声信号は，オーディオ DAC でアナログ音声になります．アンプ付きスピーカやヘッドホンでラジオ放送を聴くことができます．

2

ユーザ・インターフェース部分（詳しい解説や回路は第 4 章と第 5 章）

ユーザ・インターフェースを担当しているのがマイコン STM32F405 です．このマイコンは Cortex-M4 で，浮動小数点演算器を内蔵している高性能なものです．
TFT LCD やタッチ・パネル，ロータリ・エンコーダ，6-1追加した基板（なくても可）

スピーカ

オーディオ・アンプ
電源SW，ノイズ・フィルタ

表 1 FPGA ディジタル・ラジオの要素技術マップと解説のページ
章，項ページ

1A-D 変換器（ADC）

要素技術

1-1

102

RF アンプ

1-1

103

ADC → FPGA

2-3264

周波数変換

2-5285DDS

2-6286

CIC フィルタ

2-7317

FIR フィルタ

2-9378FIR POLY フィルタ

2-10409ゲイン設定，レベル検出，飽和処理

2-83410

AM 復調

3-14111

VSB 復調3-2

4412

SSB 復調3-347

13

IIR フィルタ

3-448

14

FFT15

ノイズ・キャンセラ

16

3-5，5-949，76

コラム 3-652

OS

5-263

17

LCD コントローラ

5-4

66

18

タッチ・パネル

5-568

19

ボタンの形

5-774

LM1894

5V

TFT LCD
TLS-1基板
5-4
STM32F405

5-5

コントローラAGC

5-8

タッチ・パネル
FFT

5-9OS

GUI

5-2

5-7

ロータリ・エンコーダ
5-6スイッチ

マイコン制御基板 TLS-1

No.1

2 ユーザ・インターフェース部分

7

① デフォルトはAM．パネルの左上をタッチ[AM，AM-U
（VSB）
，AM-L
（VSB）
，USB
（SSB）
，LSB
（SSB）
，I＋Qが選べる]
図4② AM放送は両方の側波帯があるので，どちらかにノイズが乗っている場合はノイズが乗っていないほうの側波帯を選ぶことも可能③ アマチュア無線ではSSB変調が使われるので，USBかLSBを選ぶ．
スペクトラム表示の明るい青色は，復調範囲を示している

操作例：復調モードを変える

ディジタルだから様々な変調方式に対応できる．本ラジオは AM と SSB を実装した．

① 画面下の数字をタッチし，オーディオのスペクトラムを表示

図5② 明らかなノイズに，ノッチ・フィルタを適用．スペクトラムを表示時にピー
ク・ノイズを目視しながらノッチ周波数を変更できる③ ヒス・ノイズを減らす高域のフィルタもある

操作例：ノイズを減らして聞きやすく

ディジタルだから各種フィルタを多段でかけても品質が劣化しない．

① AM放送は10kHzで聞くと，送り出し側の品質の良さを初めて体感できる
図6② AM放送でノイズが多い場合は，狭い帯域でも音声は聞けるが3kHzを切ると急速に音質は低下する③ 低音レベルをアップ/ダウンして好みの音質に調整できる

操作例：バンド幅の変更

ディジタルだから変調方式に合わせた適切な帯域を自由に実装できる．

LCD 画面には RF とオーディオ信号のスペクトラム表示ができ，スパンは RF が 80kHz 〜 20kHz，オーディオが 10kHz，5kHz です．
受信している信号とその周辺のスペクトラム表示
は，放送局の存在だけでなく家の中の電子機器からの妨害波もわかり，片サイド・バンド VSB 受信でどちらのサイド・バンドを選べばよいのかが一目でわかり

8ます．また，夜間にはラジオ放送が 9kHz おきにびっ
しりと並んでいるのが見えます．
音声スペクトラム表示にすると音楽に合わせてスペクトラムが上下し，環境ビデオみたいです．妨害波からのビートがあるときはその周波数もすぐにわかるので，ビート周波数のノッチをいれれば聴きやすくなります．

イントロダクション FPGA で作る高音質ディジタル・ラジオ

No.1

特集 タッチ・スペアナ付き FPGA ラジオ
ラジオを実装するのに十分な入出力をもつ !

第1章

ラジオのメイン処理は FPGA で行うディジタル信号処理
ボードのハードウェア
小川 一朗 Ichiro Ogawa
本章では，ラジオの中で主要なディジタル信号処理を行う APB-3 基板のハードウェアについて簡単に説明します．APB-3 基板の表側を図 1-1に，裏側を図 1-2 に示します．図 1-3 に示す機能が搭載されています．それぞれ機能ごとに説明していきます．回路は章末の図 1-4 に示します．

信号入力BNC
コネクタ

電源パイロット・
ランプ青LEDハイインピーダンス・バッファ（1MΩ）と50Ω入力切り換え
スイッチ

信号出力BNC
コネクタ

ADC 100Msps
16ビット
ADC1610-105

ADC周辺専用3.3V
レギュレータLD1117

DAC 100Msps
14ビット AD9707

差動バッファADA4950

FPGA
Spartan6 XC6SLX9

3.3V レギュレータ
LD1117

Audio CODEC
100ksps 16ビット
UDA1345

1.2V レギュレータ
LD1117

リセッタブル・ヒューズ 750mA

水晶発振子
12MHz電源スイッチ

オーディオ出力
ミニジャック・コネクタ

電源入力 φ2.1
5V 800mA

オーディオ入力
ミニジャック・コネクタ
図 1-1

USB B メス・コネクタ

本器のディジタル信号処理ボード APB-3 基板の表面

FPGA はオリジナルの回路を実装できるデバイスだが，応用するためには入出力が必要．本基板は高速 A-D コンバータで自然界にあるアナログ・データを取り込み，D-A コンバータでオーディオ出力，高速 D-A コンバータで各種信号を出力することができるようになったコンパクトなボード．FPGA は100MHz で動き，A-D コンバータも 100Msps と高速なので，ノイズ対策には注意を払って設計している．

No.1

9

入力

アンテナをつなぐオーディオ入力
オーディオ出力

高速DAC
14ビット
100MHzAD9707

高速ADC
16ビット
100MHz
ADC1610S

出力

16 ビット，100Mbps 高速 A-D変換器（ADC1610S）を搭載

A-D コンバータはラジオの受信性能を大きく左右します．ここで使った IDT 製の ADC1610S は，100Msps

ARM
マイコン
STM32F103
未使用

オーディオ
CODIC
16ビット
100kHz
UDA1345

今回のラジオでは使っていない
FPGA
XilinxSpartan6
XC6SLX9

ラジオの音声
出力
図 1-3

1-1

FPGAのコン
フィギュレーション，マイコンのプログラム
書き込みに使うUSB
インターフェース
480Mbps
FT232HPC

APB-3 基板のブロック図

APB-3 にはマイコン Cortex-M3 を実装できるパターンがあるが，今回のラジオでは．マイコン Cortex-M4 を LCD やタッチ・パネルを制御するTLS-1 側（第 5 章で解説）に実装・搭載して利用している．

D-A出力．アンチエイリアシング・フィルタ

16 ビットのパイプライン型 ADC です．アナログ入力
信号の最大周波数は 650MHz なので，アンダ・サンプリング（コラム 1-1 参照）して 650MHz までの信号を直接 A-D 変換することができます．筆者のような古い人間には夢のようなスペックですね．
● 入力にはフィルタを実装
アンテナからの信号は，アンチ・エイリアシング・フィルタに入ります．APB-3 基板に載っているアン
チ・エイリアシング・フィルタはカットオフ周波数50MHz の LPF（ローパス・フィルタ）で，ナイキスト周波数までの範囲の信号を扱えるようになっています．ここで作るラジオは中波から短波を対象とするのでこのままで OK ですが，FM チューナを作る場合のようにアンダ・サンプリングする場合は，アンチ・エ

FET入力高速OP
アンプ OPA356

A-D入力アンチエイリアシング・フィルタ
FPGAコンフィグ用
FLASH ROM
4Mビット
AT25DF041
水晶発振器 100MHzFXO-HC735-100

FT232H設定用
EEPROM 2Kビット
93LC56B

USB2.0
コントローラ
480Mbps FT232H

電源SW用
Pチャネル
MOSFETIRLML6402

図 1-2

APB-3 基板の裏面

FPGA は開発ツールを利用して作ったコードをフラッシュ ROM から読み込んで機能する．そのコードは PC から USB を通してボードに実装した 4M ビットのフラッシュ ROM に保存しておき，電源を入れればすぐにこのボード単体で利用できるようにしている．したがって，新しい機能を実装することもたやすいといえる．

10

第 1 章 ディジタル信号処理ボードのハードウェア

No.1

このPDFは，CQ出版社発売の「トラ技エレキ
内容・購
内容
購
法房 No.1」の部本です．法などにつきましては以下のホームページをご覧下さい．
http://shop.cqpub.co.jp/hanbai/books/MTR/MTRZ201307.htm
http://www.cqpub.co.jp/order.htm