自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 下行调度分配DCI格式1_1

概述下行调度分配DCI分为回退格式1_0,以及非回退格式1_1。DCI格式1_1支持所有的NR特性。根据系统配置的特性,一些信息域有可能出现或者不出现。因此DCI格式1_1的大小实际上并不是一个固定的数,而是和配置相关。由于各个终端都指导自己配置的特性,所以就指导DCI的大小,因此终端可以进行盲检。DCI格式1_1用于在一个小区中调度PDSCH,通过DCI格式1_1发送以下信息,其中CRC由C-RNTI或CS-RNTI或new-RNTI加扰.分条描述序号2–载波指示如果UE针对服务小区配置有更

2020-10-30 10:40:24 5122 6

原创 3GPP 5GNR 物理层协议梳理

概况物理层协议规范包括综述文件(TS 38.201)和六份文件(TS 38.202和38.211至38.215)。和更高层及物理层之间的协议规范关系如图所示。TS 38.201物理层概述。范围描述:1)物理层协议文件的内容;2)告知在哪里可以找到信息。TS 38.202物理层提供的L1层服务。范围是描述物理层提供的服务,并指定:1)物理层提供的服务和功能;2)UE的物理层模型;3)并行传输时的物理信道和SRS;4)物理层提供的测量。TS 38.211物理层信道和调制。范围是建

2020-08-07 17:01:20 4927

原创 3GPP 5GNR 层二层三协议栈梳理

综述3GPP组织针对5G NR制定了繁多的标准协议。本文主要针对层二层三的用户面,把各层模块所对应的标准协议关联起来,以便有针对性的阅读5G标准协议(Release 15版本)。NGNG接口位于NG-RAN和5GC之间,用户面NG-U接口负责传递CU-UP和UPF之间的用户PDU,并且PDU会话用户面数据协议是基于GTPU传输协议传递。参考协议:[1] 3GPP TS 38.413 V15.1.0: NG Application Protocol (NGAP)[2] 3GPP TS 38.473

2020-07-24 15:34:39 4982

原创 5G协议栈用户面模块

总体5G基站用户面系统主要包括以CU_UP为总体的NG-U、SDAP、PDCP-U、F1-U,以及控制实体初始化功能的UPC模块,和管理通信隧道的GTPU模块。NG-UNG接口位于NG-RAN和5GC之间,用户面NG-U接口负责传递CU-UP和UPF之间的用户PDU,且PDU会话用户面的协议数据是基于GTPU传输协议传递。NG-U模块提供PDU会话相关信息,如QFI、RQI等。NG-U关联模块:UPC+GTPU+SDAP1)NG-U接收来自UPC模块的实例建立、修改和删除等配置信息;2)NG-

2020-07-09 09:23:01 5469 1

原创 基于O-RAN的无线云网络

一、无线云网络无线接入网的云化更易于实现无线网资源灵活调整、支持无线网络切片的创建,满足MEC业务边缘部署的需求,实现资源的高效利用。AI的作用已成为无线云网络的核心。无线云网络的目的是希望利用集中式基带池、协作式无线网络以及开放性平台,在有效减少机房数量并提高频谱效率之后,帮助运行商更好地实现节能、云架构实施以及移动网络演进。随着5G研究及标准化的深入推进和NFV/SDN技术的发展,无线网络云化已经得到业界的高度认可。无线接入网的云化更易于实现无线网资源灵活调整、支持无线网络切片的创建,满足以用户为

2020-06-28 14:48:46 2825 1

原创 5G加速卡

加速卡概念加速卡的作用就是为CPU“减负”。CPU专为顺序串行处理设计,FPGA/GPU的核心专为同时处理多任务而设计。FPGA/GPU包含普通CPU更多的处理单元、更大的带宽,在处理过程中能够发挥更大的效能。加速卡的工作机理如下:1)CPU将数据通过总线传递到加速卡芯片;2)芯片对数据进行处理,并将处理结果存放在内存中;3)内存将处理后的数据传送I/O设备传送出去。英特尔® FPG...

2020-04-14 09:55:29 2499

原创 5G通信系统基站参数指标

CMCC(中国移动)的5G商用网络采用3GPP 5G NR R15及随后的标准。本文将面向基站原型机,对相应的关键系统参数、性能要求、功能要求以及硬件需求等信息进行说明。基站CMCC对3.5GHz下的Poc系统性能和产品方案进行了定义。目前的阶段只考虑eMBB宏蜂窝场景,未来还会考虑其他基站类型和场景,如小基站等。1 系统关键特性1)工作频段:3.4-3.6GHz;2)系统带宽:>...

2020-03-26 10:49:01 26002 1

转载 5G网络长啥样?一文带你初识5G

引言不管是2G、3G、4G还是5G,移动通信网络主要由两个子系统组成:无线接入(RAN)和移动核心网。RAN负责管理无线部分,以高效利用频谱资源,并满足用户的服务质量需求。RAN的关键组件叫基站,2G时代的基站叫BTS,3G叫NodeB,4G叫eNB,5G叫gNB。移动核心网在RAN和互联网之间架起了一道桥梁,主要功能包括:为数据和语音服务提供Internet连接;确保连接的QoS...

2020-02-10 19:12:49 1655

原创 LTE协议栈传输资源、信道、MAC层及物理层概述

系统物理传输资源OFDM是LTE下行链路和上行链路传输方向上采用的基本传输方案。LTE下行和上行链路的OFDM子载波间距均为15kHz,子载波FFT大小为2048,对应30.72MHz的采样频率。时域上,LTE传输信息被组织在长度为10ms的帧内;每个帧被分为10个同样大小且长度为1ms的子帧;每个子帧由两个同样大小的时隙构成,长度为0.5ms。为提供一致且精确的时序定义,LTE规范内不同...

2020-01-16 15:32:33 2805

原创 LTE协议栈总体架构、PDCP层及RLC层概述

系统架构无线接入网和核心网的总体系统架构演进,结果是形成了一个扁平的RAN架构 + 分组核心网EPC架构。RAN负责整体网络中所有无线相关功能,包括调度、无线资源管理、重传协议、编码和各种多天线方案等;EPC负责与无线接口无关的完整移动宽带网络所需要的功能,包括认证、计费功能、端到端连接的建立等;系统架构如上图所示,核心网主要模块是MME和S-GW,MME即移动性管理模块,是控制平面节点...

2020-01-10 17:21:03 17072

原创 5G通信演进和常见名词释义

写在前面由于工作性质的变化,需要对5G的通信原理、架构和标准进行深入的了解。借此分享一下5G通信技术初步学习的内容。通信系统发展演进5G的含义,即第五代移动通信系统和技术。这种叫法是3G时代开创的,随3G-4G-5G一直沿用下来。那有没有1G、2G的说法?虽然当时研究传呼机、大哥大、小灵通的那帮人没有这么称呼自己的系统,但现在回过头来,重新定义了那个1G\2G时代。1G时代传输模拟信号,载...

2019-12-17 16:54:42 2188

原创 Linux系统下搭建USRP + GNU Radio开发环境

系统概述通信软件开发环境中用USRP-B210模拟基站或终端,通过USB口连接到Ubuntu16.04系统(其他Ubuntu系列也可以),在Linux操作系统上部署软件编程开发环境。系统主要由基站和1到N终端构成,基站与终端侧都需要外接PC来承载业务进行验证。USPR模拟环境系统图如下所示:1 搭建过程简述1.1 过程搭建人员最好对Linux系统、Linux常用指令、VIM用法、GIT...

2019-12-17 12:39:40 3411

原创 Qt下绘制PPI扫描的雷达图

简述PPI扫描,即每次按一个仰角进行扫描,得到二维图像的方式。它的特点是来自不同距离的回波是离地面不同的高度上,扫描得到的数据在空间类似一个倒立圆锥的曲面表面。Qt可以用OpenGL绘制复杂的图像,但为了简单和兼容性,这里介绍的是用Qt自己的绘图工具QPainter绘制PPI二维图像。代码之路...

2019-11-12 14:18:04 4578 9

原创 泛型编程与模板元编程介绍(概念、优点)

写在前面今天来写点有点难度的东东:泛型编程与模板元编程。写这种生僻的东东我是比较排斥的,但谁让我看到boost库中专门对这两个东东分了个大类别呢。开始吧~概念不知道大家有没有过这种体验,学数学时整本书上的概念都背熟了,一碰到题目还是手足无措,不知从何下手。泛型和模板元编程这两个概念理解起来还是比较简单的:泛型编程,即把参数的数据类型作为一个参数传递到函数,本质上就是参数化类型。简单举个例...

2019-08-29 17:19:40 2523

原创 Qt下如何创建多工程项目(包含创建和使用动态库)

引言本文的编写目的是希望读者可以学会:1、在Qt下创建多工程项目;2、创建编写的动态库程序;3、集成使用第三方或自己编写的动态库;4、对qmake和.pro文件有初步的认识。下面开始吧!多工程项目应用程序在向多进程多动态库方向发展。多工程项目听着很高大上,其实和创建正常的单进程项目一样的简单。区别仅在于创建工程类型的选择和重复创建工程的次数不同。在Qt下创建多工程的步骤如下:...

2019-08-15 16:21:45 5073

原创 Qt中QTimer和timerevent的区别与用法

简述最近看到有用startTimer()配合timerEvent()来实现定时执行的用法,甚是不错,记录一下。为了全面性,顺带介绍使用QTimer实现定时执行的常用方法,并结合代码示例。QTimer常见用法QTimer实现定时执行的方法想必大家都无比熟悉,直接上代码进行说明。QTimer的普遍用法如下,示例中使用QTimer每隔10s调用压缩文件函数。//.h文件--声明QTimer对...

2019-07-29 14:23:37 16592 1

原创 软件测试报告模板

简述软件测试是软件项目重要的一环,去繁留真,做一个精炼的测试报告。模板封面包含项目名称、软件模块、软件版本、测试执行人、测试时间等。目录1. 引言1.1 目的1.2 适应范围预期参考人员包括测试人员、开发人员、项目管理人员、质量管理人员、研发部门经理和需要阅读本报告的高层经理1.3 术语1.4 参考资料2. 测试概述2.1 测试时间测试设计+测试执行的起止时间2.2 ...

2019-07-24 17:28:03 12269

原创 Qt下编写日志模块(同时记录文件名、函数名、行数)

简述说来惭愧,一直以来,我都是使用一个单例模式来完成日志模块,具体操作就是调用单例的写文件函数,自己编辑日志内容,记录在日志文件里。这种做法只是不利于查找调试。而使用qt内置的qInstallMessageHandler函数,重新编辑调试函数的输出内容才是简单高效的做法。调试级别名字很高大上,其实大家都在使用的qDebug()就是。qDebug() – 调试信息输出;qInfo() –...

2019-07-03 11:05:33 1870 1

原创 Qt下使用第三方开源库实现文件压缩(C++开源库zlib)

简述前段时间有个项目需要将文件进行压缩处理,效率最高的当然是直接集成源码,调用接口函数。下面介绍如何使用开源库zlib,通过函数调用的方式实现文件压缩。代码之路在官网上下载zlib开源库代码,拷贝源码中的minizip文件夹到项目目录,添加minizip文件夹下的文件。 minizip文件夹下有两种格式的文件,.h文件为头文件,.c文件为源文件,具体如下: 头文件:crypt.h ioa...

2019-05-05 15:25:09 1699 4

原创 软件常用通信协议模板

简述通信协议是软件的重要组成部分,是系统中软件交互信息的桥梁和标准。我接触过的通信协议主要用于三种场合,对应三种形式的数据形式:1)上位机和下位机各模块之间这种场合下通常是通过串口或网口传输状态、控制、数据信息,通信协议复杂而紧密。通常一个字节甚至一个bit位就表征了一个完整信息,需要报头、报头、CRC、时间戳等组成。这类通信协议通常通过整型约定系数的方式表征浮点数,编写结构体时需要严...

2019-04-11 10:17:31 6075

原创 Qt实现Linux下的硬盘空间监测和文件清理

引言与数据文件有关的应用软件一般都会有硬盘检测与文件清理的功能。本文代码实现在Linux系统下使用Qt编写的硬盘监测与文件清理模块。代码之路当内存占比大于85%时,会进行文件的删除,保留最新的半年来的文件。内存监测部分的实现,是定期执行Linux的shell命令(df -k);文件删除比较简单,使用QDir::entryInfoList函数与QFileInfo函数的配合。废话不说,直...

2019-03-22 11:37:38 1185

原创 Qt下编码调用Linux的Shell脚本命令

引言Linux下编写Qt程序,常会碰到需要执行Shell脚本命令的时候。因为简单调用的一个脚本命令,可以大大简化功能实现的复杂度。调用Shell脚本命令,Qt环境下常用两种方式:1)使用QProcess开启一个进程,把脚本命令作为参数传递进去。2)使用Linux系统函数。不推荐使用系统函数,一是复杂度比较高;二是常常会阻塞进程;三是控制和数据交互不方便。所以本文一下内容都是讲述使用QPr...

2019-03-21 17:20:55 7745 4

原创 Qt实现UDP通信

简述本文用UdpReciver类实现UDP数据包接收,用UdpSender类实现UDP数据发送。代码之路UdpSend类头文件如下://UdpSend.h# include <QUdpSocket>class UdpSender : public QObject{ Q_OBJECTpublic: UdpSender(); ~UdpSender(); void i...

2019-03-15 10:26:55 20260 10

原创 Qt实现TCP文件服务器(服务器发送文件)

简述TCP文件服务器的实现,可以在TCP服务器的基础上增加文件发送逻辑。参阅TCP文件服务器的实现。【https://blog.csdn.net/lusanshui/article/details/88565806 】代码之路直接给出完整的TCP文件服务器代码。MyFileServer类的头文件如下:#include <QTcpServer>#include <QTc...

2019-03-15 10:00:48 1745

原创 Qt下实现线程中的TCP服务器

简述TCP服务器的代码实现比UDP略为复杂一点,因为TCP的服务端需要生成与管理一个额外的QTcpServer对象。为了支持多线程,用moveToThread方法把服务器放在一个单独的线程中。代码之路用MyTcpServer类实现TCPserver,供主程序调用方法。MyTcpServer类头文件内容如下://MyTcpServer.h# include <QObject>...

2019-03-15 09:23:43 3373 4

原创 如何写好工作周报?工作周报模板

简述工作周报就是向上级汇报工作,怎么写才能得到上级的欣赏呢?我当然不知道,毕竟每个领导的口味不同。但从小菜半年来写工作周报的经验,相信还是可以给读者提供帮助。内容工作周报写好应该抓住四个要点:1、汇报工作条例清楚,重点突出。2、工作周报也需要有系统性,体现与以前或之后工作的关联。3、工作周报最最重要的是自己在工作中遇到问题的思考与总结。4、工作周报需要有下周的计划,最好还有领导需要的...

2019-02-16 15:35:37 23388 3

原创 如何安装wmware tools

简述VMware Workstation是一款非常强大的系统虚拟软件。装完系统后,需要安装VMware tools可以更为方便的使用。VMware tools带来的便捷性主要:鼠标可以在虚拟机系统与主操作系统间自由无缝切换;可以随意在虚拟机系统与主操作系统间拷贝复制文件;虚拟机系统进入全屏模式后,界面视图犹如主操作系统,不再是小小的一块显示区域。安装步骤VMware tools是V...

2019-01-29 11:11:26 444

原创 数据越界的巧妙利用,负数在计算机的存储方式

问题来源及应对FPGA模块进行高速信号处理,每隔固定的时间输出一组数据,但由于FPGA没有系统时间及时间戳的概念,在通信协议中用两字节长度记录数据的流水号,每输出一包数据,就在流水号上加一。上位机接收数据并依据流水号打上时间戳。两字节的流水号用unsigned short类型接收,范围就是0~65535,65535的后一包为65536,溢出后结果为0,就是65535序号的下一包序号为0。为了...

2019-01-24 14:42:25 1315

原创 Linux系统开发Qt程序注意事项

背景linux版的qt上位机程序开发已经进入尾声,需要简要总结一下linux下开发的注意点,以供后续参考。程序安装部署在linux工控机上,用来与MCU、FPGA、ProfibusDP、客户端等部件进行信息交互处理控制,用到了串口通信、TCP/UDP通信、文件读写压缩清除、信号处理算法等模块,是一个无界面的Console程序。注意点1)权限问题。权限问题是Linux系统共有的一个问题,虽...

2019-01-23 17:26:32 857

原创 Linux系统中打包发布Qt程序

简述Qt应用程序在windows下有一个自带的小程序(windeployqt)可以用来打包;Linux系统下可以手写一个脚本文件,充分利用ldd命令进行打包。实现废话不说,步骤如下:QtCreator使用Release版本进行编译,并将编译后生成的可执行程序(MyApp)复制到一个空目录下。在这个空目录下新建一个文件(pack.sh),文件内容如下:#!/bin/shexe="M...

2019-01-22 11:17:51 5814 1

原创 qt在linux系统下实现压缩文件

简述编程进行文件压缩一般有三种方法:一是使用zlib的C++开源源码;二是使用Quazip动态库;三就是在子进程中使用第三方软件。由于在windows中开发qt程序使用了zlib源码库;而linux下的命令行操作又如此简单。这里用第三种方法来实现。代码之路代码非常简单。这里由于压缩的文件需要传输到windows系统,故采用zip命令压缩生成.zip文件。可以根据实际情况使用其它压缩工...

2019-01-15 15:10:18 3066

原创 linux系统下回车换行符

简述回车换行符在文本文件的读写中经常用到,windows下面稍微复杂点,linux系统下更为简单。详述回车和换行是两个不同的概念。回车,就是告诉计算机把头定位在左边界;换行,就是把头向下移动一行。Windows中:回车符为’\r’,回到行首;换行符为’\n’,换到当前位置的下一行;Unix系统中:觉得每行结尾加两个字符没有必要,故结尾只有换行符,即‘\n’;Mac系统中:每行结尾只有...

2019-01-15 14:40:04 60394

原创 Qt信号槽传递自定义的数据类型

简述Qt使用信号槽传递自定义类型的结构体,必须先要将这种类型进行注册。实现注册自定义数据类型方法步骤分为三步:1)加入头文件:#include2) 添加声明:Q_DECLARE_METATYPE(YOURS_STRUCT);3) 注册:qRegisterMetaType(YOURS_STRUCT);头文件没有什么可说的,不需要进入新的模块;声明在定义结构体YOURS_STRUCT之...

2019-01-09 09:41:20 1051

原创 Ubuntu安装teamviewer12

简述为了项目方便,需要在Linux调试机上安装teamviewer12。过程比较曲折,主要是由于从teamview13版本才开始完美支持Ubuntu系列系统,官网的系统支持参照如下。经过尝试,teamview12的amd64版本没有成功,而teamview12的i386版本可以安装使用。下面将详细介绍如何在64位Ubuntu16.04系统安装teamview12的i386版本。安装步骤...

2019-01-03 09:46:34 1131

原创 Qt写二进制文件头部多出四个字节问题解决

问题描述在linux系统下用qt写二进制文件时,使用QDataStream类进行存储文件。结果查看到每次写入都会在头部多出四个字节的长度。如下图所示:问题分析写入二进制文件代码如下:QFile file(m_File);if (!file.open(QIODevice::WriteOnly|QIODevice::Append)){ qDebug() << "File c...

2018-12-29 17:17:54 2035 2

原创 软件设计说明书模板

简述软件项目的设计说明书是软件开发测试中重要的环节,一份好的设计说明不仅可以为系统设计、开发、测试提供指导,还可以收获研发领导、甲方、技术合作交流人员的信任。设计模板封面包含系统项目名、版本、时间等目录引言1.1 背景项目来源、意义等1.2 文档阅读者领导–指导软件开发;项目负责人–指导、讨论;设计人员–为系统设计作参考;开发人员–为开发作参考;测试人员–为测试作参考;项目其...

2018-12-29 09:46:48 34331 4

原创 深入理解Qt信号槽

简述信号槽机制是观察者模式的一种应用,达到订阅-发布的效果。与之类似的有C#中的委托机制,只是写法有所不同。深入信号槽1. 使用场合信号槽实现的主体是connect函数,常有两种写法(利用SIGNAL、SLOT宏和使用&类名::函数的结构)。需要注意connect除了可以连接信号和槽,还可以连接信号与信号、单个信号与多个槽、多个信号与单个槽。2. 第五个参数connect函数...

2018-12-27 17:27:02 428

原创 软件项目需求分析报告模板

简述项目组讨论总结了一套需求报告的模板,分享一下。除了标题、修订记录、目录以外,报告主体分为六个章节,分别是引言、需求概述、分析场景、功能实例化、其它说明以及附录。下面具体描述各部分的写法。详述引言1.1 编写目的对产品或项目进行定义。如果这个软件需求规格说明只与整个系统的一部分有关系,那么只定义文档中要说明的部分或子系统。1.2 预期读者和阅读建议预期参考人员包括开发人员、测...

2018-12-25 09:42:56 51692

原创 值传递和引用传递,以及const在函数中的用法

简述理解值传递与引用传递,可以提高代码的运行效率;理解const在函数中的用法,可以增强程序的健壮性,“Use const whenever you need"。而const的用法针对值传递、引用传递又有很大的区别。下文将分成难度递增的三个阶段,来记录值传递、引用传递和const修饰符在函数中的用法。level 1–值传递与引用传递1、值传递主调函数向调用函数传递参数实际上只是将实参...

2018-12-19 16:14:44 2928

原创 多重循环性能优化

简述循环次数较多,循环层数较多时,程序效率问题非常明显。优化后的多重for循环可以提升大半的效率。方法一、实例化变量尽量放在for循环体外,只实例化一次。二、普通变量改为寄存器变量,如i++改为++i。前置递增运算避免了不必要的工作,它把值加1后直接返回改变了运算对象本身。三、条件比较使用<要快于<=,同理>要快于<=。四、把外层可以计算的尽可能放到外层;有判断...

2018-12-19 09:16:41 3292

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除