之前在博文使用数字示波器 DS6104 测量交流信号的幅值和相位[1] 中对于使用示波器测量正弦交流信号的幅值和相位进行了分析和实验研究。但是对测量出的幅值和相位结果中的误差随着示波器的时基( time base )不同而改变的原因,究竟是在博文第二部分分析中理论上存在的误差引起的,还是由于示波器本身在同步、AD 位数精度、数据处理窗口方面引起的呢?
关于这个问题可以通过计算机仿真实验,对采集过程使用仿真来验证。
01 数据生成和计算方法
在实验中,根据 DS6104 示波器的参数,对于采集到的数据做一下假设:数据点个数,时基对应 100 个数据采样点。信号的频率,相位。数据的中心对应着时间 t=0 时刻,相当于信号触发同步的时间点位于示波器的中心。
下面给出生成数据的 Python 语句:下面给出当 ts=0.5ms 时对应的数据波形。
▲ 设置 ts=0.5ms 时对应的数据波形
利用在博文 使用数字示波器 DS6104 测量交流信号的幅值和相位[1] 中的计算方法求信号的有效值和相位。
测量得到的信号有效值和相位分别是:
E = 0.7071067811865476, theta=-1.0150610510858574e-17
02 采集位数对计算精度的影响
在示波器中,数据采集的位数为 8 位。下面对采集数据的位数分别从 1~16 进行仿真实验,验证采集数据的位数对测量的影响。
▲ 采集位数与幅度计算误差
▲ 不同采样位数下对应的采集波形
03 时基对误差的影响
在下面的仿真中,采集量化位数。时基从 30us 到 5000us,采集 200 个实验点。
1. 不加窗时对应的误差
▲ 不同时基采样对应的波形
▲ 不同的时基对应的计算误差,量化 bit=8
通过实验可以验证,如果取消量化过程,所得到的测量误差(幅值,相位)的情况与上面量化位数等于 8 时几乎一样。