当前位置:首页 > 通信技术 > 通信技术
[导读]在通信侦察、电子对抗等宽带应用中,AD9361(集成式RF捷变收发器)凭借其70 MHz至6 GHz的频率覆盖与56 MHz的瞬时带宽,成为SDR系统的理想前端。本文将探讨如何利用GNU Radio快速构建AD9361的收发流图,并实现宽带信号的实时捕获与分析。



在通信侦察、电子对抗等宽带应用中,AD9361(集成式RF捷变收发器)凭借其70 MHz至6 GHz的频率覆盖与56 MHz的瞬时带宽,成为SDR系统的理想前端。本文将探讨如何利用GNU Radio快速构建AD9361的收发流图,并实现宽带信号的实时捕获与分析。


一、硬件架构:AD9361与Host的桥接


典型的AD9361 SDR平台(如ADALM-PLUTO或Zynq+AD9361定制板)通常采用“前端数字化+主机处理”的架构:


1.  AD9361:负责射频下变频(RF→Baseband)、ADC/DAC及AGC。

2.  FPGA:实现JESD204B接口时序、DDC/DUC(数字上下变频)及DMA数据传输。

3.  Host PC:运行GNU Radio,通过libiio驱动与硬件交互,进行信号处理和可视化。


二、GNU Radio流图设计:从射频到基带


在GNU Radio Companion (GRC) 中,我们通过模块化连接构建信号处理链。


2.1 接收(Rx)流图核心模块


一个标准的宽带捕获流图包含以下关键模块:


1.  IIO Device Source:这是与AD9361交互的核心模块。

   ◦   URI:指向硬件(如ip:192.168.2.1或usb:)。


   ◦   Device:选择ad9361-phy。


   ◦   Buffer Size:设置为65536以获得更大的捕获窗口。


   ◦   Sampling Rate:设置为AD9361的输出速率(如30.72 MSPS)。


   ◦   LO Frequency:设置射频中心频率(如2.4 GHz)。


   ◦   Gain Mode:通常选择manual,手动设置Rx增益。


2.  Frequency Xlating FIR Filter(频移滤波器):

   ◦   用于将宽带信号搬移到基带。设置Decimation为2或4以降低CPU负载,Center Frequency设为信号在接收带宽内的偏移量。


3.  Rational Resampler(有理重采样):

   ◦   将AD9361的高采样率转换为GNU Radio易于处理的速率(如2 MSPS),便于后续分析。


4.  QT GUI Sink(显示模块):

   ◦   使用Frequency Sink查看频谱,Time Sink查看时域波形,Constellation Sink查看星座图。


2.2 发射(Tx)流图核心模块


1.  Signal Source:生成要发射的信号(如CW、QPSK、LTE信号)。

2.  Rational Resampler:将低采样率信号插值到AD9361所需的Tx采样率。

3.  IIO Device Sink:与Source模块对应,负责将处理后的IQ数据通过DMA发送给AD9361进行上变频和发射。


三、宽带信号捕获实战:Python Snippet与文件存储


GNU Radio擅长实时处理,但对于宽带信号的“记录与回放”(Record & Playback),我们通常需要借助Python Snippet或File Sink。


3.1 使用Python Snippet进行实时捕获


在GNU Radio流图中插入Python Snippet模块,编写回调函数处理IQ数据。

# GNU Radio Python Snippet: capture_callback

# 该函数在每次接收到指定长度的数据块时被调用


import numpy as np

import datetime

import os


# 全局变量,用于控制捕获逻辑

capture_enabled = False

capture_count = 0

MAX_CAPTURES = 10


def capture_callback(data):

   """

   data: 输入的numpy数组,形状为 (num_channels, num_samples)

         对于AD9361,通常是 (2, N),即I/Q两路

   """

   global capture_enabled, capture_count

   

   if not capture_enabled:

       # 可以通过其他逻辑(如检测到特定信号)触发

       # 这里简化为手动触发或定时触发

       return


   if capture_count >= MAX_CAPTURES:

       print("Capture limit reached.")

       capture_enabled = False

       return


   # 提取IQ数据 (假设第一路是I,第二路是Q)

   iq_data = data[0] + 1j * data[1]

   

   # 生成文件名,包含时间戳

   timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")

   filename = f"/data/captures/adc_capture_{timestamp}.bin"

   

   # 以二进制形式写入文件 (int16或float32格式)

   # AD9361通常是12位数据,在GNU Radio中常转为float32

   iq_data.astype(np.complex64).tofile(filename)

   

   print(f"Captured {len(iq_data)} samples to {filename}")

   capture_count += 1


注意:此代码块需嵌入GRC的Python Snippet模块,并连接到IIO Device Source的输出端口。


3.2 使用File Sink进行原始数据存储


对于长时间的原始IQ数据记录,直接使用File Sink模块效率更高。

# 在GRC中添加 File Sink 模块

# File: /data/raw_iq_capture.dat

# Type: complex64 (或 short for int16 if supported by your SDR source)

# Num Items: 0 (unlimited)


这种方式会持续将IQ数据流写入硬盘,适合后续使用Matlab、Python或GNU Radio离线处理。


四、信号捕获后的离线分析示例


捕获到的.bin文件可以使用Python进行分析:

import numpy as np

import matplotlib.pyplot as plt


# 读取捕获的数据

data = np.fromfile('/data/captures/adc_capture_xxxx.bin', dtype=np.complex64)


# 计算频谱

plt.specgram(data, NFFT=1024, Fs=30.72e6/4) # Fs为实际采样率

plt.title('Spectrum of Captured Signal')

plt.xlabel('Time')

plt.ylabel('Frequency (Hz)')

plt.show()



五、结语


基于AD9361和GNU Radio的SDR系统,极大地降低了宽带射频开发的门槛。通过IIO驱动实现与硬件的无缝对接,利用GRC流图快速搭建收发链路,再结合Python Snippet或File Sink实现精准的信号捕获,开发者可以专注于算法验证与协议分析,而无需陷入底层驱动开发的泥潭。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

你周围的无线电频谱中正在发生着什么?有调频广播电台在播放音乐,空中交通管制员在指挥飞机,业余无线电爱好者在跨越大陆进行交流,气象卫星正在向地面传送图像,数字数据正通过空气传输——这一切都是无形的存在,却始终存在。

关键字: 无线电频谱 SDR 频谱扫描仪

2026年2月6日,中国——欧洲知名的SoC FPGA和抗辐射FPGA技术设计公司NanoXplore与服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST,纽约证券...

关键字: FPGA SoC SDR

随着无线设备、物联网和5G网络的不断增长,射频环境越来越多的人,越来越吵,越来越难以管理,而许多服务都在争夺同样的资源:射频波段。在这种情况下,测量和分析特定位置的射频频谱的能力在许多情况下是极其有用的,为移动服务运营商...

关键字: 软件无线电 频谱监测

SDR 可应用于整个 5G 测试链,并用于延迟 T&M、信号传播测量、O-RAN 测试平台和 NFV 测试。 下一场技术革命正在敲门,5G NR 和物联网推动海量设备互联,实现超低延迟、安全通信、云和边缘计算,以及为工...

关键字: SDR 5G NR

在这篇文章中,小编将为大家带来无人机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 无人机 GPS SDR

软件无线电技术,顾名思义是用现代化软件来操纵、控制传统的“纯硬件电路”的无线通信。软件无线电技术的重要价值在于:传统的硬件无线电通信设备只是作为无线通信的基本平台,而许多的通信功能则是由软件来实现,打破了有史以来设备的通...

关键字: 软件无线电 通信 移动通信

所谓软件无线电,其关键思想是构造一个具有开放性、标准化、模块化的通用硬件平台,各种功能,如工作频段、调制解调类型、数据格式、加密模式、通信协议等,用软件来完成,并使宽带A/D和D/A转换器尽可能靠近天线,以研制出具有高度...

关键字: 软件无线电 调制解调 加密模型

摘 要 :文中主要介绍了基于 AD9959 和 STM32 的软件无线电发射系统。系统对输入音频采用 FM 调制方式,无线电信号频率为 FM 及以下波段,使用 STM32F103 系列 MCU 作为主控,使用型号为 AD...

关键字: 软件无线电 AD9959 FM STM32 通信 ARM

六月已见底,又双叒叕是年中了~各位攻城狮们,项目进展如何啦?还是那些让人头大的设计难题,纠结的产品选型?没关系!这次!ADI将用最专业的技术继续为大家排忧解难提供方案设计“A之选”!“A之选”射频篇ADI是业界卓越的半导...

关键字: 4G AD9361

1 引言   近几年来随着数字技术和网络通信技术的飞速发展,广播电视也正经历由模拟信号转向数字信号的巨大变革。清晰度大幅提升、交互性、多媒体信息丰富等是数字信号电视带给人们的直观感受。数

关键字: 软件无线电 扩频通信
关闭