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
canghaiwuhen
OpenXG-RAN
Commits
457ab9f7
Commit
457ab9f7
authored
Oct 23, 2017
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding NPUSH related functions (vincent savaux code)
parent
c343f5ef
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1376 additions
and
1125 deletions
+1376
-1125
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
openair1/PHY/LTE_ESTIMATION/freq_equalization_NB_IoT.c
openair1/PHY/LTE_ESTIMATION/freq_equalization_NB_IoT.c
+8
-8
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation_NB_IoT.c
...ir1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation_NB_IoT.c
+223
-218
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
+5
-1
openair1/PHY/LTE_REFSIG/lte_ul_ref_NB_IoT.c
openair1/PHY/LTE_REFSIG/lte_ul_ref_NB_IoT.c
+207
-0
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
+9
-0
openair1/PHY/LTE_TRANSPORT/lte_mcs_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/lte_mcs_NB_IoT.c
+21
-13
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+3
-1
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
+362
-334
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
+537
-550
No files found.
cmake_targets/CMakeLists.txt
View file @
457ab9f7
...
...
@@ -1062,6 +1062,7 @@ set(PHY_SRC
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_gold_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_dl_mbsfn.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_ul_ref.c
${
OPENAIR1_DIR
}
/PHY/LTE_REFSIG/lte_ul_ref_NB_IoT.c
${
OPENAIR1_DIR
}
/PHY/CODING/lte_segmentation.c
${
OPENAIR1_DIR
}
/PHY/CODING/lte_segmentation_NB_IoT.c
${
OPENAIR1_DIR
}
/PHY/CODING/ccoding_byte.c
...
...
openair1/PHY/LTE_ESTIMATION/freq_equalization_NB_IoT.c
View file @
457ab9f7
...
...
@@ -317,19 +317,19 @@ void freq_equalization_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
if
(
Qm
==
4
)
ul_ch_mag128
[
re
]
=
_mm_set1_epi16
(
324
);
// this is 512*2/sqrt(10)
else
{
ul_ch_mag128
[
re
]
=
_mm_set1_epi16
(
316
);
// this is 512*4/sqrt(42)
ul_ch_magb128
[
re
]
=
_mm_set1_epi16
(
158
);
// this is 512*2/sqrt(42)
}
//
else {
//
ul_ch_mag128[re] = _mm_set1_epi16(316); // this is 512*4/sqrt(42)
//
ul_ch_magb128[re] = _mm_set1_epi16(158); // this is 512*2/sqrt(42)
//
}
#elif defined(__arm__)
rxdataF_comp128
[
re
]
=
vmulq_s16
(
rxdataF_comp128
[
re
],
*
((
int16x8_t
*
)
&
inv_ch_NB_IoT
[
8
*
amp
]));
if
(
Qm
==
4
)
ul_ch_mag128
[
re
]
=
vdupq_n_s16
(
324
);
// this is 512*2/sqrt(10)
else
{
ul_ch_mag128
[
re
]
=
vdupq_n_s16
(
316
);
// this is 512*4/sqrt(42)
ul_ch_magb128
[
re
]
=
vdupq_n_s16
(
158
);
// this is 512*2/sqrt(42)
}
//
else {
//
ul_ch_mag128[re] = vdupq_n_s16(316); // this is 512*4/sqrt(42)
//
ul_ch_magb128[re] = vdupq_n_s16(158); // this is 512*2/sqrt(42)
//
}
#endif
// printf("(%d,%d)\n",*(int16_t*)&(rxdataF_comp128[re]),*(1+(int16_t*)&(rxdataF_comp128[re])));
...
...
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation_NB_IoT.c
View file @
457ab9f7
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
View file @
457ab9f7
...
...
@@ -52,5 +52,9 @@ int lte_dl_cell_spec_NB_IoT(PHY_VARS_eNB_NB_IoT *phy_vars_eNB,
unsigned
int
lte_gold_generic_NB_IoT
(
unsigned
int
*
x1
,
unsigned
int
*
x2
,
unsigned
char
reset
);
void
generate_ul_ref_sigs_rx
(
void
);
void
free_ul_ref_sigs
(
void
);
#endif
openair1/PHY/LTE_REFSIG/lte_ul_ref_NB_IoT.c
0 → 100644
View file @
457ab9f7
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/defs_NB_IoT.h
View file @
457ab9f7
...
...
@@ -690,6 +690,15 @@ typedef struct {
// int calibration_flag;
/// delta_TF for power control
int32_t
delta_TF
;
///////////////////////////////////////////// 3 parameter added by vincent ///////////////////////////////////////////////
// NB_IoT: Nsymb_UL and Nslot_UL are defined in 36.211, Section 10.1.2.3, Table 10.1.2.3-1
// The number of symbol in a resource unit is given by Nsymb_UL*Nslot_UL
uint8_t
Nsymb_UL
;
// Number of NPUSCH slots
uint8_t
Nslot_UL
;
// Number of subcarrier for NPUSH
uint8_t
N_sc_RU
;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
NB_IoT_UL_eNB_HARQ_t
;
...
...
openair1/PHY/LTE_TRANSPORT/lte_mcs_NB_IoT.c
View file @
457ab9f7
...
...
@@ -19,13 +19,13 @@
* contact@openairinterface.org
*/
/*! \file PHY/LTE_TRANSPORT/lte_mcs.c
/*! \file PHY/LTE_TRANSPORT/lte_mcs
_NB_IoT
.c
* \brief Some support routines for MCS computations
* \author
R. Knopp
* \date 201
1
* \author
V. Savaux
* \date 201
7
* \version 0.1
* \company
Eure
com
* \email:
knopp@eurecom.fr
* \company
b<>
com
* \email:
* \note
* \warning
*/
...
...
@@ -34,16 +34,24 @@
//#include "PHY/extern.h"
#include "PHY/LTE_TRANSPORT/proto_NB_IoT.h"
unsigned
char
get_Qm_ul_NB_IoT
(
unsigned
char
I_MCS
)
// 36213 Section 16.5.1.2, Table
unsigned
char
get_Qm_ul_NB_IoT
(
unsigned
char
I_MCS
,
uint8_t
N_sc_RU
)
{
if
(
I_MCS
<
11
)
return
(
2
);
else
if
(
I_MCS
<
21
)
return
(
4
);
else
return
(
6
);
if
(
N_sc_RU
)
return
(
2
);
else
if
(
I_MCS
<
2
)
return
(
1
);
else
return
(
2
);
// if (I_MCS < 11)
// return(2);
// else if (I_MCS < 21)
// return(4);
// else
// return(6);
}
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
View file @
457ab9f7
...
...
@@ -172,7 +172,9 @@ uint8_t subframe2harq_pid_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,uint32_t fra
/** \brief Compute Q (modulation order) based on I_MCS for PUSCH. Implements table 8.6.1-1 from 36.213.
@param I_MCS */
uint8_t
get_Qm_ul_NB_IoT
(
uint8_t
I_MCS
);
//uint8_t get_Qm_ul_NB_IoT(uint8_t I_MCS);
unsigned
char
get_Qm_ul_NB_IoT
(
unsigned
char
I_MCS
,
uint8_t
N_sc_RU
);
/** \fn dlsch_encoding(PHY_VARS_eNB *eNB,
uint8_t *input_buffer,
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_decoding_NB_IoT.c
View file @
457ab9f7
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation_NB_IoT.c
View file @
457ab9f7
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