DDS is short for “Direct Digital Synthesizer”
是从相位出发直接合成所需波形的一种频率合成技术。 原理是著名的采样定理。
1971 年,DDS由美国学者 J.Tierney,M.Rader 和 B.Gold等人提出 ,其论文可由google学术搜到 “A Digital Synthesizer” 。
特点: 任意波形周期信号,频率可控,相位可控。
流程如下: 按频率控制字累加,频率控制字就是相位累加的步长
实际应用:
一个任意波形周期信号为g(t),周期为T,如果周期变为2T,那么信号变为f(t)=g(0.5t);若果周期变为0.5T ,那么信号变为f(t)=g(2t);不管周期扩大或缩小,相同相位的函数值是不变的。
FPGA+DA ,DA数据输入时钟频率ƒc ,数据位宽不考虑。其实ƒc就是采样频率。
g(t)是要产生的波形(任意形式周期信号,周期T),把一个周期时间T内按相位2π等分成2N份,各个相位点为[0,2π/2N,...,2π*(2N-1)/2N],把这些相位点对应的g(t)幅值根据DA输入数据位宽量化后按地址写入查找表中,地址顺序为[0,1,2,...,2N-1]。
K=2m,称为频率控制字,范围[1,2N-1]; P称为相位控制字,范围[0,2N-1];
以时钟ƒc按地址(步长为 K)顺序读取查找表数据,n时刻对应地址为 :
addr=nK+P=n2m + P =n2m + P ;注意:地址是循环的,超出部分从头开始
对应相位为 : (2π/2N)*addr=(2π/2N)*(n2m + P);
n时刻读出来的幅值即为g(t)在相位(2π/2N)*(n2m + P)对应的幅值。
如果产生的是单频信号,那么产生波形的频率为 f=ƒc/2N-m ,相位为 P*2π/2N(弧度)。
如果不是单频信号,那么产生的基频是f=ƒc/2N-m;
例子:
如果g(t)是单频正弦波,那么n时刻,从查找表读出数据为:
g(n)=sin((2π/2N)*(n2m + P))=sin(n*2π/2N-m+P*2π/2N)
上式可写成
g(n)=sin(n*2πf/2N-mf+P*2π/2N) ,令 ƒc=2N-mf
g(n)=sin(n*2πf/ƒc+P*2π/2N)
于是产生的正弦波频率为f=ƒc/2N-m,相位为 P*2π/2N(弧度)
通过DA恢复出的信号就是 g(t)=sin(2πft + P*2π/2N) ;
如果g(t)不是单频信号,三角波,方波,或者其他任意的周期性信号,由于有无数个谐波频率,也就是带宽无限大,所以根据采样定理,不可能完全恢复原信号。只能当成有限带宽信号,不考虑高次谐波,用采样定理近似恢复原波形。尽可能使2N-m大一些
如果g(t)是三角波,那么恢复出的信号基频是 f=ƒc/2N-m ;如果想产生的三角波周期为T=1/f,那么采样率等于ƒc=2f,肯定不行,因为只能恢复基频信号,应考虑到至少三次谐波分量,至少用ƒc=8f 。
这样经DA恢复出的信号为 g(t)=g(t+t0) ,其中 P/2π=t0/T;
任意波形周期信号之所以也能用DDS原理产生,因为周期信号都是由(无数正弦波)无数谐波叠加而成的。
关键参数:ƒc 和 N ; 满足 ƒc=2N-mf m=[0,N-1] ;
当ƒc 不变,N变,那么产生波形的频率范围就会变;N变化,要重新计算查找表。
当ƒc 变,N不变,那么产生波形的频率范围也会变;查找表不用改变。
用户593939 2014-5-4 15:01
gaon2_614908070 2014-4-30 14:20
644398774_263592779 2013-12-7 08:32
644398774_263592779 2013-12-7 08:29
用户1726179 2013-12-4 10:16
用户403664 2013-12-3 16:12