- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 MBR AMBR
EPS系统中,承载级QoS参数包括QCI、分配与保持优先级(ARP)、GBR、最大比特速率(MBR)和聚合最大比特速率(AMBR)。其中,QCI与AMBR两个参数是EPS系统新增加的,其余参数则都沿用于现有的UMTS系统。 无论是GBR承载还是Non-GBR承载,都包含与QCI和ARP两个参数。QCI是一个数量等级,用来表示控制承载级别的数据包传输处理的接入点参数,例如调度权重、
2014-07-08 09:43:32 12258
原创 likely(x)
#define likely(x) __builtin_expect(!!(x), 1)也就是说明x==1是“经常发生的”或是“很可能发生的”。使用likely ,执行if后面语句的可能性大些,编译器将if{}是的内容编译到前面, 使用unlikely ,执行else后面语句的可能性大些,编译器将else{}里的内容编译到前面。这样有利于cpu预取,提高预取指令的正确率,因而可提高效率。
2014-06-17 16:08:43 412
原创 上行调度请求(Scheduling Request,SR) 与uffer Status Report(BSR)
如果UE没有上行数据要传输,eNodeB并不需要为该UE分配上行资源,否则会造成资源的浪费。因此, UE需要告诉eNodeB自己是否有上行数据需要传输,以便eNodeB决定是否给UE分配上行资源。为此LTE提供了一个上行调度请求(Scheduling Request,SR)的机制。 UE通过SR告诉eNodeB是否需要上行资源以便用于UL-SCH传输,但并不会告诉eNodeB有多
2014-06-16 20:01:02 5027
原创 指针类型转换
其实放在内存的内容都是二进制编码,只是拿出来的类型依照指针类型而定,更确切的应该说成只是在处理内存时是依照指针类型而定,比如用(char *)作强制转换,则将来处理相应的内存地址时是按字节为单位处理的,如果用(int *)则将按4个字节为单位进行处理
2014-06-14 10:05:14 487
原创 UE接入小区前会做哪些处理
1. UE开机后首先会进行小区搜索,找到小区的中心频率,之后就开始进行同步搜索,同步信号包括主同步信号和辅同步信号,UE通过本地的主辅同步信号与接收到的信号做相关运算,可以得到小区的组ID和小区组内ID,从而确定小区ID,并通过同步找到帧,子帧以及OFDM符号的起始位置; 2. 同步完成后UE开始解析PBCH,PBCH内包含有系统帧号,系统带宽,PHICH占用OFDM符号数目以及PHICH
2014-06-13 09:25:19 1641
原创 RNTI
RNTI应该都是16bit,用于给CRC加扰.它的作用是,UE在不同状态,使用不同RNTI,去解扰CRC,获取PDCCH信道内容,并最终获取其相关的PDSCH上的内容.如:在随机接入等待基站回复状态,UE使用RA-RNTI来解扰,获取上行资源分配消息。
2014-05-21 10:45:26 3838
原创 原码补码
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机
2014-05-19 10:26:37 338
原创 memset函数
void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。memset是把每个字节都赋为第二个参数的值,所以为0时每个字节都是0,每个int也都是0,赋-1时,每个字节都是FF,每个int也是FFFFFFFF,就是-1,如果是其它值,比如1,那个每个字节就是01,每个int就是01010101。memset()的深刻
2014-05-19 10:06:51 278
原创 c语言中include<>与“”的区别
#include1,用尖括号时,系统到存放C库函数头文件所在的目录(即C编译系统的include子目录)中寻找要包含的文件(这称为吧标准方式)2,用双引号时,系统现在用户当前目录中寻找要包含的文件,若找不到,再安标准方式查找(即尖括号的查找方式)如果调用系统函数而用#include命令来包含相应文件的头文件(如,stdio.h),宜采用尖括号以生查找时间,如果要包含用户自己定义的文件,宜用双
2014-05-14 22:26:59 484
原创 字符串分离
#includevoid DivideString(const char*pInputStr,long lInputLen,char*pOutputStr){ int flag=0; for(int i=0;i { if(pInputStr[i]!=' '){flag=0;*pOutputStr++=pInputStr[i];} else
2014-05-14 22:26:05 403
原创 C++ private, public, protected
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,
2014-05-14 22:25:11 273
原创 回文数
#includeint Palind_one(int number){ int mun=0;int num=number; while(num) { mun=mun*10; mun=mun+num; num=num/10; } if(mun==number)return 1; else retur
2014-05-14 22:24:15 267
原创 真因数
#includeint main(){ int number,i; scanf("%d",&number); i=number-1; printf("factor:"); while(i&&i!=1) { if(number%i==0)printf("%d ",i); i--; }}//一个数的因数只
2014-05-14 22:23:06 2636
原创 重复字符过滤
#include#includeusing namespace std;void stringFilter(const char*pInputStr,char*pOutputStr){ int a[26]={0}; //记录26个字母重复情况的数组 while(*pInputStr!='\0') { a[*pInputS
2014-05-14 22:22:09 364
原创 指向字符串的指针在printf与cout中的表现比较
直接打印一个指向字符串的指针一定结果是指针的地址吗?还是这个字符串本身?答案是“看情况”。[cpp] view plaincopychar *m1 = "coconut is lovely"; char *m2 = "passion fruit isnice"; char *m3 = "craneberry is fine"; 首先来看
2014-05-14 22:19:57 361
原创 Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的
2014-05-14 22:16:47 256
原创 测试各种数据类型字节长度
#includeint main(int argc, char * argv[]){ printf("sizeof(char) = %d\n", sizeof(char)); printf("sizeof(short) = %d\n", sizeof(short)); printf("sizeof(int) = %d\n", sizeof(int));
2014-05-14 22:15:12 1131
原创 表驱动
在使用表驱动方法时需要说明的一个问题是,你将在表中存储些什么。在某些情况下,表查寻的结果是数据。如果是这种情况,你可以把数据存储在表中。在其它情况下,表查寻的结果是动作。在这种情况下,你可以把描述这一动作的代码存储在表中。在某些语言中,也可以把实现这一动作的子程序的调用存储在表中,也就是将函数的指针保存在表中,当查找到这项时,让程序用这个函数指针来调用相应的程序代码,这个就是函数指针在
2014-05-14 22:14:09 395
原创 (inline)内置函数
内联函数在编译的时候将不进行函数调用,编译器将内联函数的代码粘贴在调用(形式上调用)处,可以提高效率。内联函数只能是代码很少很简单的函数,因为如果一个很大很复杂的函数即使设为内联,编译器也将自动设置该函数为非内联。 string &shorterString(string &s1,string &s2){return s1.size()}假设将shorterString定义
2014-05-14 22:13:36 329
原创 逻辑信道、传输信道、物理信道
信道、链路等等都人概念对系列数据流或调制信号分类名称其名称信号功用来确定逻辑信道定义传送信息类型些信息能独立成块数据流也能夹杂起有确定起始位数据流些数据流包括所有用户数据传输信道对逻辑信道信息进行特定处理再加上传输格式等指示信息数据流些数据流仍包括所有用户数据物理信道则属于同用户、同功用传输信道数据流分别按照相应规则确定其载频、扰码、扩频码、开始结束时间等进行相关操作并终调
2014-05-14 22:12:55 4262 1
原创 RA的两种模式
基于竞争模式的随机接入:RRC_IDLE状态下的初始接入;无线链路出错以后的初始接入;RRC_CONNECTED状态下,当有上行数据传输时,例如在上行失步后“non-synchronised”, 或者没有PUCCH资源用于发送调度请求消息,也就是说在这个时候除了通过随机接入的方式外,没有其它途径告诉eNB,UE存在上行数据需要发送基于非竞争模式的随机接入:R
2014-05-14 22:11:39 1376
原创 Extern Static const
在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非
2014-05-14 22:10:46 273
原创 #if 0 #end if
1、先说“#if 0/#if 1 ... #endif”的作用,楼上诸位或多或少都说到了一点,但都没有说到关键的地方。我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“”这样的块注释功能,我们通常使用它写代码中说明性的注释文字(注释作用)以及在调试时关闭某段代码对编译器的可见性(屏蔽作用),当然,这里所谓的“注释作用”和“屏蔽作用”是我们从功能上下的主观定义,对预处理器而言,两者
2014-05-14 22:07:24 561
原创 extern测试
情况一:在test.c中定义并赋值,在main.c中声明并使用test.cint j=9;main.c#includeint main(){ extern int j; printf("\n%d add:%d\n",j,&j); return 0;}情况二:在test.c中定义并赋值,在test.h中声明,在main.c中#in
2014-05-14 21:45:18 305
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人