📄 energy.cpp
字号:
#include <math.h>
#include "define.h"
const int _NUser = NUSER;
const int _SpreadLen = SPREADLEN;
extern double H[NUSER], H2[NUSER];
void EnergyProfile( )
{
int nuser;
double tmp;
// All users use the same energy level, i.e. no energy allocation.
for( nuser=0; nuser<_NUser; nuser++ ) H2[nuser] = 1;
// The following energy levels are for the uncoded IDMA system wih
// BPSK modulation and real channel. The parameters of the system
// are: No. of user = 64 and spreading length =16.
//
// For details of the energy allocation technique, please refer to
// this paper: Li Ping and Lihai Liu, "Analysis and design of IDMA
// systems based on SNR evolution and power allocation," in Proc.
// VTC' 2004-Fall, Los Angeles, CA. Sept. 2004 or
// http://www.ee.cityu.edu.hk/~liping/Research/Conference/IDMA-PA.pdf
//
if( ( _NUser == 64 ) && ( _SpreadLen == 16 ) )
{
H2[63] = 1.0000; // 0.000dB
H2[62] = 1.0000; // 0.000dB
H2[61] = 1.0000; // 0.000dB
H2[60] = 1.0000; // 0.000dB
H2[59] = 1.0000; // 0.000dB
H2[58] = 1.0000; // 0.000dB
H2[57] = 1.0000; // 0.000dB
H2[56] = 1.0000; // 0.000dB
H2[55] = 1.0000; // 0.000dB
H2[54] = 1.0000; // 0.000dB
H2[53] = 1.0000; // 0.000dB
H2[52] = 1.0000; // 0.000dB
H2[51] = 1.0000; // 0.000dB
H2[50] = 1.0000; // 0.000dB
H2[49] = 1.0000; // 0.000dB
H2[48] = 1.0000; // 0.000dB
H2[47] = 1.0000; // 0.000dB
H2[46] = 1.0000; // 0.000dB
H2[45] = 1.0000; // 0.000dB
H2[44] = 1.0000; // 0.000dB
H2[43] = 1.0000; // 0.000dB
H2[42] = 1.0000; // 0.000dB
H2[41] = 1.0000; // 0.000dB
H2[40] = 1.0000; // 0.000dB
H2[39] = 6.2748; // 7.976dB
H2[38] = 6.2748; // 7.976dB
H2[37] = 6.2748; // 7.976dB
H2[36] = 6.2748; // 7.976dB
H2[35] = 6.2748; // 7.976dB
H2[34] = 6.2748; // 7.976dB
H2[33] = 6.2748; // 7.976dB
H2[32] = 6.2748; // 7.976dB
H2[31] = 6.2748; // 7.976dB
H2[30] = 6.2748; // 7.976dB
H2[29] = 6.2748; // 7.976dB
H2[28] = 6.2748; // 7.976dB
H2[27] = 8.1583; // 9.116dB
H2[26] = 8.1583; // 9.116dB
H2[25] = 23.2970; // 13.673dB
H2[24] = 23.2970; // 13.673dB
H2[23] = 23.2970; // 13.673dB
H2[22] = 23.2970; // 13.673dB
H2[21] = 23.2970; // 13.673dB
H2[20] = 23.2970; // 13.673dB
H2[19] = 23.2970; // 13.673dB
H2[18] = 23.2970; // 13.673dB
H2[17] = 30.2901; // 14.813dB
H2[16] = 30.2901; // 14.813dB
H2[15] = 30.2901; // 14.813dB
H2[14] = 30.2901; // 14.813dB
H2[13] = 86.4968; // 19.370dB
H2[12] = 86.4968; // 19.370dB
H2[11] = 86.4968; // 19.370dB
H2[10] = 86.4968; // 19.370dB
H2[9] = 86.4968; // 19.370dB
H2[8] = 86.4968; // 19.370dB
H2[7] = 112.4605; // 20.510dB
H2[6] = 112.4605; // 20.510dB
H2[5] = 112.4605; // 20.510dB
H2[4] = 112.4605; // 20.510dB
H2[3] = 112.4605; // 20.510dB
H2[2] = 112.4605; // 20.510dB
H2[1] = 112.4605; // 20.510dB
H2[0] = 112.4605; // 20.510dB
}
// Normalization of the energy level of all users.
tmp = 0;
for( nuser=0; nuser<_NUser; nuser++ ) tmp += H2[nuser];
for( nuser=0; nuser<_NUser; nuser++ ) H2[nuser] = ( (double) _NUser ) * H2[nuser] / tmp;
// Produce the amplitude scaling level
for( nuser=0; nuser<_NUser; nuser++ ) H[nuser] = sqrt( H2[nuser] );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -