初识REDHAWK

文章目录

  • 前言
  • 一、什么是 REDHAWK?
    • 1、概述
    • 2、REDHAWK 的应用
  • 二、REDHAWK 的流程管理和交互方法
    • 1、流程管理
    • 2、数据传输
  • 三、入门
    • 1、安装 REDHAWK
    • 2、IDE 快速入门
      • ①、启动 REDHAWK IDE
      • ②、打开 Chalkboard
      • ③、创建信号发生器
      • ④、测试组件的输入/输出响应


前言

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 的主要好处包括:

  • omn​​iORB 是一个易于构建和安装的小软件包。它默认支持 Python 和 C++,并且可以轻松扩展以支持 Java。
  • omn​​iORB 数据传输非常高效。omn​​iORB 通信机制的可插拔特性允许使用多种底层传输协议,这些协议可以根据部署环境进行定制。例如,位于同一主机上的组件使用 Unix 域套接字来传输数据,作为基于 IP 的通信的替代方案。
  • CORBA 处理不同主机类型之间的数据转换(例如,32 位与64 位系统以及大端与小端)。
  • CORBA 支持 Any 类型,允许接口之间的通用兼容性。
  • omn​​iORB 实现了开放标准 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。
在这里插入图片描述


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/446696.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Opencv 绘制线段、矩形、圆形、多边形操作

1、前言 OpenCV提供了许多用于绘制图形的方法 包括绘制线段的line()方法、绘制矩形的 rectangle()方法、绘制圆形的 circle()方法、绘制多边形的 polylines()方法和绘制文字的 putText()方法 本章将依次对上述各个方法进行讲解&#xff0c;并作出相应实验。 因为 OpenCV 中的…

简洁的链式思维(CCoT)提示

原文地址&#xff1a;Concise Chain-of-Thought (CCoT) Prompting 传统的CoT导致了输出令牌使用的增加&#xff0c;而CCoT提示是一种旨在减少LLM响应的冗长性和推理时间的提示工程技术。 2024 年 1 月 24 日 Areas where Chain-Of-Thought-like methodology has been introd…

【C/C++ 学习笔记】函数

【C/C 学习笔记】函数 视频地址: Bilibili 函数结构 返回值类型函数名参数列表函数体语句return 表达式 返回值类型 函数名 (参数列表) {函数体语句;return 表达式; }声明 在函数定义之前声明函数&#xff0c;可以声明多次&#xff0c;但是只能定义依次 返回值类型 函数名…

计算机考研|保姆级择校+资料+全年规划

本科211&#xff0c;研究生上岸某985 计算机考研备考过程中走了不少弯路&#xff0c;希望我的经验能够帮助大家少走弯路 大家决定考研之前&#xff0c;一定要认真思考自己考研的目的是什么&#xff0c;有的人是随大流&#xff0c;别人考研&#xff0c;就跟风考研&#xff0c;有…

JDK 17:Java生态系统的最新巨擘

JDK 17&#xff1a;Java生态系统的最新巨擘 &#x1f680; JDK 17&#xff1a;Java生态系统的最新巨擘 &#x1f680;摘要 &#x1f31f;引言 &#x1f308;模块一&#xff1a;性能优化与提升 &#x1f527;垃圾回收器的改进&#xff1a;JIT编译器的优化&#xff1a;其他性能优…

Visual Basic6.0零基础教学(2)—vb中类的介绍和基本控件的属性

Visual Basic 6.0中类的介绍和基本控件的属性 文章目录 Visual Basic 6.0中类的介绍和基本控件的属性前言一、对象的有关概念1.类2.对象3.对象的三要素4.5. VB程序的执行步骤 二、基本控件属性1.修改控件属性的练习案例 总结 前言 大家好&#xff0c;昨天我们学习了vb的简单介…

python实现生成树

生成树 生成树&#xff08;Spanning Tree&#xff09;是一个连通图的生成树是图的极小连通子图&#xff0c;它包含图中的所有顶点&#xff0c;并且只含尽可能少的边。这意味着对于生成树来说&#xff0c;若砍去它的一条边&#xff0c;则会使生成树变成非连通图&#xff1b;若给…

【学习】pytorch框架的数据管理—— 理解Dataloader

参考&#xff1a;https://spite-triangle.github.io/artificial_intelligence/#/./README 1.标准数据集 使用&#xff1a;以 CIFAR10 数据集为例&#xff0c;其他数据集类似。 # root&#xff1a;数据存放路径 # train&#xff1a;区分训练集&#xff0c;还是测试集 # trans…

前端加密面面观:常见场景与方法解析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

vue项目部署服务器,因为跨域设置nginx.config要修改的配置

下面是我在vue项目中vite.config.js设置的配置代理 对于部署项目需要使用nginx进行vue项目的话&#xff0c;需要对nginx的配置文件进行如下修改即可

Linux:线程互斥与同步

目录 线程互斥 锁的初始化 加锁 解锁 锁的初始化 锁的原理 死锁 线程同步 方案一&#xff1a;条件变量 条件变量初始化 等待 唤醒 条件变量的代码示例 基于阻塞队列的生产消费模型 方案二&#xff1a;POSIX信号量 初始化信号量&#xff1a; 销毁信号量 等待信…

动态规划|【路径问题】|174.地下城游戏

题目 174. 地下城游戏 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健…

map和set(二)——AVL树的简单实现

引入 二叉搜索树有其自身的缺陷&#xff0c;假如往树中 插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff0c;因此 map、set等关联式容器的底层结构是对二叉树进行了平衡处理&#xff0c;即采用平衡树来实现。简…

可免费使用的AI平台汇总 + 常用赋能科研的AI工具推荐

赋能科研&#xff0c;AI工具助你飞跃学术巅峰&#xff01;(推荐收藏) 文章目录 赋能科研&#xff0c;AI工具助你飞跃学术巅峰&#xff01;(推荐收藏)一、可免费使用的AI平台汇总1. ChatGPT2. New Bing3. Slack4. POE5. Vercel6. 其他平台7. 特定功能平台8. 学术资源平台9. 中文…

14 OpenCv边缘处理

文章目录 卷积边界问题边缘处理copyMakeBorder 算子代码 卷积边界问题 图像卷积的时候边界像素&#xff0c;不能被卷积操作&#xff0c;原因在于边界像素没有完全跟kernel重叠&#xff0c;所以当3x3滤波时候有1个像素的边缘没有被处理&#xff0c;5x5滤波的时候有2个像素的边缘…

华为OD机试C卷“跳步-数组”Java解答

描述 示例 算法思路1 不断移动数组将元素删去&#xff08;并未彻底删除&#xff0c;而是将数字元素前移实现“伪删除”&#xff09;这样删除元素的位置就呈现一定规律&#xff0c;详细见下图&#xff08;潦草的画&#xff09; 答案1 import java.util.*;public class Main {…

蓝桥杯刷题5--GCD和LCM

目录 1. GCD 1.1 性质 1.2 代码实现 2. LCM 2.1 代码实现 3. 习题 3.1 等差数列 3.2 Hankson的趣味题 3.3 最大比例 3.4 GCD 1. GCD 整数a和b的最大公约数是能同时整除a和b的最大整数&#xff0c;记为gcd(a, b) 1.1 性质 GCD有关的题目一般会考核GCD的性质。   …

国家医保局开通异地就医备案办理功能,哪些人群适用?

2022年6月30日&#xff0c;国家医保局会同财政部印发《关于进一步做好跨省异地就医基本医疗保险直接结算工作的通知》&#xff08;民保发〔2022〕30号&#xff09;。 22号文&#xff08;以下简称《通知》&#xff09;。 《通知》明确&#xff0c;长期跨省异地居住或临时跨省外出…

PostgreSQL数据优化——死元组清理

最近遇到一个奇怪的问题&#xff0c;一个百万级的PostgreSQL表&#xff0c;只有3个索引。但是每次执行insert或update语句就要几百ms以上。经过查询发现是一个狠简单的问题&#xff0c;数据库表死元组太多了&#xff0c;需要手动清理。 在 PG 中&#xff0c;update/delete 语句…

Axure原型设计项目效果 全国职业院校技能大赛物联网应用开发赛项项目原型设计题目

目录 前言 一、2022年任务书3效果图 二、2022年任务书5效果图 三、2022年国赛正式赛卷 四、2023年国赛第一套样题 五、2023年国赛第二套样题 六、2023年国赛第三套样题 七、2023年国赛第四套样题 八、2023年国赛第七套样题 九、2023年国赛正式赛题&#xff08;第八套…