一、USRP信號
USRP捕獲信號的波形如下:
放大后:
100ms
10ms
1ms
100us
10us
1us
二、波形分析
2.1 時間分辨率
采樣率61.44MHz, 對應時間分辨率為1/61.44us=0.01627us=16.27ns。
這時間分辨率夠用了,數據包長度為1到20us:
2.2 Wireshark和USRP采集信號出入
感覺有點不太好根據Wireshark分離出USRP捕獲的信號......
取絕對值:
現在的關鍵問題是,即便我用Wireshark計算的數據包波形去分離USRP采集的信號,怎么驗證這個分離出來的信號就是我電腦和路由器相互通信的信號呢?
思路:
我目前想到的方法是,利用USRP采集信號的空窗部分。USRP采集的信號幾乎每時每刻都有數據,這是頻點多用戶使用的原因,這樣導致看起來好像沒用空窗。但是,我的電腦、路由器離USRP近,別人的設備離USRP遠,USRP采集我的電腦、路由器信號強度更高,高強度信號出現、消失和Wireshark數據包波形應該是對應的。
但奇怪的是,USRP捕獲的信號高強度部分幾乎占滿了整個時間軸,和Wireshark波形對不上:
我想可能的原因是2.4G頻段穿墻效果不差。
還是覺得奇怪,就算2.4G穿墻效果不差,別人家的信號總是比我家信號弱的。
所以,另一種原因是Wireshark捕獲不全?
這是我之前用Wireshark捕獲的一份信號,也不是密集到URSP波形那樣:
兩個調查方向:
① USRP信號視頻圖。
② Wireshark捕獲數據中Source和Direction都不含192.168.1.103的部分有沒有可能也是路由器和我電腦發送的?
2.3 USRP采集2.4G信號視頻圖
從時頻圖可以看到多個子載波,同時有明顯的TDD時分復用痕跡:
我大概明白USRP采集的信號為什么像一把梳子了,因為TDD的原因:
這樣的話就不能用我前面提出的通過間隔驗證信號是否正確分選出來的方法了。
得再想想怎么讓USRP和Wireshark捕獲信號相互印證......
2.4 64QAM
我的另一篇博客查了我電腦和路由器通信用的是64QAM:
Wireshark獲取數據傳輸的碼元速率-CSDN博客
不知道能不能看出來。
星座圖繪制程序:
clc
clear
close all% 打開文件
% fid = fopen('real_data_show.txt', 'rb'); % 'rb'表示以二進制讀取模式打開文件
fid = fopen('cooperate with wireshark.txt', 'rb'); % 'rb'表示以二進制讀取模式打開文件% 讀取數據
raw = fread(fid, Inf, 'float32', 0, 'l'); % 假設數據是16位整數,'b'表示小端% 關閉文件
fclose(fid);data = raw(1:2:end) + 1i * raw(2:2:end); % 復數數組samp_rate = 61.44e6; % 采樣率 250 kHz
% signal_duration = 10; % 每個信號的時長 1秒
% samples_per_signal = samp_rate * signal_duration;
% num_signals = floor(length(data) / samples_per_signal);
% signals = reshape(data(1:num_signals * samples_per_signal), samples_per_signal, num_signals);
% data = signals(:,5);
data = data(1:round(samp_rate*3));% 繪制星座圖
figure;
scatter(real(data), imag(data), 1, 'b', 'filled'); % 繪制復數點
title('Constellation Diagram');
xlabel('In-phase');
ylabel('Quadrature');
grid on;
axis equal;
有一個圓的白點輪廓:
加一句話,再繪圖:
data(abs(data)<0.6)=0;
xlim,ylim調整下:
xlim([-2,2])
ylim([-2,2])
好奇怪,為什么IQ圖是方形的......
2.5 WiFi CSMA/CA 信號時長、間隔特性
首先要明白WiFi的TDD和5G移動通信的TDD是不一樣的,前者是按需分配(CSMA/CA),后者是固定分配:
WiFi(IEEE 802.11協議)并不像4G/5G蜂窩網絡那樣,為每個用戶預先分配固定的、周期性的時間間隔。WiFi采用的是一種競爭機制,所有用戶在一個共享的頻道上“爭先恐后”地發送數據。其核心是?CSMA/CA(Carrier Sense Multiple Access with Collision Avoid,載波監聽多點接入 / 碰撞避免)。
OFDM是Orthogonal Frequency Division Multiplexing正交頻分復用技術。
這篇博客對CSMA/CA技術介紹的非常好:
計算機網絡:數據鏈路層 - CSMA/CA協議-CSDN博客
我更關注的是CSMA/CA主導WiFi信號發送的間隔:
802.11 標準規定所有的站點必須在持續檢測到信道空閑一段指定時間后才能發送幀,這段時間稱為幀間間隔 IFS, Interframe Space。
常用的兩種幀間間隔如下:
短幀間間隔 SIFS:
長度為 28 微秒,是最短的幀間間隔,用來分隔開屬于一次對話的各個幀,一個站點應當能夠在這段時間內從發送方式切換到接收方式。
分布式幀間間隔 DIFS:
長度為 128 微秒,它比短幀間間隔 SIFS 要長得多。在 DCF 方式中用來發送數據幀和管理幀。
一個關鍵的結論就是,CSMA/CA主導的WiFi通信,兩幀之間必定有至少28us的SIFS間隔,大部分時間是大于128us間隔的:
2.6?TDD時隙
比對下USRP采集信號的梳狀結構和TDD時隙是否能對上:
0.2s大概3-4個間隔,對應0.05s, 50ms
DIFS 128us,再考慮退避算法用的時間