在這篇文章中,我們將添加一些 Python 代碼來實現相移。然后我們將實際看到數組模式!最后!
數字移相
為了將我們的設置轉換為適當的相控陣,我們需要對接收到的信號進行相移。這將補償一個天線元件相對于另一個天線元件接收的延遲。幸運的是,對冥王星的接收數據應用相移(Δφ)非常容易 - 您只需乘以-jΔφ的復指數即可。所以Python代碼是:
delayed_Rx_1 = Rx_1 * np.exp(1j*np.deg2rad(phase_delay))
其中phase_delay以度為單位
這些代碼的大部分與我們之前博客中經歷的“Hello World”代碼非常相似。但是有兩個新功能:“calcTheta”和“dbfs”。“calcTheta”函數只是返回給定相移的轉向角(?)。我們在上一篇博客中看到了這些方程式。“dbfs”函數相對于冥王星的滿量程范圍縮放接收到的數據。它與dBm不同 - dBm相對于1 mW功率的dB。相反,dBFS是相對于接收器滿量程的dB。在這種情況下,它是冥王星ADC的滿量程 - 即12位。
最后,這個新的Python程序的重大變化是在Rx_1數據上實現相移。但是做一個相移并查看單個數據點并不是很有趣。因此,讓我們掃描從-180°到+ 180°的所有可能的相移。我們可以超越這一點,但階段只會重新包裝到自身,所以它不會給我們更多獨特的數據。
最終設置
但在單擊該運行按鈕之前,讓我們確保我們的設置正確。
首先,讓我們將TX1天線移動到? = 0°位置。這是機械視線位置。并將d設置為波長的一半左右。在我的程序中,我使用 2.3 GHz,因此我將 RX1 和 RX2 天線設置為 d=65 mm。
繪制光束
有了這個,我們可以點擊運行!您將看到的是我們應用于RX2的相移函數幅度圖。它看起來像這樣:
程序將記錄峰值的位置,并將該相移轉換為相應的轉向角。在這種情況下,峰值處于116°的相移處,對應于? = 40°的方向。但是我們將發射天線定位為 ? = 0°!!這到底是怎么回事呢?問題是相位校準 - 這在波束成形系統中非常重要。
校準
在我們的兩個接收通道之間,存在各種相位(和增益!)不匹配。例如,將天線連接到濾波器的 SMA 電纜的長度不完全相同。即使它們是,它們結構的微小差異也會使它們的電氣長度不同。因此,您可以從兩根電纜獲得不同的相移,在2.3 GHz。您可以購買相位匹配的電纜,但它們非常昂貴!即使你這樣做了,濾波器和模擬前端也存在其他不匹配。
幸運的是,對于雙元素數組,校準非常簡單。我們只需將發射器對準機械視線,然后將陣列移位,直到接收模式在發射器物理位置達到峰值(即 0°)。未校準的峰值現在為Δφ=116°,因此我們只需要將其添加到我們應用的每個相位延遲中即可。在“phase_cal”變量中輸入您的值(可能不會是 116°)。這樣做現在應該可以得到這個:
現在我們看到一個不錯的圖案,以0°為中心。如果你在自己的實驗室里做這件事(我真的希望你是 - 這就是這個博客的重點!),然后移動發射器并注意情節是如何變化的。您將看到峰值(由垂直紅色虛線表示)移動到發射器所在的位置。在每種情況下,您都可以看到振幅在發射器所在的位置附近基本持平,然后隨著相移的增加而滾落。您可以在上面列出的YouTube鏈接中看到此操作的視頻。這種相移應該在通電和時間推移中保持得很好。所以你可能不需要每次啟動冥王星時都這樣做。
到達方向
在上面的圖中,這條紅色垂直線給出了傳輸信號的“到達方向”(DOA)。我們將在以后的博客中對波束成形器做其他事情。但是現在,讓我們專注于將其用作DOA測量工具。對于DOA來說,我們必須做指南針圖是一個悠久的傳統。事實上,它已經在我上面鏈接的示例代碼文件中。只需設置“Plot_Compass = True”,您會看到如下所示的內容:
這條藍線將指向發射器的確切位置。
結論
我們終于做到了!我們構建了一個非常簡單的數字波束成型器
審核編輯“郭婷
-
接收器
+關注
關注
14文章
2478瀏覽量
72104 -
python
+關注
關注
56文章
4807瀏覽量
84959
發布評論請先 登錄
相關推薦
評論