10) 干扰噪声功率计算阶段:模型文件dra_inoise.ps.c。 这个pipeline stage的调用发生在特定时机:当一个包正在被接收器接收且还未完成时,另一个包又到达该接收器,此时将调用这个计算阶段来计算干扰功率。当然干扰功率只对valid包(即被接收器认为是相匹配发送器发送的包,并且在接收功率计算阶段未被打上noise标记的包。在那里,如果一个valid包到达接收器时信道已经被锁定了,则该valid包仍然认为是noise)来计算。 计算方法:读取前一个包的接收完成时间,与当前仿真时间(即后一个包的到达时间)进行比较,如果相等,则不认为这两个包产生了互相干扰,因此不计算干扰功率;如果不相等,则进行下列操作;将两个包的冲突次数都加1;读取两个包的"match"标志和接收功率;若后一个包的标志为"valid",则将其噪声功率再加上前一个包的接收功率作为它的噪声功率值;若前一个包的标志是"valid",则将其噪声功率再加上后一个包的接收功率作为它的噪声功率值。
11) 信噪比计算阶段:模型文件dra_snr.ps.c。 虽然背景噪声功率对于每个包的传输来说,只进行估算一次,但是干扰噪声功率却可能要计算多次。因为在一个包的整个接收过程当中,可能有多次的其他包的到达,形成了新的干扰功率,每形成一次干扰,都要重新对信噪比评估一次。一个包在两次评估信噪比的时间间隔里传输的那一段数据称为一个segment。 计算方法:读取接收功率;读取干扰噪声功率和背景噪声功率;计算信噪比,写入包的TDA里;将仿真时间也写入包里,以记录本次信噪比计算的时间点。
|