利用LABVIEW的python接口调用Pluto SDR
利用LABVIEW的python接口調用Pluto SDR
1. 介紹
LABVIEW是NI公司推出的一款非常適合用于實時信號處理的編程軟件,其圖形化的開發方式有效縮短了測試驗證應用設計的時間,而且NI公司自己有多種型號的USRP產品,在SDR方面有較好的生態。
Pluto SDR 是一款基于AD9363芯片的低成本、支持 RX/TX 的 SDR,具有高達 56 MHz 的帶寬和 70 MHz 至 6 GHz 的頻率范圍。
Pluto官方支持的接口包括Matlab、C++以及python等,不能直接支持LABVIEW,但LABVIEW在2018版本后自帶了python接口,因此可以利用python將LABVIEW和Pluto聯系起來。
2. 準備工作
在計算機上安裝Pluto SDR驅動,以windows為例,參考Windows Drivers [Analog Devices Wiki]
安裝相應的python支持庫,參考pyadi-iio: Device Specific Python Interfaces For IIO Drivers [Analog Devices Wiki]
安裝成功后,連接好PlutoSDR,在python命令行中輸入下列命令,可得到如下結果。
安裝2018版本以上的LABVIEW軟件,我安裝的LABVIEW NXG。(若python為64位,LABVIEW也需要為64位)
3. python端函數設計
3.1 初始化函數
import numpy as np import adisdr = adi.Pluto()def PlutoInit(Gr, size, f0, fs, gain_mode): # Gr 接收增益# size 每一的接收長度# f0 中心頻率# fs 采樣率# gain_mode AGC增益控制模式選擇,有manual、slow_attcak、fast_attack三種if gain_mode == 0:sdr.gain_control_mode = 'manual'elif gain_mode == 1:sdr.gain_control_mode = 'slow_attcak'else:sdr.gain_control_mode = 'fast_attack'sdr.rx_hardwaregain_chan0 = int(Gr)sdr.sample_rate = int(fs)sdr.rx_lo = int(f0)sdr.rx_rf_bandwidth = int(fs)sdr.rx_buffer_size = sizereturn 03.2 接收參數設定函數(在程序運行時動態調制參數)
def ParamSet(f0, gain_mode, Gr):sdr.rx_lo = int(f0)if gain_mode == 0:sdr.gain_control_mode = 'manual'elif gain_mode == 1:sdr.gain_control_mode = 'slow_attcak'else:sdr.gain_control_mode = 'fast_attack'sdr.rx_hardwaregain_chan0 = Grreturn sdr.rx_lo, sdr.gain_control_mode, sdr.rx_hardwaregain_chan03.3 接收數據函數(讀取接收到的數據)
def Rx():data = sdr.rx() # 讀取長度為size的復數數據data = np.vstack((np.real(data), np.imag(data))) # 將數據轉換為二維DBL數組return data3.4 發射參數設定函數
def TxSet(Gt, f0, fs, wave):# Gt 發射增益# f0 發射載頻# fs 采樣率# wave 待發射的波形數據sdr.tx_hardwaregain_chan0 = Gtsdr.tx_lo = int(f0)sdr.tx_rf_bandwidth = int(fs)wave = np.array(wave)tdata = (wave[0]+1j*wave[1])*2**14 # 匹配Pltuo內部ADCsdr.tx_cyclic_buffer = Truesdr.tx(tdata)return 03.5 終止函數
def Stop():sdr.tx_destroy_buffer()return 04. LABVIEW程序設計
5. 實驗測試
通過閉環的方式發射首尾相連的線性調頻信號對發射與接收回路進行測試驗證。
總結
以上是生活随笔為你收集整理的利用LABVIEW的python接口调用Pluto SDR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NRF52832 nRF Toolbox
- 下一篇: 函数中out参数的应用