了解最新公司动态及行业资讯
LogicRF™ H102支持PyADI-IIO,版本0.0.13,对应Libiio V0.24。
PyADI-IIO 相关链接:
https://wiki.analog.com/resources/tools-software/linux-software/pyadi-iio
https://analogdevicesinc.github.io/pyadi-iio/devices/adi.adrv9002.html
对应API函数源码见如下链接:
https://github.com/analogdevicesinc/pyadi-iio/blob/v0.0.13/adi/adrv9002.py
windows环境下直接安装libiio驱动,libiio-0.24.gc4498c2-Windows-setup.exe,
windows下建议Anaconda(内置Spyder IDE),下载地址:https://www.anaconda.com/download/
安装完成后,打开Anaconda Prompt 命令行窗口,输入iio_info -s,如下就说明libiio驱动安装好了。
打开Spyder,Ipython控制台输入
pip install pyadi-iio==0.0.13
新建.py文件,输入
import adi # 检查pyadi-iio是否安装成功 print("pyadi-iio version:", adi.__version__)
执行程序,在右下的Ipython控制台可以看到 打印信息”pyadi-iio version: 0.0.13“,则说明pyadi-iio安装好了。
新建py文件,代码如下,执行就可以获取数据。
# -*- coding: utf-8 -*- """ Created on Mon May 24 11:20:18 2023 @author: LogicRF @email:info@logicrf.com """ import adi import numpy as np import matplotlib.pyplot as plt from scipy import signal import time # 检查pyadi-iio是否安装成功 #print("pyadi-iio version:", adi.__version__) # 初始化ADRV9002设备 h102 = adi.adrv9002(uri="ip:10.0.0.48") # 替换为你设备的实际IP地址 # 关闭发射通道 # 禁用发射通道0,1 h102.tx0_en = 0 h102.tx1_en = 0 # 打印当前设置的LO频率 print("RX LO Frequency: ", h102.rx0_lo) print("RX LO Frequency: ", h102.rx1_lo) # 设置RX的LO频率 h102.rx0_lo = 1650000000 # 设置RX1 LO频率为1.65 GHz h102.rx1_lo = 1650000000 # 设置RX2 LO频率为1.65 GHz # 或者使用属性名称设置RX LO频率 #h102._set_iio_attr("altvoltage0", "RX1_LO_frequency", True, 1450000000) #h102._set_iio_attr("altvoltage1", "RX2_LO_frequency", True, 1450000000) #获取采样率 fs = int(h102.rx0_sample_rate) print("rx0_sample_rate: ", fs) #获取采样率 bw = int(h102.rx0_rf_bandwidth) print("rx0_rf_bandwidth: ", bw) h102.rx_buffer_size = 2 ** 10 # Collect data for r in range(20): x = h102.rx2() #从RX2通道接收数据 f, Pxx_den = signal.periodogram(x, fs) plt.clf() plt.semilogy(f, Pxx_den) # plt.ylim([1e-9, 1e2]) plt.xlabel("frequency [Hz]") plt.ylabel("PSD [V**2/Hz]") plt.draw() plt.pause(0.05) time.sleep(0.1) # 从RX1通道接收数据 rx_data = h102.rx1() # 绘制接收到的数据 plt.figure() plt.plot(np.real(rx_data), label='Real Part') plt.plot(np.imag(rx_data), label='Imaginary Part') plt.legend() plt.title('Received Data') plt.xlabel('Sample Index') plt.ylabel('Amplitude') plt.show() # 关闭设备 del h102`
上一篇:logicrfclk库使用说明
下一篇:没有了!