【DDSの基本原理】

最終更新日 2006/10/28

 

次のページへ Page 1
このドキュメントの先頭へ
DDSの動作原理について】
 DDSとはDirect Digital Syntesizerを略記したものです。図1にDDSの最も基本的な構造を示します。内部は周波数指定レジスタ1、加算器2、位相レジスタ3、正弦波変換ROM4、出力値保持レジスタ5とD/Aコンバータ6により構成される。D/Aコンバータ6についてはAnalog Devices社のAD9832やAD9835は内蔵しているが、WELLPINE社製TC170C030AF001のように外付けで対応しているICもある。
 加算器2は外部から供給されるクロック周期毎に周波数指定レジスタ1と位相レジスタ3の値を加算処理して位相レジスタ3に結果をストアするので、位相レジスタ3には周波数指定レジスタ1の値が累積加算されてゆきます。
位相レジスタ3に格納された加算結果の上位ビットが正弦波変換ROM4のアドレスとして供給されています。正弦波変換ROM4のメモリ空間には正弦(sin)1周期分のデータが整数値で順次記録されています。最終段のD/Aコンバータ6が符号付かそうでないかに従って記録されている正弦波のデータ型も異なります。正弦波変換ROM4も外部から供給されるクロック毎に位相レジスタの上位ビットで指定されるアドレスの情報を読み出し、出力値保持レジスタ5に結果をストアします。D/Aコンバータ6は出力値保持レジスタ5にストアされた値をD/A変換して出力します。


 次に図1の回路ブロックの具体的な処理動作を説明します。
 図2に示すように周波数指定レジスタに格納された値が大きい場合1)と小さい場合では加算器2がオーバーフローを起こす周期が異なります。
 周波数指定レジスタ
、位相レジスタ3の演算ビット幅が24ビットであれば演算結果が224=16777216を超えるときオーバーフローを引き起こします。例えば、今この回路に16.777216MHzのクロックが供給されており、周波数指定レジスタ1"1"が格納されているとすれば、16777216クロック毎、即ち1秒毎にフルカウントに達し、オーバーフローが発生することになります。周波数指定レジスタ1"2"が格納されているとすれば、先ほどとは半分のクロック数8388608クロック毎、即ち0.5秒毎にフルカウントに達し、オーバーフローが発生することになります。つまり毎秒2回オーバーフローが発生するわけです。さらに"n"が格納されている場合には毎秒n回のオーバーフローが発生するわけです。
 累積加算結果の上位ビットが正弦波変換ROM4のアドレスとして供給されているので、出力値保持レジスタにもオーバーフロー周期で正弦波が出力されることになるのです。

 以上をまとめると、累積加算部(1,2,3)の演算ビット幅がmビット幅で、外部から供給されるクロックをfc[Hz]、周波数指定レジスタ1に格納された値をfvとすれば、オーバーフローを引き起こす周波数fは次式で示されます。
                            ・・・・・・・・・・・・・式(1)

 

次のページへ このドキュメントの先頭へ