MENU

FPGA 初心者向け:DDS(Direct Digital Synthesis)の基礎と活用

FPGA の学習を進めると DDS(Direct Digital Synthesis、直接デジタル合成) という概念が登場します。本記事では、FPGA における DDS の本質的な意味、動作原理、そして実践的な活用方法 について詳しく解説します。


目次

1. DDS(Direct Digital Synthesis)とは?

🔹 DDS の基本的な役割

DDS は クロック信号を基にして、デジタル的に波形を生成する技術 です。特に、以下のような目的で使われます。

  • 高精度な周波数の波形を生成(整数倍でなくてもOK)
  • 任意の波形を生成(正弦波、方形波、三角波など)
  • 周波数、位相、振幅を瞬時に変更可能
  • 通信、レーダー、信号処理、音響などに活用

PLL はクロックの整数倍しか作れませんが、DDS は 自由な周波数を生成できる のが大きな特徴です。


2. DDS の基本構成と動作原理

DDS の基本ブロックは以下のようになっています。

クロック(CLK) → 位相累積レジスタ(フェーズアキュムレータ)
                  → 波形ルックアップテーブル(LUT)
                  → D/A 変換(DAC) → アナログ波形

🔹 DDS の主要コンポーネント

  1. フェーズアキュムレータ(Phase Accumulator)
    • クロックごとに 位相の増分(Phase Increment)を加算 し、波形のどの部分を出力するかを決定。
    • 位相増分の大きさで出力周波数が決まる!
  2. 波形LUT(Look-Up Table, ルックアップテーブル)
    • 正弦波などの波形データを事前に格納。
    • フェーズアキュムレータの出力を元に、LUT から波形のデジタル値を取得。
  3. DAC(Digital-to-Analog Converter, D/A変換)
    • DDS の出力はデジタル信号なので、DAC を使ってアナログ波形に変換する

3. DDS の周波数制御

DDS では、出力周波数は以下の式で決まります。

$$ fout= \frac{M \times f_{\text{clk}}}{2^N}$$

  • $f_{\text{out}}$ : 出力周波数
  • $M$ : フェーズアキュムレータの 位相増分
  • $f_{\text{clk}}$ : クロック周波数
  • $2^N$ : 位相アキュムレータのビット数(例: N=32 なら $2^{32}$)

💡 M を変えるだけで周波数を自由に変更できる!

✅ 例:100MHz のクロックで DDS を動かす

  • フェーズアキュムレータが 32ビット の場合(N=32)
  • M = 2,147,483(約 $2^{31}$)とすると

$$fout = \frac{2,147,483 \times 100 \text{MHz}}{2^{32}} \approx 50 \text{Hz}$$

👉 100MHz のクロックから 50Hz の正弦波を生成!


4. FPGA での DDS 実装

✅ 方法1: ルックアップテーブル(LUT)方式

  • 事前に正弦波のデータをテーブル(ROM)に格納
  • フェーズアキュムレータの値に応じて、LUT から出力
process(clk)
begin
    if rising_edge(clk) then
        phase_accum <= phase_accum + phase_increment;
        sine_out <= sine_LUT(to_integer(phase_accum(31 downto 24)));
    end if;
end process;

💡 LUT に「時間とともに周波数が変化するデータ」を入れれば、チャープ信号も作れる!

✅ 方法2: CORDIC(COordinate Rotation DIgital Computer)方式

  • LUT を使わずに、三角関数の数値計算で波形を生成
  • 高精度な正弦波をリアルタイムで計算可能

メリット:

  • LUT を使わずにメモリ節約
  • 任意の波形を高精度で生成可能

デメリット:

  • 計算負荷が高く、FPGA のリソースを多く消費する

5. DDS の用途

✅ 無線通信

  • キャリア波の生成(例: 2.4GHz Wi-Fi 信号)
  • 変調信号(AM, FM, PSK, FSK)

✅ レーダー信号生成

  • チャープ(LFM)を用いたパルス圧縮レーダー
  • 周波数ホッピング(FH)を用いた LPI レーダー

✅ 計測機器

  • ファンクションジェネレータ(信号発生器)
  • 電子負荷装置(特定の電圧/電流波形を発生)

✅ 音響・楽器(電子シンセサイザー)

  • デジタル音源(FM音源、波形合成)
  • オシレーター(LFO、エンベロープ)
目次