日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用LABVIEW的python接口调用Pluto SDR

發布時間:2024/1/18 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用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 0

    3.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_chan0

    3.3 接收數據函數(讀取接收到的數據)

    def Rx():data = sdr.rx() # 讀取長度為size的復數數據data = np.vstack((np.real(data), np.imag(data))) # 將數據轉換為二維DBL數組return data

    3.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 0

    3.5 終止函數

    def Stop():sdr.tx_destroy_buffer()return 0

    4. LABVIEW程序設計

  • 前面板
  • 程序框圖(部分需要切換界面,顯示不全)
  • 5. 實驗測試

    通過閉環的方式發射首尾相連的線性調頻信號對發射與接收回路進行測試驗證。

    總結

    以上是生活随笔為你收集整理的利用LABVIEW的python接口调用Pluto SDR的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。