📄 cdma_snr.ps.c
字号:
/* cdma_snr.ps.c */
/* CDMA Signal-to-Noise-Ratio (SNR) model for radio link Transceiver Pipeline */
#include "opnet.h"
#include <math.h>
#if defined (__cplusplus)
extern "C"
#endif
//static const char* PowI_Err_Hdr = "Error in BER computation pipeline stage (dra_collisionnr):";
void
cdma_snr (Packet * pkptr)
{
//int msgbuf[512];
double bkg_noise, accum_noise, rcvd_power;
/** Compute the signal-to-noise ratio for the given packet. **/
FIN (cdma_snr (pkptr));
/* Get the packet's received power level. */
rcvd_power = op_td_get_dbl (pkptr, OPC_TDA_RA_RCVD_POWER);
/* Get the packet's accumulated noise levels calculated by the */
/* interference and background noise stages. */
accum_noise = op_td_get_dbl (pkptr, OPC_TDA_RA_NOISE_ACCUM);
bkg_noise = op_td_get_dbl (pkptr, OPC_TDA_RA_BKGNOISE);
/* Assign the SNR in dB. */
op_td_set_dbl (pkptr, OPC_TDA_RA_SNR,10.0 * log10 (rcvd_power / (accum_noise/3 + bkg_noise)));
op_td_set_dbl(pkptr,OPC_TDA_RA_MAX_INDEX+1,10.0 * log10 (rcvd_power / (2*accum_noise/3 + bkg_noise)));
//op_td_set_dbl (pkptr, OPC_TDA_RA_SNR,
// 10.0 * log10 (rcvd_power / bkg_noise));
// sprintf(msgbuf,"RecPow=%e\nInterP=%e\nBkgNoise=%e\n",rcvd_power,accum_noise,bkg_noise);
// op_sim_message(msgbuf, 0);
/* Set field indicating the time at which SNR was calculated. */
op_td_set_dbl (pkptr, OPC_TDA_RA_SNR_CALC_TIME, op_sim_time ());
FOUT;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -