雷达干扰模拟器2-实时信号接收

1.目标

对雷达进行干扰,首先要发现周围的雷达信号,知道雷达发射信号的频点以及波形样式,所以实时信号接收是第一步。

任务分解:

  • 信号接收
  • 最大吞吐率
  • 时域和频域显示
  • 参数动态调整

2.信号接收

在所有的依赖库和安装包都安装完成后,将 PLUTO 连接到计算机,通过 python 即可读取 PLUTO 接收到的信号。

import adi

sdr = adi.Pluto()
data = sdr.rx()
print(data)
# 显示结果为:[ 46. +47.j  16. +39.j 134.+107.j ...  27. +71.j   1. +23.j  17. +33.j]

PLUTO 的 ADC 采样位数为 14 位,采样的数字信号的显示范围位[-2048,2048],因此通过 sdr.rx() 读取的数字信号在使用时需要整体除以 2048 进行归一化。

通过 LABVIEW 的 python 节点,可直接调用编写好的 python 函数,从而将 sdr.rx() 的输出传递到 LABVIEW。

3.最大吞吐率

由于 PLUTO 采用的 USB2.0 的接口,其数据传输速率受到接口的限制,接收信号的采样率高到一定程度后,就会发生数据丢包。

import adi
import time

sample_rate = 6e6 # 采样率
n = 200000 # 一次接收长度
m = 500

center_freq = 100e6 # 中心频率

sdr = adi.Pluto()
sdr.sample_rate = int(sample_rate)
sdr.rx_rf_bandwidth = int(sample_rate) 
sdr.rx_lo = int(center_freq)
sdr.rx_buffer_size = n 
start_time = time.time()
for i in range(m):
    samples = sdr.rx() 
end_time = time.time()
print(end_time - start_time)
print('实际采样率:', n*m/(end_time - start_time)/1000000)

通过测试得到,若要保证不丢失数据,在一次接收长度较长,十万级别时,实际采样率能达到最大值 6MHz 左右,在千位级别时,只能达到 4MHz。

4.时域和频域显示

LABVIEW 的优势就在于对于数据的实时显示和交互实现起来非常简便。

在这里插入图片描述

LABVIEW 自带高性能的 FFT 处理模块以及多种数据显示模块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GpLeGA0O-1673321451871)(assets/image-20230110112313-94ug43b.png)]

5.参数动态调整

LABVIEW 的编程方式可以很容易实现多线程操作,在实时显示信号的同时,通过事件结构,监测前面板各参数输入框,在用户调整参数时,调用对应的 python 函数,将参数通过 python 传递给 PLUTO。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rHyMyuKc-1673321451873)(assets/image-20230110112711-dp3o2wd.png)]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值