初识REDHAWK

简介: 初识REDHAWK

前言

REDHAWK 是一个基于 SCA (Software Communications Architecture) 标准的开源软件定义无线电 (SDR) 框架SCA 是一套定义了软件无线电组件如何交互和通信的标准,目的是提高软件无线电系统的互操作性和可重用性。REDHAWK 利用 SCA 的原则来支持广泛的无线电频谱处理应用,允许开发者构建、部署、和管理复杂的信号处理应用。通过使用 SCA,REDHAWK 提供了一个灵活和动态的环境,使得无线电和处理组件可以轻松地集成和配置。

因此,为了实现对波形在 SCA 上面进行部署,因此有必要学习一下 REDHAWK。


一、什么是 REDHAWK?

REDHAWK 是一个软件包,支持实时、支持网络的软件定义无线电 (SDR) 的设计、开发、部署、管理和升级

1、概述

REDHAWK 软件包由四个主要部分组成:

  • 一组用于管理软件应用程序的分布式部署的程序。
  • 一组工具,允许开发人员轻松创建可在 REDHAWK 环境中部署的软件。
  • 一组用于检查和分析正在运行的 REDHAWK 系统内部情况的工具。
  • 一组信号处理构建块,开发人员可以将其组合成更大的定制应用程序

在 REDHAWK 中开发的信号处理应用程序可以部署在从单个 Linux 计算机到支持网络的 Linux 计算机系统的任何设备上。REDHAWK 解决了复杂的“幕后”硬件/软件集成挑战,以便开发人员可以专注于应用程序开发:基本 REDHAWK 使用不需要对硬件和软件系统的深入了解。

REDHAWK 还标准化了数据接口、硬件管理和配置管理,这有利于非分布式应用程序开发人员。

2、REDHAWK 的应用

REDHAWK 是为开发 SDR 而设计的。相对于硬件定义的同类产品,SDR 具有高度可重新配置的优势。通过使用 REDHAWK,SDR 开发人员可以专注于信号处理算法,而不必担心在网络环境中部署此类算法的责任。

虽然 REDHAWK 旨在支持 SDR 的数据流需求,但它还有助于通过定义明确的通用接口等功能将其他软件和硬件资产集成到计算系统中。

二、REDHAWK 的流程管理和交互方法

这里讨论 REDHAWK 的基本分解和部署以及用于支持基本功能单元之间通信的中间件。

1、流程管理

REDHAWK 中的基本功能单元是组件,它代表主机上的单个进程。该组件支持初始化配置查询测试连接到其他组件以及终止组件所需的接口。它还管理一个处理线程,其中包含组件的功能输入/输出数据的缓冲。组件可以用 C++、Python 或 Java 编写。

波形是要作为应用程序部署到 REDHAWK 系统上的组件的逻辑集合,并在 XML 文件中定义。波形允许开发人员创建由组件组成的算法。将算法组合为单独的进程使 REDHAWK 能够将这些组件适当地部署到网络环境中。REDHAWK 通过为组件找到合适的主机、将组件部署到该主机以及在组件运行后对其进行管理来支持分布式计算。

2、数据传输

跨网络的数据交换是 REDHAWK 核心功能不可或缺的一部分。数据交换的管理是通过“中间件”来处理的,“中间件”是一种复杂的软件基础设施,它提供了一种通用语言,可以通过任意媒体在任意语言之间有效地传输数据。为 REDHAWK 选择的中间件是 omniORB,它是 CORBA(通用对象请求代理架构)规范的实现。REDHAWK 使用 omniORB,因为它比其他中间件实现提供了显著的技术优势。

使用 omniORB 的主要好处包括:

  • omniORB 是一个易于构建和安装的小软件包。它默认支持 Python 和 C++,并且可以轻松扩展以支持 Java。
  • omniORB 数据传输非常高效。omniORB 通信机制的可插拔特性允许使用多种底层传输协议,这些协议可以根据部署环境进行定制。例如,位于同一主机上的组件使用 Unix 域套接字来传输数据,作为基于 IP 的通信的替代方案。
  • CORBA 处理不同主机类型之间的数据转换(例如,32 位与64 位系统以及大端与小端)。
  • CORBA 支持 Any 类型,允许接口之间的通用兼容性。
  • omniORB 实现了开放标准 CORBA,允许系统开发人员使用他们可能想要用于其基础设施的任何其他 CORBA 实现来与底层 REDHAWK 系统进行交互。

总之,omniORB 是一个简单高效的中间件包,允许 C++、Python 或 Java 程序相互交互。REDHAWK 框架缓解了 CORBA 的缺点,而 CORBA 固有的优点,如平台独立性、泛型类型支持、强类型接口和开放标准,为 REDHAWK 带来了强大的功能。

三、入门

1、安装 REDHAWK

REDHAWK 核心框架和 IDE 的安装是通过一组 RPM 进行的。使用 RPM 可以自动安装 REDHAWK 运行所需的依赖项以及自动安装核心框架和 IDE。

我的本地环境为虚拟机中 CentOS7.4 + REDHAWK 2.3.1,安装步骤请参考官方教程:REDHAWK 2.3.1 安装步骤

2、IDE 快速入门

下面进行 REDHAWK 信号处理开发环境的简单示例

以下部分讨论如何启动 REDHAWK IDE、如何打开黑板、如何创建信号发生器以及如何测试组件的输入/输出响应。

①、启动 REDHAWK IDE

<1>、使用以下命令启动 REDHAWK IDE:

rhide

<2>、如果提示指定工作区位置,请选择适当的位置并选择“确定”。

打开后的主界面如下:

②、打开 Chalkboard

从 REDHAWK Explorer 视图中展开 Sandbox,然后双击 Chalkboard。

③、创建信号发生器

<1>、从 Chalkboard Palette 中,将 SigGen (python) 组件拖到 Chalkboard 画布中。

  • 在 Palette 中,如果未显示 SigGen 组件,请在 Components 下左键单击rh文件夹以显示可用组件的列表。
  • 如果未显示 Python 实现,请通过左键单击组件名称左侧的箭头来展开实现列表。显示列表后,左键单击所需的实施。
  • 当组件加载完成后,其背景颜色为蓝色。

    <2>、右键单击 SigGen 组件,然后单击 “Start”。

    <3>、右键单击 SigGen 组件,然后单击“Show Properties”。从“Properties”视图中,将频率更改为 20Hz,将幅度更改为 1V

    <4>、右键单击 SigGen 的 “dataFloat_out” 端口,然后单击 “Plot Port Data”,可以看到 20Hz,幅度为1 V的正弦波

    <5>、右键单击 SigGen 组件,然后单击 “停止”。

④、测试组件的输入/输出响应

<1>、从 Chalkboard Palette 中,将 HardLimit (python) 组件拖动到 Chalkboard 画布中。

<2>、单击并从 SigGen的dataFloat_out 端口拖动到 HardLimit dataFloat_in 端口

<3>、右键单击 SigGen 组件,然后单击 “Start”,右键单击 HardLimit 组件,然后单击 “Start”。

<4>、右键单击 HardLimit 的 dataFloat_out 端口,然后单击 “Plot Port Data”。

现在打开两个绘图端口视图,每个绘图端口对应一个视图。

<5>、右键单击 SigGen 组件,然后单击“Show Properties”,从“Properties”视图中,将幅度更改为 5,HardLimit dataFloat_out 端口的绘图端口视图现在将输出限制为 1。

目录
相关文章
|
资源调度 监控 调度
基于SCA的软件无线电系统的概念与架构
软件通信体系架构(SCA)是基于软件定义无线电(SDR)思想构建的开放式、标准化和模块化平台,旨在通过软件实现通信功能的灵活配置。SCA起源于美军为解决“信息烟囱”问题而推出的联合战术无线电系统(JTRS),其核心目标是提升多军种联合作战通信能力。 上海介方信息公司的OpenSCA操作环境严格遵循SCA4.1/SRTF标准,支持高集成、嵌入式等场景,适用于军用通信、雷达等领域。 SCA体系包括目标平台资源层(TRL)、环境抽象层(EAL)、SRTF操作环境(OE)及应用层(AL)。其中,SRTF操作环境包含操作系统、运行时环境(RTE)和核心框架(CF),提供波形管理、资源调度等功能。
|
算法 C++ 索引
GNURadio+USRP+OFDM实现文件传输(一)
GNURadio+USRP+OFDM实现文件传输(一)
3051 1
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
1337 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
存储 前端开发 API
探索后端技术:构建高效系统的关键路径
在数字化时代,后端技术作为软件架构的核心支柱,承载着处理数据逻辑、服务前端应用和确保系统稳定运行的重要职责。本文将深入浅出地介绍后端技术的基础知识、关键组件以及在实际项目中的应用实践,旨在为开发者提供一条清晰的学习路径,助力其构建高效、可扩展的后端系统。通过案例分析和最佳实践的分享,我们将揭示如何运用现代后端技术解决复杂业务问题,提升用户体验,并推动企业的数字化转型进程。
|
Windows
基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道
本文通过MATLAB仿真实现了OFDM系统中BPSK、QPSK、4QAM、16QAM和32QAM调制解调过程,并在加性高斯白噪声信道及TDL瑞利衰落信道下计算了不同信噪比条件下的误比特率。
1443 4
基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道
关于QtCreator使用fcitx无法输入中文的解决方法(从根本解决问题)
关于QtCreator使用fcitx无法输入中文的解决方法(从根本解决问题)
|
弹性计算 小程序 Android开发
使用无影云电脑玩《黑神话·悟空》游戏教程,无需下载,开机即玩!
本教程详细介绍如何利用阿里云无影云电脑轻松畅玩《黑神话·悟空》游戏,无需下载游戏客户端,开机即可体验。首先需下载无影客户端并购买个人铂金款云电脑(14.9元首月)。购买后,通过输入WeGame版或Steam版镜像分享码并选择电竞模式来配置云电脑。最后,在云电脑中启动WeGame客户端并登录账户,手动添加游戏路径后即可游玩。注意游戏需单独购买,并记得游玩后关闭云电脑以避免额外计费。更多详情与步骤请参阅阿里云官方指南。
|
SQL 监控 Java
C3P0数据库连接池
C3P0数据库连接池
452 0
|
机器学习/深度学习 算法框架/工具 计算机视觉
使用Python实现图像分类与识别模型
使用Python实现图像分类与识别模型
601 2
使用Python实现图像分类与识别模型
|
Linux
linux centos7查看linux的登录日志
linux centos7查看linux的登录日志
1059 2
linux centos7查看linux的登录日志

热门文章

最新文章

下一篇
开通oss服务