80211信道模型学习

上传人:人*** 文档编号:559286138 上传时间:2022-08-30 格式:DOCX 页数:8 大小:41.36KB
返回 下载 相关 举报
80211信道模型学习_第1页
第1页 / 共8页
80211信道模型学习_第2页
第2页 / 共8页
80211信道模型学习_第3页
第3页 / 共8页
80211信道模型学习_第4页
第4页 / 共8页
80211信道模型学习_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《80211信道模型学习》由会员分享,可在线阅读,更多相关《80211信道模型学习(8页珍藏版)》请在金锄头文库上搜索。

1、图为802.11协议的信道进程模型,通过信道进程模型可以得到全局统计量SINR进程模型有两个非强制状态和三个强制状态 头文件中定义了转移条件和中断结构#include WLAN_def.h#include WLAN_data.h#include WLAN_func.h转移条件#define SYS_INIT= INTRPT_SYS_INIT) #define PHY_TXSTART(op_intrpt_type() = OPC_INTRPT_MCAST) & (op_intrpt_code() 中断方式为多路广播中断中断号是系统初始化(op_intrpt_type() = OPC_INTRPT

2、_REMOTE) & (op_intrpt_code()= INTRPT_PHY_TXSTART_REQUEST) 中断方式为远程中断#define PHY_TXEND= INTRPT_PHY_TXEND)(op_intrpt_type() = OPC_INTRPT_SELF) & (op_intrpt_code()自中断typedef enum INTRPT_RADIO_CHANNEL_TINTRPT_PHY_TXEND INTRPT_RADIO_CHANNEL_T;函数声明static double get_MPDU_power(int, MPDU_T *); 获得 MPDU 的功率sta

3、tic void channel_status_refresh(void); 刷新信道(将功率值写入统计量)static void MPDU_sinr_segment_refresh(void); 更新 MPDU 的 SINR 字段static void MPDU_sinr_calculate(MPDU_T *); 计算 MPDU 的 SINR函数定义文件static double 获得 MPDU 的功率 get_MPDU_power(int lvi_node_index, MPDU_T *lvp_MPDU)int lvi_frequency_band; 频率范围double lvd_MPDU

4、_power; MPDU 功率 double lvd_pathloss;路损FIN(get_MPDU_power();/* this node is an AP */ 接入点if (lvi_node_index frequency_band = lvi_frequency_band)lvd_MPDU_power = lvp_MPDU-power; / linear value lvd_pathloss = gvo_pathloss_matrixlvp_MPDU-source_node_indexlvi_node_index;/ dB valuelvd_pathloss = pow(10.0,

5、lvd_pathloss/10.0); FRET(lvd_MPDU_power / lvd_pathloss);/* otherwise, non-cochannel signal */FRET(0.0); 返回 0 static voidchannel_status_refresh()int lvi_AP_index; 接入点索引 int lvi_STA_index; 移动站索引int lvi_node_index; 节点索引int lvi_MPDU_index; MPDU 索引int lvi_MPDU_number; MPDU 数量MPDU_T *lvp_MPDU; MPDU 的指针 do

6、uble lvd_sum_power ;double lvd_sum_power_dBm;FIN(channel_status_refresh();lvi_MPDU_number = op_prg_list_size(gvlist_radio_channel); 获得信道中 MPDU 的数量 遍历所有的接入点for (lvi_AP_index = 0; lvi_AP_index gvi_AP_number; lvi_AP_index+)lvi_node_index = lvi_AP_index;lvd_sum_power = 0.0;遍历信道中所有的 MPDUfor (lvi_MPDU_ind

7、ex = 0; lvi_MPDU_index lvi_MPDU_number; lvi_MPDU_index+) lvp_MPDU = (MPDU_T *)op_prg_list_access(gvlist_radio_channel, lvi_MPDU_index); 获取信道中的某位置 MPDUlvd_sum_power += get_MPDU_power(lvi_node_index, lvp_MPDU); 获 取 接 收 MPDU 的功率(某个节点的)同一节点发送的 MPDU lvd_sum_power += CONST_AP_THERMAL_NOISE; 计算接收到的总功率 lvd_

8、sum_power_dBm = 10.0 * log10(lvd_sum_power) + 30.0; op_stat_write(gvo_AP_propertylvi_AP_index.PHY_medium_stathandle, lvd_sum_power_dBm); 写入统计句柄遍历所有的移动站for (lvi_STA_index = 0; lvi_STA_index gvi_STA_number; lvi_STA_index+)lvi_node_index = lvi_STA_index + gvi_AP_number;lvd_sum_power = 0.0;遍历所有的 MPDU 单元

9、for (lvi_MPDU_index = 0; lvi_MPDU_index lvi_MPDU_number; lvi_MPDU_index+) lvp_MPDU = (MPDU_T *)op_prg_list_access(gvlist_radio_channel, lvi_MPDU_index)获取 MPDU 的指针lvd_sum_power += get_MPDU_power(lvi_node_index, lvp_MPDU); 获 取 接 收 MPDU 的功率lvd_sum_power += CONST_STA_THERMAL_NOISE;lvd_sum_power_dBm = 10

10、.0 * log10(lvd_sum_power) + 30.0;op_stat_write(gvo_STA_propertylvi_STA_index.PHY_medium_stathandle, lvd_sum_power_dBm); 写入统计句柄FOUT; static voidMPDU_sinr_segment_refresh()int lvi_MPDU_number;int lvi_MPDU_index_1;int lvi_MPDU_index_2;MPDU_T *lvp_MPDU_1;MPDU_T *lvp_MPDU_2; double lvd_signal_power;doubl

11、e lvd_interference_power;double lvd_noise_power;SINR_SEGMENT_T *lvp_sinr_segment;double lvd_sinr;FIN(MPDU_sinr_segment_refresh();lvi_MPDU_number = op_prg_list_size(gvlist_radio_channel);for (lvi_MPDU_index_1 = 0; lvi_MPDU_index_1 destination_node_index gvi_AP_number)lvd_noise_power = CONST_AP_THERMA

12、L_NOISE;elselvd_noise_power = CONST_STA_THERMAL_NOISE;for (lvi_MPDU_index_2 = 0; lvi_MPDU_index_2 source_node_index = lvp_MPDU_1-source_node_index) & (lvp_MPDU_2-destination_node_index = lvp_MPDU_1-destination_node_index)if (lvd_signal_power 0.0)op_sim_end(Error: Duplicate signal MPDU!, Error source

13、 module: WLAN_RADIO_CHANNEL, Error source function: MPDU_sinr_segment_refresh(), );else lvd_signal_power = get_MPDU_power(lvp_MPDU_1-destination_node_index, lvp_MPDU_2);/* otherwise, interference */else lvd_interference_power += get_MPDU_power(lvp_MPDU_1-destination_node_index, lvp_MPDU_2);lvd_sinr = lvd_signal_power / (lvd_interference_power + lvd_noise_po

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号