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
b5a55c13
Commit
b5a55c13
authored
Jan 22, 2018
by
Matthieu Kanj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
version for testing NRS signal
parent
656ecb44
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
210 additions
and
45 deletions
+210
-45
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
+2
-2
openair1/PHY/LTE_REFSIG/lte_dl_cell_spec_NB_IoT.c
openair1/PHY/LTE_REFSIG/lte_dl_cell_spec_NB_IoT.c
+68
-1
openair1/PHY/LTE_TRANSPORT/nprach_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/nprach_NB_IoT.c
+3
-3
openair1/PHY/LTE_TRANSPORT/pilots_NB_IoT.c
openair1/PHY/LTE_TRANSPORT/pilots_NB_IoT.c
+131
-31
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+2
-1
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
+4
-7
No files found.
openair1/PHY/LTE_REFSIG/defs_NB_IoT.h
View file @
b5a55c13
...
...
@@ -18,7 +18,7 @@
#define __LTE_REFSIG_DEFS_NB_IOT__H__
#include "PHY/defs_NB_IoT.h"
#include "PHY/defs.h"
/** @ingroup _PHY_REF_SIG
* @{
*/
...
...
@@ -40,7 +40,7 @@ void lte_gold_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms,
@param p antenna index
@param RB_IoT_ID the ID of the RB dedicated for NB_IoT
*/
int
lte_dl_cell_spec_NB_IoT
(
PHY_VARS_eNB
_NB_IoT
*
phy_vars_eNB
,
int
lte_dl_cell_spec_NB_IoT
(
PHY_VARS_eNB
*
phy_vars_eNB
,
int32_t
*
output
,
short
amp
,
unsigned
char
Ns
,
...
...
openair1/PHY/LTE_REFSIG/lte_dl_cell_spec_NB_IoT.c
View file @
b5a55c13
...
...
@@ -21,7 +21,7 @@
#include "PHY/LTE_REFSIG/defs_NB_IoT.h"
#include "PHY/defs_NB_IoT.h"
int
lte_dl_cell_spec_NB_IoT
(
PHY_VARS_eNB
_NB_IoT
*
phy_vars_eNB
,
int
lte_dl_cell_spec_NB_IoT
(
PHY_VARS_eNB
*
phy_vars_eNB
,
int32_t
*
output
,
short
amp
,
unsigned
char
Ns
,
...
...
@@ -76,6 +76,72 @@ int lte_dl_cell_spec_NB_IoT(PHY_VARS_eNB_NB_IoT *phy_vars_eNB,
DevAssert
(
Ns
<
20
);
DevAssert
(
l
<
2
);
for
(
m
=
0
;
m
<
2
;
m
++
)
{
output
[
k
]
=
qpsk
[(
phy_vars_eNB
->
lte_gold_table
[
Ns
][
l
][
0
])
&
3
];
//TODO should be defined one for NB-IoT
k
+=
6
;
}
return
(
0
);
}
/////////////////////////////////////////////////////////////////////////
/*
int lte_dl_cell_spec_NB_IoT(PHY_VARS_eNB_NB_IoT *phy_vars_eNB,
int32_t *output,
short amp,
unsigned char Ns,
unsigned char l,
unsigned char p,
unsigned short RB_IoT_ID) // the ID of the RB dedicated for NB_IoT
{
unsigned char nu,m;
unsigned short k,a;
unsigned short NB_IoT_start,bandwidth_even_odd;
int32_t qpsk[4];
a = (amp*ONE_OVER_SQRT2_Q15_NB_IoT)>>15;
((short *)&qpsk[0])[0] = a;
((short *)&qpsk[0])[1] = a;
((short *)&qpsk[1])[0] = -a;
((short *)&qpsk[1])[1] = a;
((short *)&qpsk[2])[0] = a;
((short *)&qpsk[2])[1] = -a;
((short *)&qpsk[3])[0] = -a;
((short *)&qpsk[3])[1] = -a;
if ((p==0) && (l==0) )
nu = 0;
else if ((p==0) && (l>0))
nu = 3;
else if ((p==1) && (l==0))
nu = 3;
else if ((p==1) && (l>0))
nu = 0;
else {
printf("lte_dl_cell_spec_NB_IoT: p %d, l %d -> ERROR\n",p,l);
return(-1);
}
// testing if the total number of RBs is even or odd
bandwidth_even_odd = phy_vars_eNB->frame_parms.N_RB_DL % 2; // 0 even, 1 odd
//mprime = 0; // mprime = 0,1 for NB_IoT // for LTE , maximum number of resources blocks (110) - the total number of RB in the selected bandwidth (.... 15 , 25 , 50, 100)
k = (nu + phy_vars_eNB->frame_parms.nushift)%6;
if(RB_IoT_ID < (phy_vars_eNB->frame_parms.N_RB_DL/2))
{ //XXX this mod operation is not valid since the second member is not an integer but double (for the moment i put a cast)
NB_IoT_start = phy_vars_eNB->frame_parms.ofdm_symbol_size - 12*(phy_vars_eNB->frame_parms.N_RB_DL/2) - (bandwidth_even_odd*6) + 12*(RB_IoT_ID%((int)(ceil(phy_vars_eNB->frame_parms.N_RB_DL/(float)2))));
} else {
//XXX invalid mod operation (put a cast for the moment)
NB_IoT_start = (bandwidth_even_odd*6) + 12*(RB_IoT_ID%((int)(ceil(phy_vars_eNB->frame_parms.N_RB_DL/(float)2))));
}
k+=NB_IoT_start;
DevAssert( Ns < 20 );
DevAssert( l < 2 );
for (m=0; m<2; m++) {
output[k] = qpsk[(phy_vars_eNB->lte_gold_table_NB_IoT[Ns][l][0]) & 3]; //TODO should be defined one for NB-IoT
k+=6;
...
...
@@ -84,3 +150,4 @@ int lte_dl_cell_spec_NB_IoT(PHY_VARS_eNB_NB_IoT *phy_vars_eNB,
return(0);
}
*/
\ No newline at end of file
openair1/PHY/LTE_TRANSPORT/nprach_NB_IoT.c
View file @
b5a55c13
...
...
@@ -359,7 +359,7 @@ void RX_NPRACH_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB, int16_t *Rx_buffer){
uint32_t
estimated_TA_coarse
=
0
;
int16_t
*
Rx_sub_sampled_buffer_128
,
*
Rx_sub_sampled_buffer_16
;
uint16_t
sub_sampling_rate
;
//NB-IoT: to be defined somewhere
uint32_t
FRAME_LENGTH_COMPLEX_SAMPLES
=
0
;
// NB-IoT: length of input buffer, to be defined somewhere
uint32_t
FRAME_LENGTH_COMPLEX_SAMPLES
x
=
0
;
// NB-IoT: length of input buffer, to be defined somewhere
uint32_t
FRAME_LENGTH_COMPLEX_SUB_SAMPLES
;
// Length of buffer after sub-sampling
uint32_t
*
length_ouput
;
// Length of buffer after sub-sampling
char
coarse
=
1
;
// flag that indicate the level of TA estimation
...
...
@@ -370,7 +370,7 @@ void RX_NPRACH_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB, int16_t *Rx_buffer){
sub_sampling_rate
=
128
;
length_ouput
=
&
FRAME_LENGTH_COMPLEX_SUB_SAMPLES
;
Rx_sub_sampled_buffer_128
=
sub_sampling_NB_IoT
(
Rx_buffer
,
FRAME_LENGTH_COMPLEX_SAMPLES
,
length_ouput
,
sub_sampling_rate
);
Rx_sub_sampled_buffer_128
=
sub_sampling_NB_IoT
(
Rx_buffer
,
FRAME_LENGTH_COMPLEX_SAMPLES
x
,
length_ouput
,
sub_sampling_rate
);
// Detection and TA estimation stage /============================================================/
...
...
@@ -387,7 +387,7 @@ void RX_NPRACH_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB, int16_t *Rx_buffer){
// Sub-sampling stage /============================================================/
sub_sampling_rate
=
16
;
Rx_sub_sampled_buffer_16
=
sub_sampling_NB_IoT
(
Rx_buffer
,
FRAME_LENGTH_COMPLEX_SAMPLES
,
length_ouput
,
sub_sampling_rate
);
Rx_sub_sampled_buffer_16
=
sub_sampling_NB_IoT
(
Rx_buffer
,
FRAME_LENGTH_COMPLEX_SAMPLES
x
,
length_ouput
,
sub_sampling_rate
);
// Fine TA estimation stage /============================================================/
...
...
openair1/PHY/LTE_TRANSPORT/pilots_NB_IoT.c
View file @
b5a55c13
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
View file @
b5a55c13
...
...
@@ -33,6 +33,7 @@
#define __LTE_TRANSPORT_PROTO_NB_IOT__H__
#include "PHY/defs_NB_IoT.h"
#include "PHY/impl_defs_lte.h"
#include "PHY/defs.h"
//#include <math.h>
//NPSS
...
...
@@ -65,7 +66,7 @@ int nsss_extract_NB_IoT(PHY_VARS_UE_NB_IoT *ue,
//NRS
void
generate_pilots_NB_IoT
(
PHY_VARS_eNB
_NB_IoT
*
phy_vars_eNB
,
void
generate_pilots_NB_IoT
(
PHY_VARS_eNB
*
phy_vars_eNB
,
int32_t
**
txdataF
,
int16_t
amp
,
uint16_t
Ntti
,
// Ntti = 10
...
...
openair1/SCHED/phy_procedures_lte_eNb_NB_IoT.c
View file @
b5a55c13
...
...
@@ -220,7 +220,7 @@ void common_signal_procedures_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
int
**
txdataF
=
eNB
->
common_vars
.
txdataF
[
0
];
int
subframe
=
proc
->
subframe_tx
;
int
frame
=
proc
->
frame_tx
;
uint16_t
Ntti
=
10
;
//ntti = 10
//
uint16_t Ntti = 10; //ntti = 10
int
RB_IoT_ID
=
2
;
// XXX should be initialized (RB reserved for NB-IoT, PRB index)
int
With_NSSS
=
0
;
// With_NSSS = 1; if the frame include a sub-Frame with NSSS signal
...
...
@@ -260,17 +260,14 @@ void common_signal_procedures_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
RB_IoT_ID
);
}
/*else
{
generate_pilots_NB_IoT
(
eNB
,
txdataF
,
AMP
,
Ntti
,
subframe
,
RB_IoT_ID
,
With_NSSS);
}
*/
With_NSSS
);
}
void
phy_procedures_eNB_uespec_RX_NB_IoT
(
PHY_VARS_eNB_NB_IoT
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
UL_IND_t
*
UL_INFO
)
...
...
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