DDS 原理

时间:2024-03-25 21:36:51

DDS(Direct Digital Synthesis) 原理

根据傅里叶变换可知——任何周期信号都可以分解为一系列正弦或余弦信号之和。
DDS 原理
一个正弦信号的时域表达式为:
s(t)=Asin(2πfct+θ0)s(t)=Asin(2\pi f_c t +\theta_0)
其相位为表达式为:
Φ(t)=2πfct+θ0\Phi(t)=2\pi f_c t + \theta_0
根据相位将一个正弦信号分成16份,则每一个相位对应一个幅值,如下图:
DDS 原理
将相位和幅值一一对应存储起来,则可以通过产生依次不同相位生成正弦信号。

下图是DDS结构:
DDS 原理
相位控制字:即相位偏移量,又叫POFF。通过设置相位控制字可以确定初始相位的偏移。
相位是以系数modulusmodulus为周期,即0(modulus1)0\sim(modulus-1)表示03600\sim360度。这个系数下面称为phase_modulusphase\_modulus,则推算出相位控制字的公式为:
POFF=phase×phase_modulus360 POFF=\frac{phase\times phase\_modulus}{360}
phasephase:即为想要输出的相位,或者说与默认值得相位差,这里输入03600\sim360即可.
phase_modulusphase\_modulus:相位系数为 2phasewith12phase_with-1
phase_withphase\_with:即相位位宽,在IP生成后的summarysummary界面可以查到。

频率控制字:即相位增量(每隔几个相位读取一次),又叫PINC。其公式为:
Δθ=fout×2Bθ(n)fclk\Delta\theta=\frac{f_{out}\times 2^{B_{\theta{(n)}}}}{f_{clk}}
fout=fclk×Δθ2Bθ(n)f_{out}=\frac{f_{clk}\times \Delta\theta}{2^{B_{\theta{(n)}}}}
foutf_{out}:即想要输出的频率;
Bθ(n)B_{\theta{(n)}}为频率精度的位数,其计算公式如下
Bθ(n)=log2fclkΔfB_{\theta{(n)}}=\left \lceil \log_2{\frac{f_{clk}}{\Delta{f}}} \right \rceil
fclkf_{clk}:即输入IP的时钟,也是这个信号的采样时钟;
Δf\Delta f:频率精度,即IP核设置钟的“Frequency Resolution”(频率分辨率)

相位累加器:相位累加器是DDS的核心,其功能就是完成DDS实现原理中的相位累加功能(频率控制字用于控制输出频率)。

相位寄存器:保证当频率字改变时不会干扰相位累加器的工作。

正弦查询表:相位、幅值一一对应关系就好比存储器中地址和存储内容的关系,如果把一个周期内每个相位对应的幅度值存入存储器当中,那么对于任意频率的正弦信号,在任意时刻,只要已知相位Φ(t),也就知道地址,就可通过查表得到s(t)

DAC: 数模转换

LPF: 低通滤波

处理过程如图所示:
DDS 原理