12月通信基础知识补充2
看文献过程中不断发现有太多不懂的基础知识,故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关,故记录不会很深入请见谅。
【通信基础知识补充6】12月通信基础知识补充2
- 一、Walsh码
- 1.1 Walsh码的基本特性
- 1.2 Walsh码的构造
- 1.3 Walsh码的应用
- 1.4 Walsh码的优点与局限性
- 1.5 Walsh代码(matlab)
- 1.6 总结
- 二、对比Walsh码和ZCS
- 2.1 基本性质
- 2.2 正交性
- 2.3 应用场景
- 2.4 正交性和干扰
- 2.5 频谱特性
- 2.6 资源限制
- 2.7 系统设计和实现复杂性
- 2.8 总结对比
一、Walsh码
Walsh码(Walsh Code)是一类特殊的二进制码,广泛用于CDMA(Code Division Multiple Access)系统中,尤其是在通信系统中进行信号分离和多址接入。Walsh码具有许多优异的性质,尤其是在正交性和低相关性方面,使得它们成为多用户共享同一信道时有效的区分码。
1.1 Walsh码的基本特性
-
正交性:Walsh码的最大特点之一是它们的正交性。正交性意味着任何两个不同的Walsh码之间的内积为零。数学上,对于任意两个Walsh码 C i C_i Ci和 C j C_j Cj,其内积满足:
⟨ C i , C j ⟩ = ∑ k = 1 N C i ( k ) C j ( k ) = 0 (当 i ≠ j 时) \langle C_i, C_j \rangle = \sum_{k=1}^{N} C_i(k) C_j(k) = 0 \quad \text{(当 } i \neq j \text{时)} ⟨Ci,Cj⟩=k=1∑NCi(k)Cj(k)=0(当 i=j时)
其中, C i ( k ) C_i(k) Ci(k) 和 C j ( k ) C_j(k) Cj(k) 分别表示第 i i i 和第 j j j个Walsh码在第 k k k位的值, N N N是Walsh码的长度。由于内积为零,两个不同的Walsh码在接收端可以通过简单的匹配解码,互不干扰。 -
二进制形式:Walsh码是由 (+1) 和 (-1)(或等效的0和1)组成的二进制序列。
-
长度和数量:Walsh码的长度是2的幂次,即 N = 2 n N = 2^n N=2n,其中 (n) 是正整数。因此,Walsh码的集合中的码数量也是 2 n 2^n 2n个。长度为 N N N的Walsh码形成一个 N × N N \times N N×N 的矩阵,通常称为Walsh-Hadamard矩阵。
1.2 Walsh码的构造
Walsh码可以通过递归的方式构造,常见的构造方法是利用Hadamard矩阵。Hadamard矩阵是一种正交矩阵,其元素为+1和-1,并且满足其行与行之间的正交性。Walsh码就是Hadamard矩阵的行。
-
Hadamard矩阵的定义:Hadamard矩阵的基本性质是,它是一个大小为 N × N N \times N N×N的矩阵,其中每一行(和每一列)都是彼此正交的。Hadamard矩阵的构造规则是递归的,即给定一个 2 × 2 2 \times 2 2×2的矩阵,接下来可以通过特定规则递归生成更大尺寸的Hadamard矩阵。
-
基本Hadamard矩阵:
H 2 = [ 1 1 1 − 1 ] H_2 = \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} H2=[111−1] -
递归构造:从 (H_2) 开始,可以递归构造更大的Hadamard矩阵,例如:
H 4 = [ H 2 H 2 H 2 − H 2 ] H_4 = \begin{bmatrix} H_2 & H_2 \\ H_2 & -H_2 \end{bmatrix} H4=[H2H2H2−H2]
以此类推,可以得到更大的Hadamard矩阵。
-
-
Walsh码的构造:通过提取Hadamard矩阵中的每一行,就可以得到不同的Walsh码。比如,Hadamard矩阵 H 4 H_4 H4对应的四个Walsh码就是该矩阵的四行。
1.3 Walsh码的应用
-
CDMA中的应用:在CDMA系统中,用户通过分配不同的Walsh码来区分彼此的信号。由于Walsh码之间的正交性,接收端可以通过匹配滤波(匹配码字)来解码每个用户的信号,从而有效地分离各个用户的通信信号。
-
信号分离:由于Walsh码是正交的,在接收端可以通过简单的内积计算将不同用户的信号从接收到的叠加信号中分离出来。具体来说,接收信号与一个特定的Walsh码进行相关性计算,最大相关性对应的用户信号就是该用户的信号。
-
多址接入:在多用户场景下,CDMA系统通过不同的Walsh码将不同用户的信号进行编码,并且这些信号可以在相同的时间和频率资源上传输。Walsh码的正交性保证了用户之间不会发生相互干扰。
1.4 Walsh码的优点与局限性
-
优点:
- 正交性强:Walsh码的正交性使得它们在多用户环境中具有较强的抗干扰能力。
- 简单易用:Walsh码的生成和解码过程简单,且具有数学上的良好性质(如低相关性)。
- 适用于同步系统:Walsh码广泛应用于同步的CDMA系统中,特别是在通信链路中需要对多用户信号进行区分时。
-
局限性:
- 资源限制:由于Walsh码的长度是2的幂次,所以系统中可用的Walsh码数量有限,尤其在用户数目大、系统规模复杂时,Walsh码的资源可能无法满足需求。
- 相干性问题:虽然Walsh码之间是正交的,但在实际通信中,由于信道干扰、噪声和多径效应等因素,Walsh码的正交性可能会受到一定影响,导致干扰和误码。
1.5 Walsh代码(matlab)
% Walsh码的生成和验证正交性、相关性
N = 8; % Walsh码的长度
% 生成Hadamard矩阵(也就是Walsh码的生成过程)
W = hadamard(N); % Hadamard矩阵直接给出Walsh码% 显示Walsh码
disp('Walsh码矩阵:');
disp(W);% 验证正交性:Walsh码的正交性要求任意两个不同的Walsh码的内积为零
orthogonality_check = W' * W; % Walsh码的正交性检验
disp('Walsh码的正交性检查(W''*W):');
disp(orthogonality_check);% 验证自相关性:自相关性在时间域上,Walsh码的自相关性要求同一个Walsh码与自身的内积为长度,其他为零
autocorrelation = W * W'; % Walsh码自相关性检查
disp('Walsh码的自相关性检查');
disp(autocorrelation);% 绘制Walsh码图像
figure;
subplot(2,1,1);
imagesc(W); % 展示Walsh码矩阵
title('Walsh码矩阵');
xlabel('列索引');
ylabel('行索引');% 可视化每个Walsh码
subplot(2,1,2);
hold on;
for i = 1:Nplot(W(i,:), 'DisplayName', ['Walsh码 ' num2str(i)]);
end
hold off;
legend show;
title('每个Walsh码的波形');
xlabel('时间索引');
ylabel('值');
1.6 总结
Walsh码是一种具有正交性的二进制码,广泛应用于CDMA等通信系统中,它的主要优势在于能够有效区分多个用户的信号,并且简单易用。通过Hadamard矩阵的递归构造,可以生成不同长度的Walsh码,适用于信号分离和多址接入。尽管Walsh码在多用户通信中具有显著优势,但其应用也受到资源限制,尤其是在用户数量庞大的系统中,需要其他技术的支持来提高系统的容量和灵活性。
二、对比Walsh码和ZCS
2.1 基本性质
-
Walsh码:
- 类型:正交序列
- 组成:二进制序列(值为+1或-1)
- 正交性:具有严格的正交性,即任何两个不同的Walsh码之间的内积为零。
- 用途:主要用于多址接入(CDMA)中的用户信号区分。
- 长度:Walsh码的长度必须是2的幂次,且系统中可用的Walsh码数量也限制于该长度。
- 生成方式:通过Hadamard矩阵递归构造。
-
Zadoff-Chu序列:
- 类型:复数序列(通常为复数指数形式)
- 组成:复数序列,其值可以是单位复数。
- 正交性:没有直接的序列间正交性,但具有理想的自相关特性,能够在不同时间点进行准确的信号分离。
- 用途:主要用于导频、同步、信道估计、以及MIMO系统中的信号设计。
- 长度:Zadoff-Chu序列的长度为任意长度,但必须满足某些数学条件(如长度为质数)。
- 生成方式:通过数学公式构造,具有独特的自相关性质。
2.2 正交性
-
Walsh码:具有严格的正交性。每对不同的Walsh码之间在所有时间点的内积为零,这使得它们在多用户系统中可以完全区分用户信号,避免干扰。
-
Zadoff-Chu序列:虽然Zadoff-Chu序列之间并不直接正交,但它们具有非常强的自相关性。即使两个不同的Zadoff-Chu序列在时间上叠加,接收端依然可以通过自相关函数将它们有效地分开,特别是在导频和同步信号中,这一点非常有用。
2.3 应用场景
-
Walsh码:
- CDMA系统:在传统的CDMA系统中,Walsh码用于区分不同用户的信号。在这种情况下,每个用户被分配一个唯一的Walsh码,以便在同一信道上传输信号。
- 多址接入:通过正交性,CDMA能够实现多个用户的并行通信,且不会互相干扰。
- 信号区分:适用于用户信号的有效区分,尤其是在信道质量较好的情况下。
-
Zadoff-Chu序列:
- 同步和导频:Zadoff-Chu序列常用于通信系统中的同步信号、导频信号等,需要良好自相关性的场景。例如,在LTE和5G系统中,Zadoff-Chu序列用于小区同步信号(PSS/SSS)和导频信号。
- MIMO系统:在MIMO(多输入多输出)系统中,Zadoff-Chu序列因其优异的自相关特性,经常用于信道估计和干扰抑制。
- 频率选择性衰落:适用于频率选择性衰落环境,特别是在存在多径效应的无线环境中。
2.4 正交性和干扰
-
Walsh码:正交性保证了不同用户的信号可以完全分开,避免了多用户干扰。然而,这种正交性要求系统中所有的用户使用不同的码字,且码字长度和数量受到系统资源的限制。
-
Zadoff-Chu序列:虽然Zadoff-Chu序列不具有用户之间直接的正交性,但它的自相关性质极为优越,即使在噪声或干扰较大的环境下,接收端依然可以准确地识别出信号。这使得Zadoff-Chu序列非常适合用于导频信号或同步信号的设计,而无需严格的正交性约束。
2.5 频谱特性
-
Walsh码:由于Walsh码的设计要求其长度是2的幂次,它的频谱特性较为平坦,适合于对称的多址接入。Walsh码对频谱的利用是较为传统的方式,适用于信道干扰较小的场景。
-
Zadoff-Chu序列:Zadoff-Chu序列在频域上具有很好的选择性。它的频谱特性使其在频率选择性衰落的信道环境下,能够更好地对抗多径干扰,因此非常适合在复杂的无线通信环境中使用。
2.6 资源限制
-
Walsh码:资源有限性是Walsh码的一个问题。由于Walsh码的数量和长度是固定的,系统中可用的码字数量会限制系统的扩展性。在用户数目过多或系统规模较大的情况下,Walsh码可能无法满足需求。
-
Zadoff-Chu序列:Zadoff-Chu序列的资源限制较小。由于它们的生成不依赖于正交性,因此可以生成大量不同的序列,用于导频信号或其他同步信号。这使得Zadoff-Chu序列在需要多种导频或同步信号的场景中具有更大的灵活性。
2.7 系统设计和实现复杂性
-
Walsh码:Walsh码的实现较为简单,通过Hadamard矩阵的递归构造可以快速生成,并且其解码过程通常通过匹配滤波器完成,系统设计相对简单。
-
Zadoff-Chu序列:Zadoff-Chu序列的生成和实现较为复杂,特别是需要精确控制频谱特性和自相关特性。尽管如此,其优异的自相关性质在需要高精度信号同步和信道估计的现代通信系统中具有重要作用。
2.8 总结对比
特性 | Walsh码 | Zadoff-Chu序列 |
---|---|---|
正交性 | 严格正交 | 没有直接正交性,主要体现在自相关性 |
主要用途 | 多址接入(CDMA) | 同步信号、导频、MIMO、频率选择性衰落 |
生成方式 | Hadamard矩阵构造 | 数学公式构造 |
资源限制 | 码字数量和长度有限 | 可生成大量不同的序列 |
频谱特性 | 平坦频谱 | 良好的频域选择性 |
自相关特性 | 自相关较差,主要依赖正交性 | 优异的自相关性(适用于同步、导频) |
实现复杂度 | 相对简单 | 较为复杂,但非常强大 |
应用领域 | 用户信号分离 | 导频、同步、MIMO、信道估计 |
是否为复数序列 | 否(实数序列) | 是(复数序列) |
相关文章:
12月通信基础知识补充2
看文献过程中不断发现有太多不懂的基础知识,故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关,故记录不会很深入请见谅。 【通信基础知识补充6】12月通信基础知识补充2 一、Walsh码1.1 Walsh码的基本特性1.2 …...
佑驾创新冲刺上市:交付进度延后,研发投入缩减,刘国清为实控人
近日,深圳佑驾创新科技股份有限公司(MINIEYE,下称“佑驾创新”)通过港交所聆讯并披露了聆讯后资料集(即招股书)。据贝多财经了解,佑驾创新获得了IPO备案通知书,拟在港交所上市。 对…...
【Linux系列】Linux 防火墙的详细学习
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
使用 Trace 实现 onnx 的导出 - 学习记录
使用 Trace 实现 onnx 的导出 一、使用 Trace 实现 onnx 的导出的流程二、代码分解2.1、定义模型2.2、分析模型操作类型2.3、构建钩子函数2.3.1、定义 hook 函数2.3.2、注册 Conv2d - hook 函数2.3.3、注册 ReLU - hook 函数2.3.4、注册 Add - hook 函数三、完整导出 onnx 代码…...
python字符串处理基础操作总结
1.去掉空格或者特殊符号 input_str.strip() #去掉所有空格 input_str.lstrip() #去掉左边空格 input_str.rstrip() #去掉右边空格 def print_hi():input_str 今天天气不错,风和日丽 out input_str.strip()print(input_str)print(out)if __name__ __main__:print…...
AI如何让PPT制作变得轻松与智能?用一键生成ppt!
谁还愿意把时间浪费在PPT的设计和内容排版上?尤其是对于那些需要频繁制作演示文稿的人来说,一份看起来专业的PPT往往会让人陷入“做与不做”的困境。但随着科技的飞速发展,传统的PPT制作方法正逐渐被更为高效的工具所取代,尤其是智…...
OpenCV相机标定与3D重建(11)机器人世界手眼标定函数calibrateRobotWorldHandEye()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算机器人世界/手眼标定: w T b _{}^{w}\textrm{T}_b wTb 和 c T g _{}^{c}\textrm{T}_g cTg。 cv::calibrateRobotWorldHa…...
vscode通过ssh连接虚拟机进行开发
虚拟机自带的vscode很卡而且画质感觉不行,所以用这种方法解决 1.VSCODE安装扩展Tabnine(AI代码补全),Remote Development 2.虚拟机终端ifconfig查看本机ip 192.168.43.197 开启ubuntu的SSH服务 sudo apt-get install openssh-server 配置vscode的ssh …...
TCP/IP协议详解(小白)
TCP/IP协议详解 TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。TCP/IP协议族提供了点对点的连结机制,并且将传输数据帧的封装、寻址、传输、路由…...
手机租赁系统开发全面解析与实现指南
内容概要 手机租赁系统的设计理念是为了满足用户对便捷、灵活的手机使用需求。想象一下,谁还愿意花大价钱买一部手机呢?尤其是当新款手机频繁推出时,租赁似乎成了更受欢迎的选择。这个系统旨在让用户可以随时随地选择租用不同型号的手机&…...
洛谷【排序】算法的题单 - 笔记
2024-12-09 - 第 37 篇 洛谷【排序】题单 - 笔记 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 洛谷【排序】题单合集 一、排序算法都有… 1. 简单排序算法 这些算法通常是基础的排序方法,容易理解和实现,但效率较低,适用于数据量较小的情况…...
《筑牢网络安全防线:守护数字时代的生命线》
《筑牢网络安全防线:守护数字时代的生命线》 一、网络安全的重要性二、网络安全面临的挑战三、网络安全技术四、网络安全案例分析五、如何加强网络安全防护六、结论 一、网络安全的重要性 网络安全在当今数字化时代的重要性不言而喻,它涵盖了多个关键领…...
VB.net进行CAD二次开发(二)与cad交互
开发过程遇到了一个问题:自制窗口与控件与CAD的交互。 启动类,调用非模式窗口 Imports Autodesk.AutoCAD.Runtime Public Class Class1 //CAD启动界面 <CommandMethod("US")> Public Sub UiStart() Dim myfrom As Form1 New…...
Python函数——函数的返回值定义语法
一、引言 在Python中,函数的返回值是其核心功能之一,它使得函数能够将计算结果传递给调用者,进而推动程序的逻辑和功能实现。理解和掌握函数的返回值语法,不仅能够提高代码的模块化和可读性,还能使程序更加高效和灵活…...
Python 布尔索引筛选数据
Python 布尔索引筛选数据 1. 布尔索引筛选数据1.1. 根据布尔索引对矩阵元素进行赋值1.2. 根据布尔索引对矩阵元素进行赋值1.3. 根据布尔索引对矩阵元素进行赋值 2. logits[logits < values[:, [-1]]] -1000References 1. 布尔索引筛选数据 布尔索引允许通过条件筛选矩阵中…...
mybatis缓存
一级缓存和二级缓存范围不一样 只缓存查询,缓存增删改没有意义 先在mybatis-config.xml加入 <setting name"cacheEnabled"value"true"/> 在mapper.xml中开启二缓存 <!--回收策略为先进先出,每隔60秒刷新一次,…...
Linux下的编程
实验7 Linux下的编程 一、实验目的 熟练掌握Linux下Python编程的方法、函数调用方法以及shell编程中的控制结构。 二、实验环境 硬件:PC电脑一台,网络正常。 配置:win10系统,内存大于8G ,硬盘500G及以上。 软件&a…...
使用Java创建RabbitMQ消息生产者的详细指南
目录 在现代分布式系统中,消息队列是实现异步通信的重要工具。RabbitMQ作为一种流行的开源消息代理,支持多种消息协议,广泛应用于微服务架构和事件驱动的应用程序中。本文将深入探讨如何使用Java创建RabbitMQ的消息生产者,发送消息…...
笔记本外接显示屏没声音
1、笔记本正常有声音,但是外接显示屏后没有声音了怎么回事呢?原来外接显示屏后笔记本的声音输出会自动选择显示屏的音频输出,但是显示屏可能没有声音输出所以导致笔记本没有声音。 2、解决办法:打开笔记本设置,选择声…...
【Linux】Linux权限管理:文件与目录的全面指南
在Linux系统中,权限管理是确保数据安全的关键。本文将为大家介绍Linux文件与目录的权限管理,帮助你理解如何设置和管理访问权限。无论你是新手还是有经验的用户,这里都将提供实用的技巧和知识,助你更好地掌握Linux环境。让我们一起…...
并发在前端中的应用?
并发在前端中的应用主要体现在处理多个请求和优化页面加载速度方面。前端并发处理通常涉及在极短时间内发送多个数据请求,例如在页面渲染时同时请求多个数据。通过并发处理,可以显著减少页面加载时间,提升用户体验。 前端并发处理的具体…...
Spring Boot助力,一键解锁招聘全流程信息精细化管理
2系统相关技术 2.1 Java语言介绍 Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&#…...
沉浸式多用户跟踪解决方案
沉浸式多用户VR跟踪解决方案,支持使用HTC VIVE或Valve Index等消费级虚拟现实头盔在房间内执行大范围多用户跟踪。该解决方案不仅能够跟踪处于坐姿或其他静止用户的头部和控制器,还支持房间内多用户动态跟踪。 通常房间内的跟踪受限于特定的系统能力&…...
“切片赋值”创建列表批量操作“新”方法(Python)
[start:end]切片赋值,扩展了list批量增减元素的操作能力。 (笔记模板由python脚本于2024年12月06日 15:07:56创建,本篇笔记适合研python基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:…...
Linux中-vvv详细输出命令
在 Shell 脚本中,有时会看到某些命令后面加上 -vvv 或类似的选项。这个选项的作用通常与命令的 **调试模式** 或 **详细输出** 相关。不同的命令和工具对于选项的解释和处理方式不同,因此 -vvv 的具体含义取决于它所跟随的命令。 ### 一般来说ÿ…...
获取淘宝商品评论数据的API应用:市场调研|产品更新|用户数据
下面是一段我用item_review(获取商品评论数据)抓来的商品评论数据: "items": {"total_results": 375,"totalpage": 38,"page_size": 10,"page": "1","item": [{&quo…...
VRRP的知识点总结及实验
1、VRRP VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)既能够实现网关的备份,又能解决多个网关之间互相冲突的问题,从而提高网络可靠性。 2、VRRP技术概述: 通过把几台路由设备联合组成一台虚拟的“路由设备”…...
群控系统服务端开发模式-应用开发-邮件发送工具类
一、邮件发送工具类开发 1、添加框架对应的SDK composer require phpmailer/phpmailer 2、添加工具集 在根目录下extend文件夹下创建Email文件夹,在Email文件夹下添加工具集控制并命名为EmailSender.php <?php /*** 邮件发送工具* User: 龙哥三年风水* Date: …...
pytest 的简单介绍
官方文档:pytest 文档 1. pytest 概述 pytest 是一个功能强大的 Python 测试框架,旨在简化单元测试和功能测试的编写与执行。它不仅支持简单的单元测试,还能进行更复杂的测试,如数据驱动的测试、并发测试等。pytest 支持自动化发…...
【C语言】库函数常见的陷阱与缺陷(2):字符串转化函数
目录 一、atoi 函数 1.1. 功能与用法 1.2. 陷阱与缺陷 1.2.1. 输入验证不足 1.2.2. 溢出问题 1.3 安全替代 1.4. 代码示例 二、atof 函数 2.1. 功能与用法 2.2. 陷阱与缺陷 2.3. 安全使用建议 2.4. 代码示例 三、strtol 函数 3.1. 功能与用法 3.2. 陷阱与缺陷 …...
【LeetCode每日一题】LeetCode 976.三角形的最大周长
LeetCode 976.三角形的最大周长 题目描述 给定一个包含非负整数的数组 nums,其中每个元素表示一个线段的长度。你需要从中选出三个线段,组成一个三角形,使得三角形的周长最大,并返回这个最大周长。如果无法组成三角形࿰…...
在 Ubuntu 24 上安装 Redis 7.0.15 并配置允许所有 IP 访问
前提条件 一台运行 Ubuntu 24 的服务器拥有 sudo 权限的用户 步骤一:更新系统包 首先,确保系统包是最新的,以避免潜在的依赖问题。 sudo apt update sudo apt upgrade -y步骤二:安装编译 Redis 所需的依赖 Redis 需要一些编译…...
C# 中的异常处理:构建健壮和可靠的程序
C#中的异常处理(Exception Handling)。异常处理是编程中非常重要的一部分,它允许开发者优雅地处理程序运行时可能出现的错误或意外情况。通过有效的异常处理,可以使应用程序更加健壮、可靠,并提供更好的用户体验。以下…...
Prime2_解法二:openssl解密凭据
Prime2_解法二:openssl解密凭据 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担全…...
数据结构 ——数状存储的基本概念
数据结构 ——数状存储的基本概念 一、树状存储基本概念 1、 深度(层数):计算一个节点的深度,从根节点算起(从1开始计数),到该节点所经过的节点数(包括此节点)为树的深度…...
【网盘系统】递归删除批量文件、从回收站恢复文件、彻底删除文件
为何需要用到递归? 在网盘系统中,文件的类型分为文件和文件夹两种类型。当我们想要批量删除文件时,不乏其中会包含文件夹,而想要删除这个文件夹,自然其中所包含的文件都要删除,而其中所包含的文件也有可能…...
C++ 列表初始化(initializer_list)
列表初始化(initializer_list) 列表初始化是C中的一种语法特性,引入于C11,用于更简单直观地初始化变量、对象或容器。它使用花括号 {},提供了更安全的初始化方式,避免了类型窄化转换等潜在错误。 定义 列表初始化是用花括号 {}…...
【Keil】Keil MDK 已经不再提供 ARM Compiler v5
该问题出现在 Keil MDK v5.12 之后 用必应搜索相关问题,发现早已在 ARM community 提了 How can I install Compiler Version 5 for Keil vision 5 回答给出了这个文档 Documentation - Arm Developer 文档提到了 ARM Compiler 5 的下载地址,但是得登录 …...
Knowledge Graph Studio:让知识图谱构建更简单、更智能
一、前言 上周和研究院的同事讨论 2025 年大模型产品规划时,让我产生了一些疑惑和不解,因为从大家交流的规划方向来看,更多的还是集中在Prompt提示词工程(包括提示词的管理、测试、评估、调优)这一块规划的确实挺细&a…...
【jvm】垃圾判别阶段算法
目录 1. 说明2. 引用计数算法2. 可达性分析算法3. 垃圾判别阶段的过程 1. 说明 1.JVM主要使用两种垃圾判别算法:引用计数算法和可达性分析算法。 2. 引用计数算法 1.原理:为每个对象维护一个引用计数器,每当有地方引用该对象时,…...
深入理解Linux进程管理机制
个人主页:chian-ocean 文章专栏-Linux 前言 进程是现代操作系统中一个不可或缺的概念,其主要目的在于管理资源、实现并发、提高系统效率,并确保系统的稳定性和安全性。 进程的定义 进程(Process) 是计算机操作系统中…...
OV2640摄像头模块介绍
目录 一、引言 二、模块概述 三、技术特点 四、工作原理 五、接口类型 六、应用领域 七、使用方法 八、参数设置 九、图像数据处理 十、调试和故障排除 十一、结语 一、引言 在当今的科技时代,图像采集和处理技术在众多领域发挥着至关重要的作用。其中&…...
机器人的动力学前馈控制
机器人前馈技术可加快伺服驱动器内部的误差收敛速度,进而改善机器人的动态响应特性,解决机器人在运动过程中的抖动问题,提升机器人系统的精度和效率。 对于关节型机器人而言,在理想的刚性连接下,若给定每个关节所需要的…...
Python+OpenCV系列:图像的几何变换
Python OpenCV 系列:图像的几何变换 引言 在图像处理领域,几何变换是一个非常重要的操作,它可以改变图像的位置、大小、方向或形状。在计算机视觉中,这些操作对于图像预处理、特征提取和图像增强至关重要。本文将介绍如何利用 …...
IC验证基础知识系列随笔
一、断言 and 和 和 intersect 区别 And 指的是两个序列具有相同的起始点,终点可以不同。 Intersect 指的是两个序列具有相同的起始点和终点。 Or 指的是两个序列只要满足一个就可以 Throughout 指的是满足前面要求才能执行后面的序列 二、Break;co…...
网络测速工具
1. SPEEDTEST https://www.speedtest.net/ 2. 测速网 测速网 - 专业测网速, 网速测试, 宽带提速, 游戏测速, 直播测速, 5G测速, 物联网监测,Wi-Fi 7,Wi-Fi 6,FTTR,全屋Wi-Fi - SpeedTest.cn 3. 字节比特换算 bps(bits per second) 字节和比特的换算…...
windows将文件推给Android真机/实机
记录一下 因为以前只试过从真机实机中将文件推给windows 但是从windows只简单复制粘贴的话会一直报错。 1.电脑安装adb 2.手机开启开发者模式 usb调试 3.usb连接选择文件传输 4.推送命令adb push 文件路径 /sdcard/download 步骤1和2和3不作赘述,可以搜相关配置教程…...
Scratch教学作品 | 3D飞行模拟器——体验飞行的无限乐趣! ✈️
今天为大家推荐一款令人惊叹的Scratch作品——《3D飞行模拟器》!由BamBozzle制作,这款游戏完全用Scratch构建,带你体验开放世界飞行的自由与乐趣。从起飞到降落,每一步都需要你的精准操作!更棒的是,这款游戏…...
nonolog转化为ctf的困难
nonolog转化为ctf的困难 nanolog分析的中间的总结二者之间的差别 nanolog分析的中间的总结 如果目标是转nanolog为CTF格式,最重要的应该是meta的定义的转换的问题了。 目前我是稍有气馁。 感觉这不是一个好的方向。 如果领导能给连续的时间,完全开发自定…...
Sqoop导入数据(mysql---->>hive)
目录 数据传输流程脚本报错和异常说明1. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf2. 数据导入hive后显示NULL 数据传输流程 mysql---->>hdfs---->>hive 数据从mysql表中取出,放到hdfs上(由targ…...