Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ZhouShuya
OpenXG-RAN
Commits
c1e6004c
Commit
c1e6004c
authored
Jun 23, 2018
by
lfarizav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dlsim working for awgn channel
parent
1793ae59
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
23 deletions
+27
-23
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+4
-4
openair1/SIMULATION/TOOLS/defs.h
openair1/SIMULATION/TOOLS/defs.h
+6
-1
openair1/SIMULATION/TOOLS/multipath_channel.c
openair1/SIMULATION/TOOLS/multipath_channel.c
+10
-6
targets/SIMU/USER/channel_sim.c
targets/SIMU/USER/channel_sim.c
+7
-12
No files found.
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
c1e6004c
...
...
@@ -293,16 +293,16 @@ void DL_channel_freq(PHY_VARS_eNB *eNB,PHY_VARS_UE *UE,int subframe,int awgn_fla
}
}
}
printf
(
"subframe %d
\n
"
,
subframe
);
/*
printf("subframe %d\n",subframe);
write_output("tx_data.m","txdata", &eNB->common_vars.txdata[0][0],UE->frame_parms.samples_per_tti,1,1);
write_output("tx_data_F.m","txdataF", &eNB->common_vars.txdataF[0][0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
write_output("r_re_f.m","rref", &r_re_f[0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
write_output
(
"r_im_f.m"
,
"rimf"
,
&
r_im_f
[
0
],(
UE
->
frame_parms
.
ofdm_symbol_size
*
UE
->
frame_parms
.
symbols_per_tti
),
1
,
1
);
write_output("r_im_f.m","rimf", &r_im_f[0],(UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti),1,1);
*/
// Multipath channel
if
(
awgn_flag
==
0
)
{
multipath_channel_freq_AVX_float
(
eNB2UE
[
round
],
s_re_f
,
s_im_f
,
r_re_f
,
r_im_f
,
2
*
UE
->
frame_parms
.
ofdm_symbol_size
*
UE
->
frame_parms
.
symbols_per_tti
,
hold_channel
,
0
,
0
,
0
,
subframe
&
0x1
);
2
*
UE
->
frame_parms
.
ofdm_symbol_size
*
UE
->
frame_parms
.
symbols_per_tti
,
hold_channel
,
0
,
0
,
0
,
subframe
&
0x1
,
UE
->
frame_parms
.
N_RB_DL
,
UE
->
frame_parms
.
N_RB_DL
*
12
+
1
,
UE
->
frame_parms
.
ofdm_symbol_size
,
UE
->
frame_parms
.
symbols_per_tti
);
// printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset);
if
(
abstx
==
1
&&
num_rounds
>
1
)
...
...
@@ -2491,7 +2491,7 @@ int main(int argc, char **argv)
eNB_rxtx_proc_t
*
proc_eNB
=
&
eNB
->
proc
.
proc_rxtx
[
UE
->
current_thread_id
[
subframe
]];
for
(
trials
=
0
;
trials
<
n_frames
;
trials
++
)
{
printf
(
"Trial %d
\n
"
,
trials
);
//
printf("Trial %d\n",trials);
fflush
(
stdout
);
round
=
0
;
...
...
openair1/SIMULATION/TOOLS/defs.h
View file @
c1e6004c
...
...
@@ -323,7 +323,12 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
uint8_t
eNB_id
,
uint8_t
UE_id
,
uint8_t
CC_id
,
uint8_t
th_id
);
uint8_t
th_id
,
uint32_t
nb_rb
,
uint32_t
n_samples
,
uint32_t
ofdm_symbol_size
,
uint32_t
symbols_per_tti
);
/**\fn void multipath_channel_prach(channel_desc_t *desc,
double tx_sig_re[2],
double tx_sig_im[2],
...
...
openair1/SIMULATION/TOOLS/multipath_channel.c
View file @
c1e6004c
...
...
@@ -625,7 +625,11 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
uint8_t
eNB_id
,
uint8_t
UE_id
,
uint8_t
CC_id
,
uint8_t
th_id
)
uint8_t
th_id
,
uint32_t
nb_rb
,
uint32_t
n_samples
,
uint32_t
ofdm_symbol_size
,
uint32_t
symbols_per_tti
)
{
int
ii
,
j
,
f
;
__m256
rx_tmp256_re_f
,
rx_tmp256_im_f
,
rx_tmp256_re
,
rx_tmp256_im
,
rx_tmp256_1
,
rx_tmp256_2
,
rx_tmp256_3
,
rx_tmp256_4
,
tx256_re
,
tx256_im
,
chF256_x
,
chF256_y
,
pathloss256
;
...
...
@@ -634,11 +638,11 @@ void multipath_channel_freq_AVX_float(channel_desc_t *desc,
float
path_loss
=
pow
(
10
,
desc
->
path_loss_dB
/
20
);
pathloss256
=
_mm256_set1_ps
(
path_loss
);
int
nb_rb
,
n_samples
,
ofdm_symbol_size
,
symbols_per_tti
;
nb_rb
=
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
frame_parms
.
N_RB_DL
;
n_samples
=
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
frame_parms
.
N_RB_DL
*
12
+
1
;
ofdm_symbol_size
=
length
/
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
frame_parms
.
symbols_per_tti
;
symbols_per_tti
=
length
/
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
frame_parms
.
ofdm_symbol_size
;
//
int nb_rb, n_samples, ofdm_symbol_size, symbols_per_tti;
//
nb_rb=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL;
//
n_samples=PHY_vars_UE_g[UE_id][CC_id]->frame_parms.N_RB_DL*12+1;
//
ofdm_symbol_size=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.symbols_per_tti;
//
symbols_per_tti=length/PHY_vars_UE_g[UE_id][CC_id]->frame_parms.ofdm_symbol_size;
#ifdef DEBUG_CH
...
...
targets/SIMU/USER/channel_sim.c
View file @
c1e6004c
...
...
@@ -72,12 +72,12 @@
int
number_rb_ul
;
int
first_rbUL
;
#ifdef __AVX2__
float
r_re_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
float
r_im_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
float
r_re_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
float
r_im_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
double
r_re_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
double
r_im_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
double
r_re_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
double
r_im_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
#ifdef __AVX2__
float
r_re_DL_f
[
NUMBER_OF_UE_MAX
][
2
][
2048
*
14
];
float
r_im_DL_f
[
NUMBER_OF_UE_MAX
][
2
][
2048
*
14
];
float
r_re_UL_f
[
NUMBER_OF_eNB_MAX
][
2
][
2048
*
14
];
...
...
@@ -85,11 +85,6 @@ float r_im_UL_f[NUMBER_OF_eNB_MAX][2][2048*14];
float
r_re_UL_f_prach
[
NUMBER_OF_eNB_MAX
][
2
][
2048
*
14
];
float
r_im_UL_f_prach
[
NUMBER_OF_eNB_MAX
][
2
][
2048
*
14
];
#else
double
r_re_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
double
r_im_DL
[
NUMBER_OF_UE_MAX
][
2
][
30720
];
double
r_re_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
double
r_im_UL
[
NUMBER_OF_eNB_MAX
][
2
][
30720
];
double
r_re_DL_f
[
NUMBER_OF_UE_MAX
][
2
][
2048
*
14
];
double
r_im_DL_f
[
NUMBER_OF_UE_MAX
][
2
][
2048
*
14
];
double
r_re_UL_f
[
NUMBER_OF_eNB_MAX
][
2
][
2048
*
14
];
...
...
@@ -547,7 +542,7 @@ void do_DL_sig_freq(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][
#ifdef __AVX2__
start_meas
(
&
eNB2UE
[
eNB_id
][
UE_id
][
CC_id
]
->
DL_multipath_channel_freq
);
multipath_channel_freq_AVX_float
(
eNB2UE
[
eNB_id
][
UE_id
][
CC_id
],
s_re_f
,
s_im_f
,
r_re0_f
,
r_im0_f
,
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
,
hold_channel
,
eNB_id
,
UE_id
,
CC_id
,
subframe
&
0x1
);
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
,
hold_channel
,
eNB_id
,
UE_id
,
CC_id
,
subframe
&
0x1
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
*
12
+
1
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
symbols_per_tti
);
stop_meas
(
&
eNB2UE
[
eNB_id
][
UE_id
][
CC_id
]
->
DL_multipath_channel_freq
);
#else
start_meas
(
&
eNB2UE
[
eNB_id
][
UE_id
][
CC_id
]
->
DL_multipath_channel_freq
);
...
...
@@ -1151,7 +1146,7 @@ void do_UL_sig_freq(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][
#ifdef __AVX2__
start_meas
(
&
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
UL_multipath_channel_freq
);
multipath_channel_freq_AVX_float
(
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
],
s_re_f
,
s_im_f
,
r_re0_f
,
r_im0_f
,
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
,
hold_channel
,
eNB_id
,
UE_id
,
CC_id
,
subframe
&
0x1
);
//ue timer subframe&0x1
frame_parms
->
ofdm_symbol_size
*
frame_parms
->
symbols_per_tti
,
hold_channel
,
eNB_id
,
UE_id
,
CC_id
,
subframe
&
0x1
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
*
12
+
1
,
frame_parms
->
ofdm_symbol_size
,
frame_parms
->
symbols_per_tti
);
//ue timer subframe&0x1
stop_meas
(
&
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
UL_multipath_channel_freq
);
#else
start_meas
(
&
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
]
->
UL_multipath_channel_freq
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment