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
zzha zzha
OpenXG-RAN
Commits
3124cb2c
Commit
3124cb2c
authored
8 years ago
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more fixes for oaisim, TM2.
parent
7df5c381
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
98 additions
and
55 deletions
+98
-55
openair1/PHY/TOOLS/defs.h
openair1/PHY/TOOLS/defs.h
+2
-2
openair1/PHY/TOOLS/signal_energy.c
openair1/PHY/TOOLS/signal_energy.c
+1
-1
openair1/SIMULATION/RF/adc.c
openair1/SIMULATION/RF/adc.c
+2
-2
openair1/SIMULATION/RF/dac.c
openair1/SIMULATION/RF/dac.c
+4
-4
openair1/SIMULATION/RF/defs.h
openair1/SIMULATION/RF/defs.h
+8
-8
openair1/SIMULATION/RF/rf.c
openair1/SIMULATION/RF/rf.c
+2
-2
openair1/SIMULATION/TOOLS/defs.h
openair1/SIMULATION/TOOLS/defs.h
+8
-8
openair1/SIMULATION/TOOLS/multipath_channel.c
openair1/SIMULATION/TOOLS/multipath_channel.c
+4
-4
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
...E-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
+3
-0
targets/SIMU/USER/channel_sim.c
targets/SIMU/USER/channel_sim.c
+64
-23
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+0
-1
No files found.
openair1/PHY/TOOLS/defs.h
View file @
3124cb2c
...
...
@@ -296,10 +296,10 @@ int32_t subcarrier_energy(int32_t *,uint32_t, int32_t* subcarrier_energy, uint16
*/
int32_t
signal_energy_nodc
(
int32_t
*
,
uint32_t
);
/*!\fn double signal_energy_fp(double
s_re[2][30720], double s_im[2][30720
],uint32_t, uint32_t,uint32_t);
/*!\fn double signal_energy_fp(double
*s_re[2], double *s_im[2
],uint32_t, uint32_t,uint32_t);
\brief Computes the signal energy per subcarrier
*/
double
signal_energy_fp
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
uint32_t
nb_antennas
,
uint32_t
length
,
uint32_t
offset
);
double
signal_energy_fp
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
uint32_t
nb_antennas
,
uint32_t
length
,
uint32_t
offset
);
/*!\fn double signal_energy_fp2(struct complex *, uint32_t);
\brief Computes the signal energy per subcarrier
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/TOOLS/signal_energy.c
View file @
3124cb2c
...
...
@@ -255,7 +255,7 @@ int32_t signal_energy_nodc(int32_t *input,uint32_t length)
}
#endif
double
signal_energy_fp
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
uint32_t
nb_antennas
,
uint32_t
length
,
uint32_t
offset
)
double
signal_energy_fp
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
uint32_t
nb_antennas
,
uint32_t
length
,
uint32_t
offset
)
{
int32_t
aa
,
i
;
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/RF/adc.c
View file @
3124cb2c
...
...
@@ -26,8 +26,8 @@
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
void
adc
(
double
r_re
[
2
][
30720
],
double
r_im
[
2
][
30720
],
void
adc
(
double
*
r_re
[
2
],
double
*
r_im
[
2
],
unsigned
int
input_offset
,
unsigned
int
output_offset
,
unsigned
int
**
output
,
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/RF/dac.c
View file @
3124cb2c
...
...
@@ -31,8 +31,8 @@
#include <stdio.h>
#include "PHY/TOOLS/defs.h"
void
dac
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
void
dac
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
uint32_t
**
input
,
uint32_t
input_offset
,
uint32_t
nb_tx_antennas
,
...
...
@@ -81,8 +81,8 @@ void dac(double s_re[2][30720],
}
}
double
dac_fixed_gain
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
double
dac_fixed_gain
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
uint32_t
**
input
,
uint32_t
input_offset
,
uint32_t
nb_tx_antennas
,
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/RF/defs.h
View file @
3124cb2c
...
...
@@ -64,16 +64,16 @@ void rf_rx(double **r_re,
double
IQ_imb_dB
,
double
IQ_phase
);
void
rf_rx_simple
(
double
r_re
[
2
][
30720
],
double
r_im
[
2
][
30720
],
void
rf_rx_simple
(
double
*
r_re
[
2
],
double
*
r_im
[
2
],
unsigned
int
nb_rx_antennas
,
unsigned
int
length
,
double
s_time
,
double
rx_gain_dB
);
void
adc
(
double
r_re
[
2
][
30720
],
double
r_im
[
2
][
30720
],
void
adc
(
double
*
r_re
[
2
],
double
*
r_im
[
2
],
unsigned
int
input_offset
,
unsigned
int
output_offset
,
int
**
output
,
...
...
@@ -81,8 +81,8 @@ void adc(double r_re[2][30720],
unsigned
int
length
,
unsigned
char
B
);
void
dac
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
void
dac
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
int
**
input
,
unsigned
int
input_offset
,
unsigned
int
nb_tx_antennas
,
...
...
@@ -92,8 +92,8 @@ void dac(double s_re[2][30720],
unsigned
int
meas_length
,
unsigned
int
meas_offset
);
double
dac_fixed_gain
(
double
s_re
[
2
][
30720
],
double
s_im
[
2
][
30720
],
double
dac_fixed_gain
(
double
*
s_re
[
2
],
double
*
s_im
[
2
],
int
**
input
,
unsigned
int
input_offset
,
unsigned
int
nb_tx_antennas
,
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/RF/rf.c
View file @
3124cb2c
...
...
@@ -206,8 +206,8 @@ void rf_rx(double **r_re,
}
}
void
rf_rx_simple
(
double
r_re
[
2
][
30720
],
double
r_im
[
2
][
30720
],
void
rf_rx_simple
(
double
*
r_re
[
2
],
double
*
r_im
[
2
],
unsigned
int
nb_rx_antennas
,
unsigned
int
length
,
double
s_time
,
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/TOOLS/defs.h
View file @
3124cb2c
...
...
@@ -219,10 +219,10 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx,
int
random_channel
(
channel_desc_t
*
desc
,
uint8_t
abstraction_flag
);
/**\fn void multipath_channel(channel_desc_t *desc,
double tx_sig_re[2]
[30720*2]
,
double tx_sig_im[2]
[30720*2]
,
double rx_sig_re[2]
[30720*2]
,
double rx_sig_im[2]
[30720*2]
,
double tx_sig_re[2],
double tx_sig_im[2],
double rx_sig_re[2],
double rx_sig_im[2],
uint32_t length,
uint8_t keep_channel)
...
...
@@ -237,10 +237,10 @@ int random_channel(channel_desc_t *desc, uint8_t abstraction_flag);
*/
void
multipath_channel
(
channel_desc_t
*
desc
,
double
tx_sig_re
[
2
][
30720
*
2
],
double
tx_sig_im
[
2
][
30720
*
2
],
double
rx_sig_re
[
2
][
30720
*
2
],
double
rx_sig_im
[
2
][
30720
*
2
],
double
*
tx_sig_re
[
2
],
double
*
tx_sig_im
[
2
],
double
*
rx_sig_re
[
2
],
double
*
rx_sig_im
[
2
],
uint32_t
length
,
uint8_t
keep_channel
);
/*
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/TOOLS/multipath_channel.c
View file @
3124cb2c
...
...
@@ -150,10 +150,10 @@ void multipath_channel(channel_desc_t *desc,
#else
void
multipath_channel
(
channel_desc_t
*
desc
,
double
tx_sig_re
[
2
][
30720
*
2
],
double
tx_sig_im
[
2
][
30720
*
2
],
double
rx_sig_re
[
2
][
30720
*
2
],
double
rx_sig_im
[
2
][
30720
*
2
],
double
*
tx_sig_re
[
2
],
double
*
tx_sig_im
[
2
],
double
*
rx_sig_re
[
2
],
double
*
rx_sig_im
[
2
],
uint32_t
length
,
uint8_t
keep_channel
)
{
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf
View file @
3124cb2c
...
...
@@ -23,6 +23,9 @@ eNBs =
component_carriers
= (
{
node_function
=
"eNodeB_3GPP"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/channel_sim.c
View file @
3124cb2c
...
...
@@ -108,12 +108,28 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
uint8_t
nb_antennas_rx
=
eNB2UE
[
0
][
0
][
CC_id
]
->
nb_rx
;
// number of rx antennas at UE
uint8_t
nb_antennas_tx
=
eNB2UE
[
0
][
0
][
CC_id
]
->
nb_tx
;
// number of tx antennas at eNB
double
s_re
[
2
][
30720
];
//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
double
s_im
[
2
][
30720
];
//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
double
r_re0
[
2
][
30720
];
//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
double
r_im0
[
2
][
30720
];
//PHY_vars_eNB_g[eNB_id][CC_id]->frame_parms.samples_per_tti];
double
s_re0
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_re1
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
s_re
[
2
];
double
s_im0
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_im1
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
s_im
[
2
];
double
r_re00
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_re01
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
r_re0
[
2
];
double
r_im00
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_im01
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
r_im0
[
2
];
s_re
[
0
]
=
s_re0
;
s_im
[
0
]
=
s_im0
;
s_re
[
1
]
=
s_re1
;
s_im
[
1
]
=
s_im1
;
r_re0
[
0
]
=
r_re00
;
r_im0
[
0
]
=
r_im00
;
r_re0
[
1
]
=
r_re01
;
r_im0
[
1
]
=
r_im01
;
if
(
subframe
==
0
)
hold_channel
=
0
;
...
...
@@ -318,17 +334,21 @@ void do_DL_sig(channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX][MAX_N
if
(
eNB_output_mask
[
UE_id
]
==
(
1
<<
NB_eNB_INST
)
-
1
)
{
eNB_output_mask
[
UE_id
]
=
0
;
double
*
r_re_p
[
2
]
=
{
r_re_DL
[
eNB_id
][
0
],
r_re_DL
[
eNB_id
][
1
]};
double
*
r_im_p
[
2
]
=
{
r_im_DL
[
eNB_id
][
0
],
r_im_DL
[
eNB_id
][
1
]};
#ifdef DEBUG_SIM
rx_pwr
=
signal_energy_fp
(
(
double
**
)
r_re_DL
[
UE_id
],(
double
**
)
r_im_DL
[
UE_id
]
,
nb_antennas_rx
,
frame_parms
->
ofdm_symbol_size
,
sf_offset
)
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
rx_pwr
=
signal_energy_fp
(
r_re_p
,
r_im_p
,
nb_antennas_rx
,
frame_parms
->
ofdm_symbol_size
,
sf_offset
)
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
LOG_D
(
OCM
,
"[SIM][DL] UE %d : ADC in %f dBm for subframe %d
\n
"
,
UE_id
,
10
*
log10
(
rx_pwr
),
subframe
);
#endif
rxdata
=
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
common_vars
.
rxdata
;
sf_offset
=
subframe
*
frame_parms
->
samples_per_tti
;
adc
(
r_re_DL
[
UE_id
],
r_im_DL
[
UE_id
],
adc
(
r_re_p
,
r_im_p
,
0
,
sf_offset
,
rxdata
,
...
...
@@ -384,10 +404,28 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
int
ulfrrb2
;
uint8_t
harq_pid
;
#endif
double
s_re
[
2
][
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_im
[
2
][
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_re0
[
2
][
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_im0
[
2
][
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_re0
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_re1
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
s_re
[
2
];
double
s_im0
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
s_im1
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
s_im
[
2
];
double
r_re00
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_re01
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
r_re0
[
2
];
double
r_im00
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
r_im01
[
30720
];
//PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti];
double
*
r_im0
[
2
];
s_re
[
0
]
=
s_re0
;
s_im
[
0
]
=
s_im0
;
s_re
[
1
]
=
s_re1
;
s_im
[
1
]
=
s_im1
;
r_re0
[
0
]
=
r_re00
;
r_im0
[
0
]
=
r_im00
;
r_re0
[
1
]
=
r_re01
;
r_im0
[
1
]
=
r_im01
;
if
(
abstraction_flag
!=
0
)
{
#ifdef PHY_ABSTRACTION_UL
...
...
@@ -447,7 +485,6 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
tx_total_RE
[
subframe
],
subframe
,
sf_offset
);
}
else
{
tx_pwr
=
dac_fixed_gain
((
double
**
)
s_re
,
(
double
**
)
s_im
,
txdata
,
...
...
@@ -466,8 +503,8 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
tx_total_RE
[
subframe
],
subframe
,
sf_offset
);
multipath_channel
(
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
],
(
double
**
)
s_re
,(
double
**
)
s_im
,(
double
**
)
r_re0
,(
double
**
)
r_im0
,
multipath_channel
(
UE2eNB
[
UE_id
][
eNB_id
][
CC_id
],
s_re
,
s_im
,
r_re0
,
r_im0
,
frame_parms
->
samples_per_tti
,
hold_channel
);
...
...
@@ -498,23 +535,27 @@ void do_UL_sig(channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX][MAX_N
}
}
//UE_id
rf_rx_simple
(
r_re_UL
[
eNB_id
],
r_im_UL
[
eNB_id
],
double
*
r_re_p
[
2
]
=
{
r_re_UL
[
eNB_id
][
0
],
r_re_UL
[
eNB_id
][
1
]};
double
*
r_im_p
[
2
]
=
{
r_im_UL
[
eNB_id
][
0
],
r_im_UL
[
eNB_id
][
1
]};
rf_rx_simple
(
r_re_p
,
r_im_p
,
nb_antennas_rx
,
frame_parms
->
samples_per_tti
,
1e3
/
UE2eNB
[
0
][
eNB_id
][
CC_id
]
->
sampling_rate
,
// sampling time (ns)
(
double
)
PHY_vars_eNB_g
[
eNB_id
][
CC_id
]
->
rx_total_gain_dB
-
66
.
227
);
// rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later)
#ifdef DEBUG_SIM
rx_pwr
=
signal_energy_fp
(
r_re_
UL
[
eNB_id
],
r_im_UL
[
eNB_id
]
,
nb_antennas_rx
,
frame_parms
->
samples_per_tti
,
0
)
*
(
double
)
frame_parms
->
ofdm_symbol_size
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
rx_pwr
=
signal_energy_fp
(
r_re_
p
,
r_im_p
,
nb_antennas_rx
,
frame_parms
->
samples_per_tti
,
0
)
*
(
double
)
frame_parms
->
ofdm_symbol_size
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
LOG_D
(
OCM
,
"[SIM][UL] rx_pwr (ADC in) %f dB for subframe %d
\n
"
,
10
*
log10
(
rx_pwr
),
subframe
);
#endif
rxdata
=
PHY_vars_eNB_g
[
eNB_id
][
CC_id
]
->
common_vars
.
rxdata
[
0
];
sf_offset
=
subframe
*
frame_parms
->
samples_per_tti
;
adc
(
r_re_
UL
[
eNB_id
]
,
r_im_
UL
[
eNB_id
]
,
adc
(
r_re_
p
,
r_im_
p
,
0
,
sf_offset
,
rxdata
,
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/oaisim_functions.c
View file @
3124cb2c
...
...
@@ -1120,7 +1120,6 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
UE_id
,
CC_id
);
printf
(
"Signaling main thread: UE subframe mask %x
\n
"
,
subframe_UE_mask
);
}
...
...
This diff is collapsed.
Click to expand it.
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