common.h (1822B)
1 #ifndef COMMON_H 2 #define COMMON_H 3 4 #include <stdint.h> /* for uint64_t, uint32_t */ 5 6 7 /* 8 * Typedefs 9 */ 10 11 #if defined(DATA_TYPE_float) 12 typedef float data_t; 13 typedef float acc_t; 14 #elif defined(DATA_TYPE_fixed) 15 typedef int32_t data_t; 16 typedef int64_t acc_t; 17 #define FP_Q 31 18 #else 19 #error "Please define DATA_TYPE_float or DATA_TYPE_fixed" 20 #endif 21 22 typedef struct { 23 data_t *re; 24 data_t *im; 25 } vcomplex; 26 27 28 /* 29 * Global variables 30 */ 31 32 /* Raw data */ 33 /* Transmitted signal */ 34 extern data_t x_re[NUM_TX * NUM_SC]; 35 extern data_t x_im[NUM_TX * NUM_SC]; 36 /* Channel */ 37 extern data_t H_re[NUM_RX * NUM_TX * NUM_SC]; 38 extern data_t H_im[NUM_RX * NUM_TX * NUM_SC]; 39 /* Noise covariance matrix */ 40 extern data_t R_re[NUM_TX * NUM_TX * NUM_SC]; 41 extern data_t R_im[NUM_TX * NUM_TX * NUM_SC]; 42 /* Received signal */ 43 extern data_t y_re[NUM_RX * NUM_SC]; 44 extern data_t y_im[NUM_RX * NUM_SC]; 45 /* MMSE raw data */ 46 extern data_t G_re[NUM_TX * NUM_TX * NUM_SC]; 47 extern data_t G_im[NUM_TX * NUM_TX * NUM_SC]; 48 extern data_t L_re[NUM_TX * NUM_TX * NUM_SC]; 49 extern data_t L_im[NUM_TX * NUM_TX * NUM_SC]; 50 extern data_t g_D[NUM_TX * NUM_SC]; /* no imaginary part in D */ 51 extern data_t HHy_re[NUM_TX * NUM_SC]; 52 extern data_t HHy_im[NUM_TX * NUM_SC]; 53 extern data_t z_re[NUM_TX * NUM_SC]; 54 extern data_t z_im[NUM_TX * NUM_SC]; 55 /* Result of MMSE approximation */ 56 extern data_t x_MMSE_re[NUM_TX * NUM_SC]; 57 extern data_t x_MMSE_im[NUM_TX * NUM_SC]; 58 59 /* Same data but casted to vcomplex */ 60 extern vcomplex g_x; 61 extern vcomplex g_H; 62 extern vcomplex g_R; 63 extern vcomplex g_y; 64 extern vcomplex g_G; 65 extern vcomplex g_L; 66 extern vcomplex g_HHy; 67 extern vcomplex g_z; 68 extern vcomplex g_x_MMSE; 69 70 71 /* 72 * Complex matrix operations 73 */ 74 75 extern void cmatgram(); 76 extern void ccholesky(); 77 extern void cmatvecmul(); 78 extern void cforwardsub(); 79 extern void cbackwardsub(); 80 81 #endif