-
Notifications
You must be signed in to change notification settings - Fork 1
/
load_bin_data.h
51 lines (42 loc) · 2.12 KB
/
load_bin_data.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <main.h>
const int nRxAnt1 = 2;
const int nRxAnt2 = 6;
const int nTxAnts = 1;
const int Nfft = 2048;
const int nRxAnts = nRxAnt1 + nRxAnt2;
const int nSC = 1584;
//收集数据包个数
const int LengthFiles = 1000;
const float tau_max = 1.2e-6;
const int SCS = 1.2e5;
const int CombMax = 8;
const int nComb = 2;
const int nAntPerRRU = 2;
const int nCsStep = 4;
const int Mzc = 132 * 12 / nComb;
const int cr_win = floor(nSC / nComb / (CombMax / nCsStep));
const int win_len = cr_win / 2;
//预加载数据包
struct pre_load_struct {
int nSlot;
std::vector<std::vector<Complex>> root_seq_slot_temp;
std::vector<std::vector<Complex>> crs_temp;
std::vector<std::vector<std::vector<Complex>>> W_combmax8;
pre_load_struct()
: nSlot(LengthFiles),
root_seq_slot_temp(nTxAnts, std::vector<Complex>(nSC / 2)),
crs_temp(2, std::vector<Complex>(nSC / 2)),
W_combmax8(2, std::vector<std::vector<Complex>>(nSC / 2, std::vector<Complex>(nSC / 2))){}
};
void load_bin_data(std::vector<std::vector<std::vector<Complex>>>& crs_rx_Iq_slot_ant);
std::vector<Complex> func_readbin(const std::string& filepath);
void func_bin2complex(int16_t data_bin[], int size, std::vector<std::vector<std::vector<Complex>>>& data_tune);
std::vector<std::string> listFilesInDirectory(const std::wstring& folderPath, const std::string& my_folderPath);
std::string wstring2String(const std::wstring& wstr);
std::vector<Complex> SrsSeqGen(int M_zc, int u, int v);
void Pre_load(std::vector<std::vector<Complex>>& root_seq_slot_temp, std::vector<std::vector<Complex>>& crs_temp);
std::vector<std::vector<Complex>> Pre_process(std::vector<std::vector<Complex>>& crs_rx_Iq_slot_ant, pre_load_struct& pre_load_data);
std::vector<std::vector<Complex>> multiplyVectors_eigen_map(std::vector<std::vector<Complex>>& vecA, std::vector<std::vector<Complex>>& vecB);
std::vector<std::vector<Complex>> multiplyVectors_eigen(std::vector<std::vector<Complex>>& vecA, std::vector<std::vector<Complex>>& vecB);
std::vector<std::vector<Complex>> multiplyVectors_Armadillo(std::vector<std::vector<Complex>>& vecA, std::vector<std::vector<Complex>>& vecB);
void test(void);