当前位置: 首页 > article >正文

GNURadio-软件无线电入门教程

目录第一章 GNURadio 和软件无线电概述1.1什么是 GNU Radio1.2为什么我们要使用 GNU Radio1.3关于数字信号处理1.4GNU Radio 是如何工作的第二章 GNU Radio 软件安装与配置2.1操作系统的选择2.2Linux 环境下的直接安装2.3Linux 下使用PyBOMBS 辅助自动从源码构建2.4Linux 下手动从源码编译构建请参阅2.5Windows 环境下的安装2.6Mac OS X 环境下的安装第三章 教程初阶3.1熟悉使用 GNU Radio Companion第一章 GNURadio 和软件无线电概述1.1什么是 GNU RadioGNU Radio 是一个软件框架使用户能够设计、模拟和部署功能强大的软件无线电系统。它是一个高度模块化的面向“流程图”的框架带有一个全面的处理模块库可以轻松组合并构成复杂的信号处理系统的应用程序。GNU Radio 已用于大量的无线电应用程序。包括音频处理移动通信跟踪卫星雷达系统GSM数字无线电等等所有这些都在计算机软件中使用。1.2为什么我们要使用 GNU Radio以前在开发无线电通信设备时工程师必须先开发用于接收并处理特定信号的接收机 来对特定信号传输进行解码或编码。随着数字信号处理与其算法越来越复杂这些信号处理的平台也变得越来越复杂通常需要较为高速的 ADC、FPGA 以及能将实时数据串流到计算机平台的连接芯片等每个系统所对应的硬件平台不一定是一样的这就带来了巨大的开发成本。通过使用软件无线电SDR设备进行模拟信号处理在相同的硬件平台上可以同时兼容运行各种不同的软件程序不仅节约了开发成本也提高了开发新系统的效率。1.3关于数字信号处理作为一种软件框架GNU Radio 通过硬件平台串流的比特数据流输入到计算机中并在操作系统中运行相应的应用程序以此达到对特性信号进行处理的目的。我们都知道计算机只能处理数字信号。如何去理解数字信号呢简单举个例子当你想要录制一段人声的时候说话的人会产生声音信号该信号由震动导致周围气压发生变化而产生。这样一个时变的物理量就是一种信号。当空气波到达麦克风时麦克风将变化的压力转换为电信号即可变电压现在我们已经将信号转化为了电信号在一些模拟系统中已经可以开始对信号进行处理。但是对于我们的计算机系统一个数字的系统这还远远不够。为了使计算机能够处理这样的数据我们还需要满足两个条条件1.是有限点数的 2.是在有限时间之内的因此该数字信号可以由称为样本的数字序列表示。采样之间的固定时间间隔直接影响到采样率。提取物理量电压并将其转换为数字样本的过程由模数转换器ADC完成。相反我们还有数模转换器DAC可从将计算机中提取数字序列转换为模拟信号。现在我们已经有了一个数字序列我们的计算机就可以使用它进行各种操作。同样电磁波显然也是一种波它跟声波有许多相同的性质。我们可以用天线将变化的电信号发射出去这个电信号一般位于一个较高的频率上可以是数百 KHz 到 GHz。通过使用软件无线电接收机我们可以接收并对这些信号进行处理以此进行我们想要的操作。1.4GNU Radio 是如何工作的在 GNU Radio 中为了处理数字信号我们可以使用简单的流程指示箭头将其连接在上图中Signal Source 即为信号源左边的输入接口可以输入频率参数右边的输出接口可以输出音频数据流。右边的 Audio Sink 为音频接收器允许通过扬声器或其他音频设备播放出输入的信号。这就构成了一个十分简单的流程图点击软件中的运行按钮即可非常简单快捷的编译流程图并运行。GNU Radio 是一个框架用于开发这些处理模块并创建流程图。软件自带大量的处理模块在这里简单举例一些Waveform Generators 信号发生器Constant Source 常数源可以理解成直流分量Noise Source 噪声源Signal Source e.g.Sine,Square,SawToothe.g.Sine,Square,SawTooth 信号源ModulatorsAM Demod AM 解调Continuous Phase Modulation 连续相位调制PSK Mod / Demod PSK 调制/解调GFSK Mod / Demod GFSK 调制/解调GMSK Mod / Demod GMSK 调制/解调QAM Mod / Demod QAM 调制/解调WBFM Receive 宽带 FM 接收机NBFM Receive 窄带FM 接收机使用这些模块我们只需要进行相应的连接操作就可以快速搭建数字信号处理系统。另外当然你也可以自己开发新的 block或者将现有的块与其他软件结合在一起开发出新的功能。因此GNU Radio 主要是用于开发信号处理模块及其交互的软件框架。它带有广泛的标准块库开发人员可以在其中构建许多系统是十分方便的软件无线电开发工具。第二章 GNU Radio 软件安装与配置GNURadio 的官方 GitHub 页面为 https://github.com/gnuradio/gnuradio。其首页中也明确说明了对于不同操作系统的不同安装方式。2.1操作系统的选择我个人最推荐使用 Ubuntu18.04 我在这个系统版本上搭建过很多次所需要的环境没怎么出过问题使用一直很稳定。19 版本或许可以我没有尝试过但是 20 版本一定不可以 因为有接到过软件报错的情况报告。2.2Linux 环境下的直接安装对于GNU Radio如果只是简单轻度使用我就建议大家直接使用 Linux 的二进制软件包安装。最快捷方便而且最重要不容易出错。根据 GNURadio 官方 GitHub 界面首先的安装方式也是直接使用 apt 安装。以下命令适用于 DebianUbuntu 及其衍生版本。它将使用 Python2 安装 GNURadio 3.7 版sudo apt install gnuradio对于以上操作系统直接执行这条命令即可安装完成。如果遇到报错建议自行查询报错信息解决。对于其他 Linux 发行版请查阅https://wiki.gnuradio.org/index.php/InstallingGR#From_Binaries2.3Linux 下使用PyBOMBS 辅助自动从源码构建PyBOMBS 是安装GNURadio 以及相关软件工具的一个快捷工具。你可以使用它来安装各种 SDR 设备所依赖的支持库绝大部分操作都是全自动的。PyBOMBS 是方便用来从源代码构建 GNU RadioUHD 和各种 Out of TreeOOT模块然后将其安装到指定的用户目录中的工具。在使用之前PyBOMBS 会检测用户的操作系统并在构建的第一阶段加载所有先决条件可能会出现各种花式报错。如果你对于自己解决 Linux 环境配置问题不是很有信心我不建议你使用这种方法安gnuradio。注意GitHub 中详细描述了安装的步骤请自行参阅项目地址https://github.com/gnuradio/pybombs因为它是从源代码安装GNU Radio所以第五步可能需要一些时间要进行更快的安装 请参阅 https://wiki.gnuradio.org/index.php/InstallingGR#Ubuntu_PPA_Installation2.4Linux 下手动从源码编译构建请参阅https://wiki.gnuradio.org/index.php/InstallingGR#From_Binaries2.5Windows 环境下的安装在 Windows 环境下官方提供了非正式版的 GNU Radio 3.7 和 3.8 的安装文件虽然我也不推荐你真的在 Windows 平台运行这个软件但是它在 Win 平台是真的可以使用的。不管是 USRP 还是 PlutoSDR有驱动程序的话就可以使用。对于 USRP可能存在固件版本的问题按照教程后面的解决办法是可以解决的。相关的安装软件包在这里下载http://www.gcndevelopment.com/gnuradio/index.htm2.6Mac OS X 环境下的安装你是认真的请参阅https://wiki.gnuradio.org/index.php/MacInstall第三章 教程初阶3.1熟悉使用 GNU Radio Companion学习目的使用标准块库创建流程图了解如何使用检测模块 Sink 调试流程图了解GNU Radio 中的采样和调节功能了解如何使用文档找出模块的功能在本教程中我们将从简单框图开始探讨如何使用 GNU Radio 的图形工具GNU RadioCompanionGRC来创建不同的框图。GRC 是为了简化 GNU Radio 而诞生的有了它 我们可以以图形化编程的方式创建 python 脚本替代了传统的复杂代码编写进而降低软件无线电编程的入门门槛。那么我们开始。首先打开终端输入以下指令。$ sudo gnuradio-companion或者直接单击软件图标也是可以运行软件的。如果你发现不仅应用程序中没有出现软件图标而且终端也不能打开这个软件那么你的安装很有可能出现了问题。请检查安装是否存在问题。这里有一点区别。当你通过终端运行 GRC 时下图绿色部分的终端会同时在系统终端里显示。而如果直接通过点击软件图标运行则只能在GRC 的终端面板中观察信息。首先我们来介绍软件界面。总共分为五个部分库工具栏终端工作区和变量。红色区域为工具栏部分放置了平时最常用的工具比如运行、停止、编译等重要功能按键。新建、打开、保存、关闭打开/关闭变量编辑器、截图、剪切、复制、粘贴、删除选中模块查看错误信息、编译流程图、执行流程图、停止运行流程图撤销、重做启用选中模块、禁用选中模块、绕过选中模块、反转禁用连接/模块的状态查找模块、重置模块、打开选中阶梯模块源码蓝色区域即为我们绘制具体流程图的地方。我们可以将右边灰色部分库中的模块拖入蓝色区域并且将他们通过箭头连接起来这样就可以构成一个真正的信号处理系统。黄色部分显示的是当前框图中所使用到的变量。在蓝色部分的左上角可以看到两个方框 分别是 Options 与 Variable这两个是创建工程时就会自动创建的。在界面的右边灰色区域中存放了大量可以用于拖拽到流程图中的模块。其中有很大一部分是软件安装时就自带的如果你安装了其他gnuradio 附属的插件脚本也会一并显示在框中通常自行安装的会显示在最后面。因为模块非常多因此平时寻找想要的模块时一个一个手动翻找会非常麻烦。此时可 以点击工具架上的放大镜图标或是输入 Ctrl f 输入该块的关键字进行检索就可以更容易的找到这个block。例如这里我们输入 sink接收器,就可以看到包含单词“接收器”的所有块以及将在其中找到每个块的类别。现在我们来添加一个名为 QT GUI Time Sink 的块方法是单击其名称并将其拖动到工作区中或者双击其名称以将其自动放置在工作区中。工作区包含构成流程图的所有块在每个块内部都有不同的块参数但是每个新流程图都需要有一个特殊的块称为“选项块”。让我们双击选项块以检查其属性。双击opthions 模块可以看到它的具体内容。Options 中包含了工程的特殊参数设置每个流程图仅允许存在一个这样的选项模块。上面的 IDtitleauthordescription分别表示这个流程图的 ID标题以及作者和简介。该块的 ID 决定了生成文件的名称和类的名称。例如一个 ID 为 top_block 的文件将生成文件 top_block.py 和 top_block 类。Cavans Size 窗口大小控制流程图编辑器的尺寸。窗口大小宽度高度必须介于300300和40964096之间。Generate options 生成选项控制生成的代码的类型。非GUI 流程图应避免使用带有GUI的组件或图形变量控件。Run流程图的运行可由变量控制以在需要时启动和停止流程图。Max number of output 最大输出数是流程图中任何方框所允许的最大输出项数要禁用此功能将max_nouts 设置为 0 即可。使用此功能可以调整流程图可以显示的最大延迟。可以注意到另一个关键的东西。我们可以输入信息的字段中存在的不同颜色。这些实际上对应于不同的数据类型我们将在本教程的后面部分介绍这些数据类型。GRC 将我们在编辑器中创建的流程图转换为Python 脚本。因此当我们执行流程图时 实际上是在运行编译好的Python 程序。ID 用于命名该 Python 文件该文件与.grc 文件保存在同一文件夹内。默认情况下ID 是默认值因此它将创建一个名为 default.py 的文件。更改 ID 可让我们更改保存的文件名以便更好地管理文件。在 GNUradio 3.8 中如果不更改默认 ID则会收到错误消息因此需要更改此 ID 才能运行流程图。Variable 即变量它的 ID 是 samp_rate你可以在框图中的其他地方调用这个变量。例如这样这里的数值就会随着该变量的变化而变化。如果你点进了设置面板的第三个选项卡就能看到有关这个block 的文档。通常情况下正规的 block 都是会写使用文档的当然少数自定义的模块可能是没有的。虽然这些说明是英文的但是我十分建议大家自己去用谷歌等工具翻译一下这些文档因为教程不可能每个详细的点都能讲到有时还是得靠自己查一查的。如果我们删除了一个重要的参数或是填入了什么不正确的参数以至于我们的框图无法正常运行那么此时你会看到执行按钮变成灰色不可点击的状态。此时报错信息按钮亮起并且在出现错误的block 上它的名称出现了红色的高亮显示。你可以点击这个按钮就可以看到存在问题的错误信息。在错误信息中详细指出了错误出现的位置如果看不懂就用翻译工具翻译一下不过英语这么差我建议你直接放弃这玩意高中生都能看懂。#日常劝退我们只需要按照报错信息所提示的位置模块-top block-选项中的一个参数max_nouts双击打开这个模块就可以看到在模块中也存在同样的错误信息提示位于正下方。错误明确指出在这个输入框中数值“”不能被接受因为这里必须填写的是一个数字 我们填写数字 0 进去后点击确定即可发现错误信息已经消失。执行按钮也亮起说明框图无明显错误可以正常运行。现在我们对如何找到块如何将它们添加到工作区以及如何编辑块属性有了更好的了解下面我们随意以几个 block 组成一个框图来进行简单的演示。刚才我们拖入了 QT GUI Time Sink 这个模块这是个图形接收器可以同时显示多个信号。接下来我们搜索并向流程图中添加 Signal Source信号源模块和 Throttle节气门模块有关这几个模块详细的说明将在之后的教程中详细讲解现在只需知道此块会限制流程图的某些数据即可以确保它不会占用 100CPU 资源导致电脑直接卡到裂开。“生成流程图”“ 执行流程图”和“终止流程图”的快捷键分别为 F5F6 和 F7。你可以在我们刚刚提到的工具架上点击这些按钮或者直接按快捷键来进行相关的操作。当你按下生成流程图按钮之后软件就会自动将你刚才绘制的流程图转化为一个 python 脚本文件。单击执行流程图按钮之后就可以看到以下运行结果。如果你不想运行了只要点击终止流程图即可停止当前运行的程序。这样我们的第一个流程图就成功运行了。这是一个从信号源产生信号经过限流器限制后输出到 time sink 进行接收并显示到屏幕上的操作。你可以注意到这里有两根数据曲线被绘制出来他们都来自于 Data 0蓝色的曲线为Re实部红色部分为 Im虚部。如果你根本不知道Re 和 Im 是什么个玩意儿那么我建议你先学习下我们电子通信类专业的一门必修课程《复变函数》这将会对你的系统性学习产生很大的帮助。有意思的是这两个信号的相位差正好为 这对于我们的零中频Zero-IF接收/发2射机有至关重要的意义不过这个咱们以后有机会再提。在这个流程图中我们很轻松的就把所有的block 连起来了轻松的离谱你不觉得吗 没有出现任何头疼的问题或是错误。那么有没有会出现错误的情形呢当然有而且经常会有。Source IO size 8 does not match sink IO size 4.源 IO 大小“ 8”与接收器 IO 大小“ 4”不匹配。这似乎是一个和数据类型有关的报错。既然出现了这个错误那么就说明我们还没有搞懂框图输入输出的数据类型到底是个什么玩意儿。那么现在就让我们点击软件上方的help这里面有对于数据类型的说明。最上面那个棕色的看的不是很清楚不过这问题不大你用鼠标把它选中高亮就能看清了。我们可以看到在许多编程语言中都可以看到的常见数据类型。在我们刚才搭建的流程图中你可以注意到所有连接的模块端口均是蓝色的这代表当前所传输的数据为Complex Float 32 类型这意味着它们同时包含实部和虚部并且每一个都是 Float 32 类型。我们可以推断出当“Time Sink 时间接收器”采集到这样一个Complex 的数据类型时 它将在两个不同的通道上同时输出实部和虚部的图像也就是我们刚才看到的红蓝两种颜色的图像了。现在进入其 Signal Source 的属性面板并更改“输出类型”参数将信号源更改为浮点型输出。此时我们传输的数据流是一个普通的 32 位浮点数。可以看到现在我们所有连接的点均变成了橘色当然 throttle 也要调整别问我为什么它还是蓝色的这也就说明了目前数据类型均匹配当然刚才出现的报错也就消失了。有同学发现 throttle 的输出连接了两个 block。不同的节点之间是可以支持多条同样的数据链路的这是非常方便的一点也是绝大部分图形化编程界面都具有的功能。可以注意到刚才的两条线此时变成了只有一条线这是因为我们刚刚修改了数据类型。现在让我们来尝试一些更复杂的框图吧。运行结果如下

相关文章:

GNURadio-软件无线电入门教程

目录 第一章 GNURadio 和软件无线电概述 1.1什么是 GNU Radio 1.2为什么我们要使用 GNU Radio 1.3关于数字信号处理 1.4GNU Radio 是如何工作的 第二章 GNU Radio 软件安装与配置 2.1操作系统的选择 2.2Linux 环境下的直接安装 2.3Linux 下使用PyBOMBS 辅助自动从源码…...

去“人工”化浪潮:OpenClaw把AI开发拉进低代码时代

提起AI应用开发,圈内人的第一反应永远是:门槛高、流程繁、人工成本炸锅。想搭一个能用的AI智能体,从环境配置、模型对接、Prompt工程、流程编排到调试部署,每一步都离不开资深算法和后端开发人员,普通开发者、业务团队…...

Java学习笔记_Day12

常见API8.正则表达式可以用来校验字符串是否满足一定的规则,并用来校验数据格式的合法性作用一:校验字符串作用二:本地爬虫和网络爬虫Pattern:表示正则表达式Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串…...

数智化转型的重要引擎:国产iPaaS厂商Top3深度解析

在全球企业数字化转型的浪潮中,系统集成能力已成为决定企业业务协同效率与数据价值释放的核心要素。iPaaS(集成平台即服务)作为连接异构系统、打破数据孤岛的关键枢纽,其市场需求正呈现爆发式增长。据贝哲斯咨询统计,2…...

利用过年假期自学黑客技术_网络安全,要多久才能接单赚钱,对未来发展有什么好处?

利用过年假期自学黑客技术/网络安全,要多久才能接单赚钱,对未来发展有什么好处? 假期一到,不少粉丝私信问我:“从现在开始自学网络安全(俗称‘黑客技术’),到底要多久才能接单赚钱&a…...

ROS机械臂开发实战:MoveIt!配置中SRDF报错的5分钟修复指南

ROS机械臂开发实战:SRDF虚拟关节报错的深度解析与高效修复 当你在ROS中为机械臂配置MoveIt!时,突然跳出一条红色错误信息:"No root/virtual joint specified in SRDF. Assuming fixed joint",这就像在高速公路上突然遇到…...

灵毓秀-牧神-造相Z-Turbo与ChatGPT协同创作方案

灵毓秀-牧神-造相Z-Turbo与ChatGPT协同创作方案 1. 引言:当文字遇见画面 你有没有遇到过这样的情况:脑子里有一个特别棒的故事场景,却不知道怎么把它变成画面?或者想为小说角色设计形象,但绘画技能跟不上想象力&…...

实测灵毓秀-牧神-造相Z-Turbo:如何写出有效的图片描述词

实测灵毓秀-牧神-造相Z-Turbo:如何写出有效的图片描述词 1. 理解模型特性:为什么描述词如此重要 1.1 模型的核心能力边界 灵毓秀-牧神-造相Z-Turbo是基于Z-Image-Turbo底座,专门针对《牧神记》中灵毓秀角色进行优化的文生图模型。与通用模…...

NFS共享那些坑:从‘insecure参数‘到‘nolock选项‘的避坑指南(附CentOS8实测)

NFS共享配置深度解析:从参数调优到故障排查实战 在分布式系统架构中,网络文件系统(NFS)作为经典的共享存储解决方案,凭借其简单高效的特性,至今仍广泛应用于企业级环境。然而,正是这种"简单"的表象下&#x…...

保姆级教程:用Python从零复现Pan-Tompkins算法(含MIT-BIH数据库验证)

保姆级教程:用Python从零复现Pan-Tompkins算法(含MIT-BIH数据库验证) 在生物医学信号处理领域,心电信号(ECG)分析一直是研究热点。而QRS波群的准确检测,则是整个ECG分析流程中最关键的环节之一。…...

华为昇腾 Atlas200DK 从零部署:系统烧录、环境配置与摄像头检测实战

1. 认识你的Atlas200DK开发板 第一次拿到华为昇腾Atlas200DK开发板时,我盯着这个巴掌大的黑色盒子看了半天。它比我想象中要小巧精致,但接口却异常丰富:两个千兆网口、HDMI输出、USB Type-C、40针扩展接口,还有那个显眼的TF卡槽。…...

毕业设计实战:基于SpringBoot+Vue+MySQL的铁路订票管理系统设计与实现指南

毕业设计实战:基于SpringBootVueMySQL的铁路订票管理系统设计与实现指南 在开发“基于SpringBootVueMySQL的铁路订票管理系统”毕业设计时,曾因车票预订表未通过用户ID与火车信息ID双外键关联踩过关键坑——初期仅单独设计预订表的预订编号字段&#xff…...

**发散创新:Rust中的错误处理艺术 —— 从 Panic 到 Result 的优雅演进**在现代编程语

发散创新:Rust 中的错误处理艺术 —— 从 Panic 到 Result 的优雅演进 在现代编程语言中,错误处理机制的设计直接决定了代码的健壮性与可维护性。Rust 以其独特的所有权模型和编译时检查闻名,而它的错误处理体系更是体现了“零成本抽象”的哲…...

PCB LDI设备行业痛点解析及解决方案应用

随着5G通信、人工智能、智能汽车等产业的快速迭代,PCB(印刷电路板)正朝着高密度、高精度、轻薄化方向加速升级,HDI板、IC载板等中高端产品的市场需求持续攀升,作为PCB制造曝光工序的核心设备,激光直接成像&…...

#基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型# ①内有cpar...

#基于carsim与Simulink联合仿真的车辆换道轨迹规划与轨迹跟踪模型# ①内有cpar文件和simulink文件,并有联合仿真步骤的演示操作视频 ②carsimsimulink联合仿真实实现换道超车,包含换道决策,路径规划和轨迹跟踪,有直道和弯道超车两…...

ChatGPT降智问题深度解析:从原理到工程实践

ChatGPT降智问题深度解析:从原理到工程实践 作为一名长期与各类AI模型打交道的开发者,我深刻体会到,将ChatGPT这类大语言模型(LLM)集成到生产环境中,远不止是调用一个API那么简单。最令人头疼的问题之一&a…...

Adobe Audition

链接:https://pan.quark.cn/s/f39cab74e39eAdobe Audition简称(AU) 是音频和视频处理行业专业人士的专业工具,为你提供了几乎无限的可能性。易用性与灵活性完美结合,让您可以创建一流的母版、编辑、混音、处理和应用各种声音特效。使用 Adobe…...

Gemini-Cli New 二次开发版:网络受限环境下的高效代码开发工具

Gemini-Cli New 二次开发版:网络受限环境下的AI代码工作流实现 Gemini-Cli New 是基于 Google 官方 Gemini CLI 二次开发的命令行 AI 工具,在完整保留原版代码查询、大代码库编辑、应用生成及任务自动化核心能力的基础上,针对网络受限场景做…...

比迪丽WebUI参数调优:种子固定+步数递增实现渐进式质量提升

比迪丽WebUI参数调优:种子固定步数递增实现渐进式质量提升 1. 引言:从“能用”到“好用”的进阶之路 如果你已经用比迪丽WebUI画过几张图,可能会发现一个有趣的现象:同样的提示词,每次生成的效果都不一样。有时候运气…...

AI转行风口已至!揭秘高薪岗位、薪资待遇及普通人成功秘诀

本文详细解析了AI行业的核心岗位,包括AI产品经理、AI解决方案专家、AI应用工程师、AI算法工程师和AI运营/数据运营等,并提供了相应的薪资范围和关键词。文章还讨论了转行AI岗位的核心技能和包装方法,强调了理解AI原理、数据准备、Prompt工程、…...

人工智能生态-魔搭社区

文章目录魔搭社区如何查看token?其他文档什么,没听说过魔搭社区?。。。魔搭社区(ModelScope)非常重要,是国内 AI 开发与应用的核心基础设施与生态枢纽。尤其对做中文 AI、大模型、RAG、多模态应用的开发者 / 企业,它…...

OpenClaw+Qwen3.5-4B-Claude:代码审查自动化实战案例

OpenClawQwen3.5-4B-Claude:代码审查自动化实战案例 1. 为什么需要自动化代码审查 作为一个长期与代码打交道的开发者,我深知代码审查的重要性,但也饱受其效率问题的困扰。传统的人工审查往往需要团队成员停下手中的工作,专门抽…...

深入解析PowerShell执行策略:从SecurityError到灵活配置的完整指南

1. PowerShell执行策略为何让你抓狂? 第一次遇到PowerShell脚本报SecurityError时,我正急着部署自动化脚本。那个红色错误提示就像一盆冷水浇下来:"无法加载文件...因为在此系统上禁止运行脚本"。相信很多运维朋友都见过这个经典错…...

学了半年仍一头雾水?这份网络安全路线图帮你避开90%的弯路

网络安全是一个既广且深的领域,学习路线需要结合理论基础、动手实践和方向专精。 第一阶段:计算机基础(万丈高楼平地起) 这一阶段的目标是理解网络和系统是如何工作的,否则后续的“攻防”将是无根之木。 计算机网络 核…...

Step3-VL-10B-Base与Ubuntu20.04安装教程:环境部署指南

Step3-VL-10B-Base与Ubuntu20.04安装教程:环境部署指南 今天咱们来聊聊怎么在Ubuntu 20.04上安装Step3-VL-10B-Base模型。如果你是个Linux开发者,想快速把这个强大的视觉语言模型跑起来,那这篇教程就是为你准备的。我会带你一步步搞定系统环…...

Phi-3-vision-128k-instruct保姆级教程:Ubuntu系统OpenClaw本地部署全流程

Phi-3-vision-128k-instruct保姆级教程:Ubuntu系统OpenClaw本地部署全流程 1. 前言:为什么选择本地部署Phi-3-vision 最近微软开源的Phi-3-vision-128k-instruct模型在视觉理解任务上表现亮眼,很多开发者都想在本地环境部署体验。相比云端A…...

《仓储与配送管理》(第二版)-仓储篇

📌 仓储管理核心知识点梳理 1. 仓储管理的本质定义 核心内涵:对物品入库→保管→出库全流程的计划、组织、指挥、监督与调节。 本质:不仅是 “存东西”,更是对仓库内物品的保管、控制与业务活动管理,保障物资高效流转与安全。 2. 仓储管理的核心内容 模块 核心要点 仓库…...

CasRel模型实战:从Git仓库提交信息中抽取开发者协作关系

CasRel模型实战:从Git仓库提交信息中抽取开发者协作关系 你有没有想过,一个活跃的Git仓库里,每天产生的那些提交信息和评论,除了记录代码变更,还隐藏着什么秘密?那些看似枯燥的“fix bug”、“add feature…...

Lychee-rerank-mm多语言支持实战:中英文混合检索方案

Lychee-rerank-mm多语言支持实战:中英文混合检索方案 1. 为什么中英文混合检索成了业务刚需 最近帮一家跨境电商平台做搜索优化,他们遇到一个很实际的问题:商品标题和描述里经常混着中英文,比如“iPhone 15 Pro Max 256GB 黑色”…...

SpringBoot集成图片旋转判断:企业级文档处理方案

SpringBoot集成图片旋转判断:企业级文档处理方案 1. 引言 在企业日常运营中,每天都要处理大量的文档和图片资料。想象一下这样的场景:财务部门收到几百张发票扫描件,人力资源部需要处理成千上万的简历附件,档案室要数…...