自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 format0功率检测以及噪声检测,其中噪声使用高斯白噪声进行模拟

N_CELL_ID = 55;N_UL_symb = 14; N_RB_sc=12;Nc = 1600;Mpn=3000;m0 =0 ;mcs =0;m_init=0;m = 1;% 对fmt0,只支持1个prbdelta=0;%生成伪随机序列x10 =1; x11 = zeros(1,30); x1 = [x10 x11];%给x1序列的第一个周期初始化 %生成x1序列for i = 1:(Nc +Mpn - 31) x1(i + 3

2022-03-24 10:56:45 571

原创 NR常用协议以及下载路径

NR常用协议proto├── 21905-h00-Vocabulary.doc├── 23501-fa0-System architecture for the 5G System (5GS) Stage 2.docx 5G的系统构架 核心网 - 5.7 QoS model 8.3.1 User Plane Protocol Stack for a PDU Session├── 29060-f50-(GTP) across the Gn and Gp interface.docx├── 29281

2022-02-15 14:38:08 1149

原创 NR PUCCH format0序列生成以及检测机制

序列生成序列很简单,就是本地基序列乘以循环移位fmt0 如何传输 SR HARQ-ACK第一种情况:只传harq-ack的时候,区分1bit还是2bit循环移位α三部分组成m0(ue级别),mcs(ue级别),ncs(小区界别,区分时隙和符号)通过检测各个循环移位上的功率就可以确定ue发送了什么,传输1bit harq-ack的时候,基站同时检测{0,3},当最大功率在0上的时候,就是nack,当最大过激活检测功率出现在3的时候就是ack。传输2bit的时候,同时计算{0,3,6,9}上的功率

2022-02-13 20:36:56 1497 4

原创 NR中码字

码字定义:一个码字就是在一个TTI上发送的包含了CRC位并经过了编码(Encoding)和速率匹配(Ratematching)之后的独立传输块(transportblock)。码字的利弊:码字的多少并不能改变流量的极限,多码字只是为了提升控制颗粒:同样一块数据,用单码字的时候,需要所有层都必须统一调度,而多码字的时候可以根据码字与层的映射关系来分开调度,每个码字的有自己单独的调度信息以及反馈信息,不能层数的环境差异就可以通过不能的码字来区分开来。但是多码字比单码字对整个资源的占用,包括调度以及反馈也

2022-01-24 08:47:12 1061

原创 SSB介绍(pbch和dmrs需要补充)

NR SSB 就是由主同步序列,辅同步序列,物理广播信道和解调参考信号在一起构成的,也就是PSS,SSS,PBCH,DMRS在四个连续的OFDM符号。pss的作用:ue搜索到pss后确定OFDM符号的开始位置,确定了SS/PBCH块的子载波间隔,实现OFDM符号的时间同步和SS/PBDH块同步,通过盲选的方式确定N_(2)ID.生成PSS信号的公式如下,可以看到是一个伪随机序列,具有自相关特性,ue唯一不知道的就是N(2)ID,而它只有三种情况0,1,2,ue直接生成三种本地序列相关,判断峰值就能知

2022-01-09 20:37:40 3077

原创 pucch各个格式的特点

format0 不需要调制解调,通过循环移位来检测,比较快一点,而且是短符号,不同的ue是通过不同的循环移位来区分。适合URLLCformat1 需要调制解调,并且用户复用很强大,适合EMBB,长符号,提升上行覆盖。format2 短符号,不支持用户复用,可以传大量的bit,完全是为了URLCC设计的format3 长符号,不支持用户复用,可以传大量的bit,是format1形成互补,适合EMBBformat4 长符号,兼顾传输长度和用户复用的特点,但是为啥format4只能是2个或者4个用户复用.

2021-11-07 22:37:40 2131

原创 超级详细的接入信令过程:包括层一层二和层三的流程

NR-PRACH:接入信令过程mib:sib1

2021-10-11 11:22:13 612

原创 UCI和数据复用在pusch上传输(第六部分)---ldpc编码

ldpc编码的过程

2021-10-05 16:52:36 1358 5

原创 UCI和数据复用在pusch上传输(第五部分)---polar编码

polar编码的过程

2021-09-26 22:42:10 1768 6

原创 UCI和数据复用在pusch上传输(第四部分)---small block lengths

介绍polar编码

2021-09-26 10:24:20 1089

原创 UCI和数据复用在pusch上传输---数据和UCI位置的摆放(第三部分)

data和uci复用位置的摆放详细教程参数step1

2021-09-22 23:17:35 2394 4

原创 UCI和数据复用在pusch上传输---确定harqack,csi1和csi2的bit数(第二部分)

1.得到harq-ack需要分配多少子载波空间这是typeA 的计算过程如下,typeB的计算过程也类似,在这里就不做介绍。harq-ack占用的符号必须是第一个连续导频符号后面的数据符号开始放置。 % Get the number of coded HARQ-ACK symbols and bits, TS 38.212, % Section 6.3.2.4.1.1 [qDashACK,EuciACK] = rateMatchInfoACK(... tb

2021-09-22 17:11:10 3061 2

原创 UCI和数据复用在pusch上传输---第一部分

一.总数UCI包括 harq-ack,csi,sr。这些uci信息可以通过PUCCH传输,也可以通过pusch传输(*这块有了疑问,sr就是在pusch调度前,ue需要发送sr,但是当sr调度基站收不到的时候,会通过重新接入,然后msg3携带的bsr来代替,正常sr是不能通过pusch发送的,这个待确定*。),csi有周期性的通过pucch传输,非周期性的通过pusch传输,半持久行通过PUCCH或者dci激活的pusch。CSI报告由两部分组成:CSI port1和CSI port2.CSI port1

2021-09-21 21:18:37 4722 8

转载 通过matlab自带的nr资源学习5g-toolbox 支持nr的内容

matlab toolbox 支持nr的内容App support for NR uplink and downlink vector waveform generationEnhanced support for programmatic 5G NR UL waveform generationSupport for PRSEnhanced support for PUCCHSupport for channel reciprocity in CDL and TDL channel mode

2021-09-05 09:33:38 2838 1

原创 NR---PUSCH之一:协议流程梳理

PUSCH(Physical Uplink Shared CHannel):指的是物理上行共享信道,主要承载用户数据和控制信息,这个也是上行最重要的信道,当然复杂度是有的。这篇文章从物理层的角度梳理一下pusch发端的在协议层面的简单过程,后面我会一个一个展开来梳理每个部分。...

2021-01-24 20:32:28 4194 2

原创 NR-PRACH接受端如何检测出preambleid和TA的

PRACH就是利用了ZC序列的两个特点:1.ZC序列具有恒定的振幅,经过DFT过后也是恒定振幅,这样就限制了峰均比对其他用户的产生的边界和时间平坦性的影响,在计算过程中只需要考虑相位,不需要考虑振幅,这样简化了计算。2.ZC序列具有理想的自相关特性,零互相关的特性,序列长度为L_RA,自相关后峰值为L_RA,互相关后赋值为接近0,这样就很容易检测。第一个特性(主要是大家了解一下)%%%%%%test dft后的幅值%%%%%%%%%%L_RA =839for i = 1:1:L_RA

2021-01-17 22:33:27 6493 15

原创 prach---发端

prach ofdm 符号的生成:prach的preamble id是怎么来的?一个循环偏移为Cv,长度为L_RA的ZC序列,这个序列就会确定一个preamble id 。对于单ue来说,每个ue使用一个preamble id对于一个基站来说,最大支持64个preamble id,也就是支持64的ue同时接入,大家看到,一个L_RA的ZC序列并不一定能够有64个Cv,如果不够,一个logic index i对应一个u ,一个u对应产生L_RA长度的ZC序列,如果第一个ZC序列不够64个preamb

2021-01-10 23:43:53 1038

原创 NR-PRACH:prach格式以及时频域情况

随机序列产生:x_u_v:random-access preamblex_u:a logical root sequence

2020-12-13 22:36:09 12059

原创 NR-PRACH:接入场景和接入流程

PRACH:物理随机接入信道作用:随机接入中发送preamble序列,基站求出TA值,获得上行同步,完成随机接入过程后,终端就可以与基站进行上行通信,prach只是接入过程中的msg1。接入方式分两种:竞争接入和非竞争接入1.基于竞争的随机接入过程:2.切换场景(基于非竞争接入)...

2020-11-30 23:05:46 6857 10

转载 nr技术之---MIMO

天线发射天线和单根接受天线之间的信道容量受限于香浓公式,想要在相同的频谱带宽下进一步提升信道容量,要采用多天线技术.1. 什么是MIMOMIMO:Multiple-Intput Multiple-Output,即多入多出系统,这里的入和出是相对于发射天线和接受天线构成的天线系统来讲。通常的通信系统是单发单收,也就是SISO:Single-Input Single-Output2.SISO系统信息传输速率受限于香浓定理。香农给出了在高斯白噪声干扰的,带宽受限的信道上实现无差错传输的信息速率...

2020-07-28 06:27:00 2688

原创 nr信道pucch的循环移位用matlab生成

一.循环移位相关的协议:二伪随机序列生成:伪随机序列在之前的文章中专门讲过,有需要的可以点击下面的文章查看:添加链接描述三下面是pucch信道生成伪随机序列的matlab代码:

2020-05-16 22:14:27 1081 2

原创 matlab读取十六进制数转化成有符号的short

工作需要,需要读取十六进制的数据,并转化成short类型的数据,实际上在定点复数运算中经常会有这样的数据,但是matlab在数据转化中,没有c灵活,还是费了一些周折。试过直接强制转化int16的数据,发现matlab直接就将符号位丢弃了,所以才想到这个办法。%函数功能:本程序是读入一个十六进制的数据,将其16bits组成一个有符号的%short型数据clc;clear;close al...

2020-03-20 00:01:03 4896

原创 C语言枚举enum的定义与使用

好久没有写了,懈怠了,有时候想写又觉得思路还不完善,就放弃了,以后有想法就写,再慢慢改进。 最近工作上遇到枚举的使用,有点懵,主要就是两个疑问,枚举变量占用多大空间,另外一个问题就是枚举里面的字符代表的值是多少?带着两个疑问编了一个小程序来验证:#include <stdio.h>enum enum_type_enum{ RED, GREEN, ...

2020-01-01 23:33:56 1687 4

原创 行列式与矩阵相关的内容学习

一,已经工作几年了为什么还需要重新学习行列式。最近工作研究算法,需要求埃尔米特(共轭矩阵)的逆,发现对行列式以及矩阵这块的计算已经很模糊了,之前听人说,程序员走到越深入,就是看你的数学能力,至少通信方面是这样的,搞通信的高手都是数学高手,所以决定重新把行列式和矩阵相关的内容重新捡起来。二.本次学习的目标:1.理解数学的基本概念,原理以及计算方式。2.所有计算以及学习都要通过mat...

2019-10-01 20:41:02 346

原创 载波聚合

一.为什么要进行载波聚合?lte中最大带宽是20M(100个PRB),该小区下ue能获得速率是有限的(LTE_FDD上行理想状态下75Mbps左右,而下行理想状态在175Mbps(注:后面我会专门一篇文章计算LTE_TDD,LTE_FDD理想状态下的速率)),而lte-a为了实现下行速率1Gbps和上行500Mbps的目标,就需要有100M的带宽,这就需要5个载波单元(cc也就是小区)进行聚合。...

2019-09-23 23:20:21 8271

原创 正则表达式帮助搜索更高效

前一段时间再工作的时候因为经常要搜索log信息,看一个同事用正则表达式来搜索信息发现太方便了,所以就想着自己也学习一下,以方面方便。在工作中经常需要搜索一些信息,这个信息的条件不止一个,但是通常我们的搜索只能输入一个条件,此时就需要正则表达式:...

2019-09-14 23:15:10 157

原创 双链表的机制(建立,查询,修改,删除,人机交互的处理)以及内存分配与释放机制

一.定义:链表(listed list)就是一些包含数据的独立数据结构(通常成为节点)的集合。链表中的每个节点通过链或者指针连接起来。程序通过指针访问链表中的节点。通常节点是动态分配的,但是有的时候也能看到由节点数组构建的链表。(此定义来自《c与指针》的第12章)。我自己理解就是链表的特点就是方便通过指针遍历所有节点,特别是双链,可以通过一个指针向前或者向后遍历所有节点,链表使得数据的结构更加...

2019-09-08 18:39:31 247

原创 大小端转换(一篇文章了解所有情况下的大小端转换方法)

总述:大小端转换(一篇文章了解所有情况下的大小端转换方法)字节间字节内大端低地址的数据放在高字节位域:先从低地址对应数据字节的高bit开始分配小端低地址的数据放在低字节位域:先从低地址对应数据字节的低bit开始分配注释:对于大小端的几个结论:1.char型变量和char型数组没有大小端的区分。2.需要转化数据类型大于1个字节的数据类型:short,int,枚举,联合体等。一.为什么要进行...

2019-08-25 18:15:51 22127 9

原创 LTE和NR伪随机序列的产生和特性

总述:NR和LTE产生seudo-random sequence 是同样的方法:从公式可以看出,伪随机序列C(i)是由两个m序列产生的,第一个m序列初始状态已经知道,第二个m序列的初始状态需要给出,这两个m序列来生成C(i).第一步:m序列的生成与特性:以31为周期,那么就是5级 ,2^5-1=31等于相应的计数。根据上面的公式,matlab求出x1的m序列Nc= 1600 ;%按照...

2019-08-18 20:47:46 6072 9

原创 鉴相,鉴频以及环路跟踪算法的理解:

本文参考谢钢的《GPS原理与接收机设计》,我之前工作的时候领导要求我死磕这本书,公司的算法也是基于这本书里面的算法设计的。1.鉴频的方法:在这之前先补充几个基础知识:...

2019-08-10 18:43:08 5446

转载 欢迎使用CSDN-markdown

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-01-25 20:14:48 117

原创 第二(NUM_TWO):快速排序(QuickSort)

快速算法是一种分治的递归算法。快速算法的思路:首先从待排序记录中选一个分割记录,接着调整所有待排序记录,将分割记录放置在一个位置,使得分割记录左边的关键字不大于分割记录的关键字,使得分割记录右边的关键之不小于分割记录的关键字,最后把分割记录左边的那些记录和右边的那些记录分别看成两个独立表,再对两个表分别排序(递归调用快速排序法)。...

2019-01-21 10:52:02 1294

原创 第一(NUM_ONE):冒泡排序(BubbleSort)

冒泡排序(或者称为:气泡排序)冒泡排序是一种交换排序算法思想:通过无序区中相邻记录关键字间的比较和位置的交换,使得关键字中最小的记录如“气泡”一般网上漂浮直至“水面”(这个也是冒泡名称的由来)。算法步骤:整个算法是从最下面的记录开始,对每个相邻的关键字进行比较,且使关键字较小的记录换至关键字较大的记录之上,使得每经过一趟冒泡排序以后,关键字最小的记录到达最上端,接着,再在剩下的记录中找到关键...

2019-01-19 15:17:16 1884

原创 C语言各种排序方法总结。

今天接到中软国际的dsp开发的技术面试,问了我字符串排序如何进行排序,把有关排序的问题总结一下。目前能够在网上搜寻到的排序有:第一(NUM_ONE): 冒泡排序(BubbleSort)第二(NUM_TWO): 快速排序(QuickSort)第三(NUM_THREE): 堆排序(HeapSort)第四(NUM_FOUR): 二路排序(HeapSort)第五(NUM_FIVE): ...

2019-01-19 09:27:07 5542 2

原创 如何在vs2010里面运行c程序

在我们学习变成c的时候,需要找一个联系的平台,当然一般在学校我们用的是VC6.0,但是在工作后就会发现大家用的是Microsoft Visual Studio,这个软件比较强大,但是今天我们说如何在vs2010里面编写一个简单的helloworld的工程。第一步:新建工程:点击新建,项目,然后输出项目名称:helloworld第二步:点击确定,接下来选择控制台程序和空项目,点击完成。...

2019-01-17 20:03:26 7957 2

原创 联合体在嵌入式中的应用,以及理解浮点

1.写一个标准宏,这个宏输入两个参数并返回较大的一个。#define Max(X,Y) ((X)&amp;amp;amp;amp;amp;gt;(Y)?(Y):(X)) 切记结尾没有;2.嵌入式系统任务一般需要写一个无线循环,你怎么用C编写死循环?while(1){}或者for(;

2019-01-08 10:55:57 834

原创 怎样理解static/const/volatile

1.static全局变量与普通的全局变量有什么区别?static局部变量与普通局部变量有什么区别?static函数与普通函数有什么区别?关键字static的作用是什么?在什么情况下用(我笔试很多次,基本上都有这个题)再说这块之前首先说一下C的存储:一般认为在c中分为这几个存储区:栈 --有编译器自动分配释放堆 --一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收全局区(静...

2019-01-07 15:52:41 633

原创 深度理解c语言中的宏

1.宏的定义:#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。(1) 简单的宏定义:#define &amp;amp;amp;lt;宏名&amp;amp;amp;gt;  &amp;amp;amp;lt;字符串&amp;amp;amp;gt;例: #define PI 3.1415926注:

2019-01-07 15:17:02 624

原创 C 指针的知识点(初始化,赋值,函数指针,指针++)

1)指针的初始化指针初始化目的就是让指针知道指向那个地址。第一种方法就是在定义指针的同时告诉指针指向的地址,第二中情况,不在定义指针的时候初始化,而是把地址直接赋值给指针变量。注意:不可以在指针不清楚指向地址的情况下给指针赋值(但是char p=0或者p=NULL除外,该语句表示指针为空)。第一种方法:在指针定义的时候告诉指针指向的地址。下面这样初始化就是错误的:第二中情况:不在定义指...

2019-01-03 15:34:18 31789 2

原创 笔试题:预处理/结构体字符对齐/typedef的使用

1. .什么是预编译,什么时候需要预编译?**答:预编译又称为预处理,是做些代码文本替换工作,处理以#开头的指令,比如拷贝#include包含的文本代码,#define宏定义的替换,条件编译等 ,就是编译做的预备工作的阶段。主要处理#开头的预备工作阶段,主要处理#开头的预编译指令,预编译指令指示了在程序正式编译之前就由编译器进行的操作,可以放在程序的任何位置,C编译系统对程序进行通常的编译之前首...

2019-01-02 15:07:54 615

空空如也

空空如也

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

TA关注的人

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