天天看点

【大话GSM】BER测量相关

BER测量相关

BER测量过程

BER的测试模型如下:

【大话GSM】BER测量相关

1) 当MS收到NW发来的数据包时, 不管该包数据是正确还是错误,它直接将数据A1取出来(假设此时为A1’),然后重新计算一个CRC值,假设为CRC1’,组成完整的包发送给NW;

2) 当NW收到环回上来的数据包后,也会重新计算CRC假设为CRC2然后判断,如果此时CRC2 == CRC1’,则NW认为在上行这个过程中数据传输没有错误,认为A2 == A1’;如果此时CRC2 != CRC1’,则NW认为在上行这个过程中数据传输有错误,它会直接将该包数据丢弃。

       注意:BER的计算是在HL,在上图中是NW收到MS环回过来的数据后判断的。这里有一个认识需要理清:假设NW的HL需要统计10000bit中的误码率(假设100个PDU),则NW作为发送机,有可能发了大于10000bit的数据(大于100个PDU),因为在NW接收环回数据的时候,MAC判断有CRC错误时会丢弃一部分PDU,因此当HL凑够10000bit时,发送机发送的总bit会大于等于10000bit。

        NW发送过的PDU数据均由保存,HL在收到上报上来的PDU后,就可以逐bit对比和发送的PDU中的bit,统计出错的bit数。

        参考上图,在上下行两路的传输过程中,可能的传输组合(按下-上的方式,正-错标识下行正确,上行错误)为“正-正”、“正-错”、“错-正”、“错-错”,而NW接收环回的时候将上行CRC错的数据包都丢弃了,相当于将“正-错”、“错-错”情况下的所有数据包均丢弃,只统计“正-正”、“错-正”的情况。这是合理的,因为我需要的只是计算下行链路的错误,必须将上行链路出错的可能排除在外。之前不太理解的地方就是在计算的时候,因为BER = 错误的bit数/总的bit数,之前考虑的是丢弃一部分数据包,总的bit数没变,错误的bit数不是变少了。其实不是这样。

        此时,总的bit数 = “正-正”、“错-正”情况下的总bit数,错误的bit数 = “正-正”、“错-正”情况下的错误bit数,这样计算出来的不就是下行链路出错的概率嘛。

总结:

1. 刚开始理解上出现偏差,总以为是NW发送了多少数据,然后环回回来计算BER的时候分母就要是多少数据。这样理解是有误区的,其实通过将“正-正”、“正-错”、“错-正”、“错-错”这几种情况画出来,丢弃“正-错”、“错-错”只统计“正-正”、“错-正”是很合理且很容易理解的。多画图。

2. W和TD的代码中RLC、MAC层的处理分的很清楚(每个层都是一个单独的处理文件)。GPRS的协议栈和W的已经很接近了,但是在代码层次上是混乱的,没有明确的层的划分。这也是代码的缺陷吧。

3. 昨天晚上看的《数学之美》上在讲解布尔代数的地方,就引入了0-1逻辑操作,感觉当时想到用“正-正”、“正-错”、“错-正”、“错-错”的方法就是看了那部分的内容,结合理解起来容易多了。