之前在博文使用數字示波器 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 時幾乎一樣。
對比在 使用數字示波器 DS6104 測量交流信號的幅值和相位[1] 中時基使用示波器測量的結果,可以看到,在 ts<0.002s 的時候,所得到的誤差與仿真的結果僅此,但當 ts 大于 0.002 之后,所得到的誤差就呈現了規律的鋸齒波的形狀。對于這個現象現在還無法解釋。
2. 加窗口之后對應的誤差
通過對數據增加三角窗和 Hanning 窗口[2] 加權處理,來評估時基對參數計算誤差。
(1)增加參加窗口
▲ 增加三角窗口
▲ 使用三角窗對采集數據進行處理之后的幅值誤差和相位
疑問:為何三角窗口對于相位影響這么大?
猜測: 可能這個問題來自于對信號的量化誤差所帶來的。
▲ 將量化 8bit 去掉之后,使用三角窗口加權數據所得到的復制誤差和相位
(2)增加 Hanning 窗口
▲ 對數據施加 Hanning 窗口對應的信號波形
▲ 使用 Hanning 窗口對數據加權計算的信號幅值誤差和相位
(3)增加 Hamming 窗口
▲ 增加 Hamming 窗口數據的波形
▲ 使用 Hamming 窗口對數據處理所得到的幅度誤差和相位
(4)對比三角窗口,Hanning 窗口以及 Hamming 窗口對于幅度誤差的影響
▲ 對比三種加窗方法測量幅值誤差曲線
▲ 對比三種加窗方法測量幅值誤差曲線(局部)
經過放大之后,我們看到上面的幅值誤差曲線呈現了某種隨機的情況。猜測這可能 與量化誤差有關系,下面重新將上述加窗方法數據生成一邊,只是將對信號的量化部分去除掉。繪制出三種加窗方法測量得到的誤差曲線(局部)如下:
▲ 將量化誤差去掉之后,三種加窗方法對應的幅值誤差曲線
可以看到沒有了量化誤差,測量誤差曲線與時基 ts 之間的關系變得有規律了,而不在呈現隨機狀態。
04 結論
通過實驗,可以看到在博文 使用數字示波器 DS6104 測量交流信號的幅值和相位[1] 中測量信號幅值和相位的過程中,時基 ts 對于測量誤差的影響所出現的現象并不能夠完全有理論仿真來解釋。特別是對于 ts 大于 0.002s 之后出現的情況,應該與示波器本身的采集原理有關系。
這個分析也證實了,在實際工程實踐中,除了理論部分分析之外,還需要考慮到實際測量過程所出現的其它異樣的情況。(作者: 卓晴 )
參考資料
[1]使用數字示波器 DS6104 測量交流信號的幅值和相位: https://zhuoqing.blog.csdn.net/article/details/106439663
[2]Hanning 窗口: https://dsp.stackexchange.com/questions/56400/hanning-and-hamming-window