⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdma_ber.ps.c

📁 基于OPNET的卫星通信程序
💻 C
字号:
/* cdma_ber.ps.c */                                                       /* CDMA Bit-Error-Rate (BER) model for radio link Transceiver Pipeline */#include "opnet.h"#include "math.h"#if defined (__cplusplus)extern "C"#endifstatic const char*	PowI_Err_Hdr = "Error in CDMA BER computation pipeline stage (cdma_ber):";voidcdma_ber (Packet * pkptr)	{	//int msgbuf[512];	double		ber,bernew,snr,cdmasnr, proc_gain, eff_snr, cdmaeff_snr, code_rate;	Vartype		modulation_table;	Objid 		rx_nodeid;		/** Calculate the average bit error rate affecting given packet. **/	FIN (cdma_ber (pkptr));		/* We have to make sure that the initialization is done and the extended 	attributes are loaded */	rx_nodeid = op_td_get_int(pkptr, OPC_TDA_RA_RX_OBJID);	if (op_ima_obj_attr_get( rx_nodeid, "Coding_Rate",				 &code_rate) ==	    OPC_COMPCODE_FAILURE) 	{		op_sim_end (PowI_Err_Hdr, "No Coding_Rate attr",			    OPC_NIL, OPC_NIL);	}	/* Determine current value of Signal-to-Noise-Ratio (SNR). */	snr = op_td_get_dbl (pkptr, OPC_TDA_RA_SNR);	cdmasnr = op_td_get_dbl (pkptr, OPC_TDA_RA_MAX_INDEX+1);		/* Determine address of modulation table. */	modulation_table = op_td_get_ptr (pkptr, OPC_TDA_RA_RX_MOD);	/* Determine processing gain on channel. */	proc_gain = op_td_get_dbl (pkptr, OPC_TDA_RA_PROC_GAIN);	/* Calculate effective SNR incorporating processing gain. */	eff_snr = snr + proc_gain;	cdmaeff_snr = cdmasnr + proc_gain + 10*log10(code_rate);	//sprintf(msgbuf,"EFF_SNR=%e\n",cdmaeff_snr);	//op_sim_message(msgbuf, 0);		/* Derive expected BER from effective SNR. */	ber = op_tbl_mod_ber (modulation_table,cdmaeff_snr);		/* Place the BER in the packet's transmission data. */	op_td_set_dbl (pkptr, OPC_TDA_RA_BER, ber);	FOUT	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -