大家好,我是一个专心搞硬件,专注于模拟电路的苦逼小白工程师豆小白,在今后的日子里,我会把日常工作及学习中遇到的各类模拟电路问题及各类相关技术分享给大家,用最直白明了的语言将各类技术揉碎了喂给大家。那么,接下来,硬件饭堂就正式开饭,请各类道友们小板凳准备好!

饭堂第一餐:DDS,直接数字频率合成技术

相信大家在日常工作及学习中应该或多或少的都需要接触一些信号合成方面的东西吧,简单的比如通信电路中需要通过震荡来合成基波,复杂的呢,可能就不仅仅需要合成单一特定频率的正弦波,甚至还要能够让输出波形可调,甚至是输出其他形式的波形,那么,在这种情况下,dds技术便成为了各位最好的选择了。而该项技术的基本原理呢,也是比较简单的,下面就请我给大家好好说说这个DDS吧。

技术基本要点

1:频率的合成方式

对于一个正弦波,虽然它的幅度不是线性的,但是它的相位却是线性增加的。而DDS 正是利用了这一特点来产生正弦信号。那既然如此,我们就把正弦波的相位均分,比如均分为2^n份,而在每一个时钟周期出现的时候,相位则从0°步进一次,一直加2^n次,即可把整个360°相位加完,而每加一次便赋予其一个特定的幅值,那么加完后我们便得到了一个新的周期信号了,而该信号的周期即为加完这2^n次所需要的时间呀,设时钟频率为Fc,那么新的信号频率即为Fc/2^n。

dds传输性能测试(DDS数字信号合成让输出更快更顺滑)(1)

而当我们需要改变该信号的频率的时候,便有两种途径:

(1):改变相位的均分量,有些书上也叫做相位步进值,其实代表的含义都是一样的,360°均分的份数多了,加完整个360°所需要的时间也就大了呀,反之频率也就小了嘛。

(2):改变单次累加所需的时间,即通过分频的方式改变时钟周期。

2:幅值的合成方式:

对于一个正弦波信号而言,我们所需要的不仅仅是频率,还有信号幅值,而信号幅值的合成方式,是基于查表的方式进行合成的。在信号合成的时候,我们先预存几组特定正弦波的幅值,在合成时,用每次累加获取到的相位进行查表从而获取对应相位点的幅值,当然,我们不可能把所有可能需要的正弦波幅值都预存起来,只能先预存几组,而其他幅值的正弦波可以通过后续软件的细调和外部硬件电路加衰减或增益粗调来进行输出。具体电路原理可参考下图。至于软件细调方式及后续硬件电路的粗调档位的选择嘛,由于篇幅有限,在此就不多赘述了,如果各位看客大人感兴趣或有所需要,可关注或私信我呦!

dds传输性能测试(DDS数字信号合成让输出更快更顺滑)(2)

当然啦,任何一项技术都会有其优势及弊端嘛,DDS也一样,相较于传统的信号产生方式而言,DDS由于是从相位的角度进行信号的合成的,便使其拥有了超高速的频率切换时间,并且具有极高的频率精准度,而且也非常方便用于后续的信号调制。而且,毕竟DDS是基于数字技术合成的嘛,所以也具有非常好的可编程性。而其缺点呢,也是硬件电路中比较常见的一个现象吧,那就是高频信号的保真度的问题,毕竟慢慢来的时候,谁都挺好,但是一快就问题百出了,DDS也一样,当需要超高频率的信号而言,就拿最简单的正弦波举例吧,想提高频率,无外乎两个办法,要么提高系统时钟频率,要么减少相位步进次数,而相位步进次数太少,容易导致信号波形变形,所以就只能提高系统时钟频率啦。当然,有件事是可以肯定的,那就是越简单的波形能输出的最高频率越高,而例如方波这种信号的话,那可以肯定的是,基本上几MHz就已经不错了,频率再高的话,方波就变形了,至于原因嘛,咱们也可以简单说一下,大家如果感兴趣的话,可以自己验证呦!

首先呢,作为一个方波信号,其上升沿时间是一个很重要的考量参数,而对于高频方波而言吧,想要拥有很短的上升时间,最好的办法就是在相位步进时,上升过程只需要一个相位点即可,那么上升时间则是系统时钟周期,比如150MHz的系统时钟而言,其上升时间最快也就是6.6ns左右,但这只是理想状态下,因为只需要一个相位点的话,那么就会造成很大的过冲,所以基本上一个上升过程最起码也要两个相位步进,那么你的上升时间也就受到了一定的限制影响。

此外,衡量一个方波信号是否合格的另外一个考量参数,即高低电平时的平坦度,在高频情况下,效果也不是很良好。至于原因呢,大致就是:方波嘛,从FFT的角度来说,方波是由无数个奇次谐波组成的,例如1k的方波,那么其谐波频率即为1k,3k,5k,7k等等等等。同理,对于一个10MHz的方波而言,其谐波频率为10M.30M.50M.70M等等等等。理想情况下,奇次谐波阶数越高,方波越逼真,但这只是理想状况,而在实际中呢,有一个非常重要的限制因素,那就是滤波器。DAC输出后面必须要有滤波器对波形进行平滑,不然波形就阶梯上升了,而滤波器的截止频率设置的都并不会很高,就拿150MHz的DAC举例吧,后面我搭配过80M的滤波器,而对于这种情况而言,一个10M的方波信号,通过滤波器之后呢,其所包含的谐波频率就只有10M.30M.50M.70M了,而这四阶的谐波,根本无法使方波的变平坦,最后的结果就失真了。而如果提高滤波器的截止频率呢,却又容易使波形不够平滑,又或者从各种地方引入乱七八糟的噪声,最后得不偿失,就比如下图,10MHz的方波。

dds传输性能测试(DDS数字信号合成让输出更快更顺滑)(3)

所以最后的结果就是,像方波这种信号,很难做到非常高的频率了。当然,如果你有十几G甚至更高频率的时钟的话,简单的正弦波信号还是可以很轻松地做到非常高的频率的啦。

好啦,本次分享就暂时结束了,欢迎评论讨论呦!

,