Wireshark和USRP捕获同一信号波形差异原因
一、波形差异
在前面的博客中我对比绘制了同一信号的Wireshark和USRP两种波形:
可以看出波形差别还是挺大的,尤其是在信号分布间隔方面。
我猜想Wireshark的一条数据包在物理上并不是连续的:
而是分组发送,但在Wireshark中合并在一起。
下面就要验证我这个想法。
二、猜想验证
一个数据包最长不过3us:
USRP采集的信号1600us:
这篇博客算的1B(字节)传输大概需要2.67*10^-8, 26.7ns, 0.0267us:
根据Wireshark捕获数据包时间和长度绘制电脑发射信号波形-CSDN博客
其实这是有问题的,没考虑OFDM的多载波。考虑多载波的话:
WiFi通信OFDM子载波参数查询-CSDN博客
96个载波传输数据,1个字节长度为0.0267us*96=2.5632us。
重新算下一个数据包多长:
100-730us
已经查不太多了。
按1个字节长度2.5632us更正下对比波形图:
每一帧数据长度对上了,但是,数据数量对不上还是......
三、关键证据
Wireshark里明确说了:
[Time delta from previous captured frame: 1.616008000 seconds]
两帧之间隔了1.6秒
看上面USRP的波形图,根本没有1.6s那么长的空窗!
如果Wireshark捕获数据没问题,那有问题的就是USRP了。可是从USRP采集信号的频谱图来看,USRP采集的信号是没问题的:
唯一的可能是,Wireshark捕获的两个frame间隔1.6s并不能表示物理上两个信号之间也是间隔1.6s。
四、Npcap v.s WinPcap
了解了Npcap和WinPcap后发现WinPcap捕获的数据包是有限的:
很多帧都捕获不到。
这篇博客记录了我用WinPcap替代Npcap的过程:
Wireshark安装过程缺失vc_runtimeMinimum_x64.msi文件,安装 Visual C++ Redistributable_安装wireshark 缺少c++-CSDN博客
这样看来,还是得用最新的Npcap。