AD9833信号波形谐波

AD9833产生高频信号的谐波

  ~
AD9833是一款AnalogDevices公司提供的数字信号可编程信号发生器芯片。它一般配有外置的主时钟信号,每次时钟信号将将内部28位的相位累加器递增一个相位数值。该相位数值由芯片SPI串口被外部的MCU设置。

相位累加器的高12位选择内部4096个ROM存储器所存储的正弦波信号采样数据,然后送到后面的10BIT的DAC,最终产生所合成的信号。

虽说AD9833能够在外部25Mhz的主时钟的驱动下,最高产生12.5Mhz的波形,但所产生的正弦波形的失真就很严重了。

下面实验所使用的AD9833外部的主时钟的频率为25Mhz。根据它的工作原理,它是对一个周期的正弦波的数字采样数据(10BIT,4096个数据点)重新按照25Mhz进行采样输出。通过设置每次采样递增的相位,最终决定了输出信号的频率。

AD9833框图
AD9833原理框图

例如,如果25Mhz采样的递增相位是2 π \pi /5,那么每经过物次采样就加成一个周期的正弦波输出,所以输出的正弦波的频率是25Mhz的五分之一,即5MHz。由于每个周期的正弦波只使用五个采样点表示,所以输出的波形在时间轴上的量化误差比较大,波形失真比较严重。

下图是通过示波器采集到的AD9833输出5Mhz的时候信号的波形。

在这里插入图片描述
采集AD9833产生的5Mhz的波形
  ~
上述失真正弦波形的频谱,包含了很多高次谐波,通过DSA815采集显示它的频谱如下图所示:
在这里插入图片描述
AD9833波形的频谱

频谱中除了5Mhz的基频信号之外,还有20MHz,30Mhz, 45MHz谐波信号。没有10Mhz,15Mhz,35Mhz的频谱。

将DSA815观察频谱的范围放大到100Mhz,所得到AD9833所产生的5Mhz的频谱如下面动图所示。除了基波频谱之外,它的高斯谐波频率为 n n \cdot 25Mhz ± 5 \pm5 Mhz,即序列{20, 30, 45, 55,70,80…}

在这里插入图片描述

  ~
试验所使用的电路板是在前面实验过程中制作的, 它们的连接分别是:
1. AD9833数字信号发生器;
2. 使用9833谐波发送调频信号;

在这里插入图片描述

  ~
  ~
通过数据可以模拟计算出对于正弦波进行每个周期5个采样点所产生的波形数据。随着采集的波形数据减少,波形失真逐步增大。
在这里插入图片描述

绘制上述波形的Python代码如下面所示:

#------------------------------------------------------------
SAMPLE_POINTS = 5           # Sample points number per-period

t = linspace(0, 4 * 2 * pi, 200)
sint = sin(t)
sintt = []

step = SAMPLE_POINTS * 4
for i in range(step):
    v = sint[int(i * len(sint) / step)]
    n = len(sint) - int(i * len(sint) / step)
    if i < step - 1:
        if n > int(len(sint) / step):
            n = int(len(sint) / step)
    sintt.extend([v] * n)

plt.plot(t, sint, label='Sinusoid')
plt.plot(t, sintt, label='Undersample')
plt.xlabel('Samples')
plt.ylabel('Amplitude')
plt.grid(True)
plt.legend(loc='upper right')
plt.show()

如何减少AD9833的波形失真?


波形失真的主要原因来自于在所产生的正弦限号的每一周期内的采样点数过少。随着采样点增多,所产生的波形失真就会减少。

下图显示了使用相同的主震荡频率(25Mhz)分别产生从1M~12.5MHz的波形。显示出随着波形频率增加,信号的失真程度增加。

在这里插入图片描述

增加采样点的个数,在相同的主频下,所产生的信号的频率就会降低。所以需要根据实际信号的频率范围,合理选择主频率。
在这里插入图片描述
每个周期采样个数从4个增加到50个,对应的波形失真情况

发布了257 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/104144028
今日推荐