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
Michael Black
OpenXG-RAN
Commits
bb3bee9f
Commit
bb3bee9f
authored
Feb 17, 2020
by
Cedric Roux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix dftlen computation
parent
fd81b1ec
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
6 deletions
+14
-6
openair1/PHY/NR_TRANSPORT/nr_prach.c
openair1/PHY/NR_TRANSPORT/nr_prach.c
+14
-6
No files found.
openair1/PHY/NR_TRANSPORT/nr_prach.c
View file @
bb3bee9f
...
@@ -278,8 +278,10 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -278,8 +278,10 @@ void rx_nr_prach_ru(RU_t *ru,
//50 MHz @ 61.44 Ms/s
//50 MHz @ 61.44 Ms/s
prach2
=
prach
[
aa
]
+
(
Ncp
<<
2
);
prach2
=
prach
[
aa
]
+
(
Ncp
<<
2
);
if
(
prach_sequence_length
==
0
)
{
if
(
prach_sequence_length
==
0
)
{
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dftlen
=
49152
;
dft49152
(
prach2
,
rxsigF
[
aa
],
1
);
dft49152
(
prach2
,
rxsigF
[
aa
],
1
);
}
if
(
prach_fmt
==
1
||
prach_fmt
==
2
)
{
if
(
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dft49152
(
prach2
+
98304
,
rxsigF
[
aa
]
+
98304
,
1
);
dft49152
(
prach2
+
98304
,
rxsigF
[
aa
]
+
98304
,
1
);
reps
++
;
reps
++
;
...
@@ -290,11 +292,13 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -290,11 +292,13 @@ void rx_nr_prach_ru(RU_t *ru,
reps
+=
2
;
reps
+=
2
;
}
}
if
(
prach_fmt
==
3
)
{
if
(
prach_fmt
==
3
)
{
dftlen
=
12288
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft12288
(
prach2
+
(
i
*
12288
*
2
),
rxsigF
[
aa
]
+
(
i
*
12288
*
2
),
1
);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft12288
(
prach2
+
(
i
*
12288
*
2
),
rxsigF
[
aa
]
+
(
i
*
12288
*
2
),
1
);
reps
=
4
;
reps
=
4
;
}
}
}
}
else
{
else
{
dftlen
=
2048
;
dft2048
(
prach2
,
rxsigF
[
aa
],
1
);
dft2048
(
prach2
,
rxsigF
[
aa
],
1
);
if
(
prach_fmt
!=
7
)
{
// !=C0
if
(
prach_fmt
!=
7
)
{
// !=C0
dft2048
(
prach2
+
4096
,
rxsigF
[
aa
]
+
4096
,
1
);
dft2048
(
prach2
+
4096
,
rxsigF
[
aa
]
+
4096
,
1
);
...
@@ -321,6 +325,7 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -321,6 +325,7 @@ void rx_nr_prach_ru(RU_t *ru,
prach2
=
prach
[
aa
]
+
(
3
*
Ncp
);
prach2
=
prach
[
aa
]
+
(
3
*
Ncp
);
AssertFatal
(
fp
->
N_RB_UL
<=
107
,
"cannot do 108..136 PRBs with 3/4 sampling
\n
"
);
AssertFatal
(
fp
->
N_RB_UL
<=
107
,
"cannot do 108..136 PRBs with 3/4 sampling
\n
"
);
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dftlen
=
36864
;
dft36864
(
prach2
,
rxsigF
[
aa
],
1
);
dft36864
(
prach2
,
rxsigF
[
aa
],
1
);
reps
++
;
reps
++
;
}
}
...
@@ -334,10 +339,12 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -334,10 +339,12 @@ void rx_nr_prach_ru(RU_t *ru,
reps
+=
2
;
reps
+=
2
;
}
}
if
(
prach_fmt
==
3
)
{
if
(
prach_fmt
==
3
)
{
dftlen
=
9216
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft9216
(
prach2
+
(
i
*
9216
*
2
),
rxsigF
[
aa
]
+
(
i
*
9216
*
2
),
1
);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft9216
(
prach2
+
(
i
*
9216
*
2
),
rxsigF
[
aa
]
+
(
i
*
9216
*
2
),
1
);
reps
=
4
;
reps
=
4
;
}
}
}
else
{
}
else
{
dftlen
=
1536
;
dft1536
(
prach2
,
rxsigF
[
aa
],
1
);
dft1536
(
prach2
,
rxsigF
[
aa
],
1
);
if
(
prach_fmt
!=
0xc0
)
{
if
(
prach_fmt
!=
0xc0
)
{
dft1536
(
prach2
+
3072
,
rxsigF
[
aa
]
+
3072
,
1
);
dft1536
(
prach2
+
3072
,
rxsigF
[
aa
]
+
3072
,
1
);
...
@@ -364,12 +371,13 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -364,12 +371,13 @@ void rx_nr_prach_ru(RU_t *ru,
else
if
(
fp
->
N_RB_UL
<=
273
)
{
else
if
(
fp
->
N_RB_UL
<=
273
)
{
if
(
fp
->
threequarter_fs
==
0
)
{
if
(
fp
->
threequarter_fs
==
0
)
{
prach2
=
prach
[
aa
]
+
(
Ncp
<<
3
);
prach2
=
prach
[
aa
]
+
(
Ncp
<<
3
);
dftlen
=
98304
;
//80,90,100 MHz @ 122.88 Ms/s
//80,90,100 MHz @ 122.88 Ms/s
if
(
prach_sequence_length
==
0
)
{
if
(
prach_sequence_length
==
0
)
{
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dftlen
=
98304
;
dft98304
(
prach2
,
rxsigF
[
aa
],
1
);
dft98304
(
prach2
,
rxsigF
[
aa
],
1
);
}
if
(
prach_fmt
==
1
||
prach_fmt
==
2
)
{
if
(
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dft98304
(
prach2
+
196608
,
rxsigF
[
aa
]
+
196608
,
1
);
dft98304
(
prach2
+
196608
,
rxsigF
[
aa
]
+
196608
,
1
);
reps
++
;
reps
++
;
...
@@ -380,9 +388,9 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -380,9 +388,9 @@ void rx_nr_prach_ru(RU_t *ru,
reps
+=
2
;
reps
+=
2
;
}
}
if
(
prach_fmt
==
3
)
{
if
(
prach_fmt
==
3
)
{
dftlen
=
24576
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft24576
(
prach2
+
(
i
*
2
*
24576
),
rxsigF
[
aa
]
+
(
i
*
2
*
24576
),
1
);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft24576
(
prach2
+
(
i
*
2
*
24576
),
rxsigF
[
aa
]
+
(
i
*
2
*
24576
),
1
);
reps
=
4
;
reps
=
4
;
dftlen
=
24576
;
}
}
}
}
else
{
else
{
...
@@ -412,9 +420,9 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -412,9 +420,9 @@ void rx_nr_prach_ru(RU_t *ru,
AssertFatal
(
fp
->
N_RB_UL
<=
217
,
"cannot do more than 217 PRBs with 3/4 sampling
\n
"
);
AssertFatal
(
fp
->
N_RB_UL
<=
217
,
"cannot do more than 217 PRBs with 3/4 sampling
\n
"
);
prach2
=
prach
[
aa
]
+
(
6
*
Ncp
);
prach2
=
prach
[
aa
]
+
(
6
*
Ncp
);
// 80 MHz @ 92.16 Ms/s
// 80 MHz @ 92.16 Ms/s
dftlen
=
73728
;
if
(
prach_sequence_length
==
0
)
{
if
(
prach_sequence_length
==
0
)
{
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
if
(
prach_fmt
==
0
||
prach_fmt
==
1
||
prach_fmt
==
2
)
{
dftlen
=
73728
;
dft73728
(
prach2
,
rxsigF
[
aa
],
1
);
dft73728
(
prach2
,
rxsigF
[
aa
],
1
);
reps
++
;
reps
++
;
}
}
...
@@ -423,9 +431,9 @@ void rx_nr_prach_ru(RU_t *ru,
...
@@ -423,9 +431,9 @@ void rx_nr_prach_ru(RU_t *ru,
reps
++
;
reps
++
;
}
}
if
(
prach_fmt
==
3
)
{
if
(
prach_fmt
==
3
)
{
dftlen
=
18432
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft18432
(
prach2
+
(
i
*
2
*
18432
),
rxsigF
[
aa
]
+
(
i
*
2
*
18432
),
1
);
for
(
int
i
=
0
;
i
<
4
;
i
++
)
dft18432
(
prach2
+
(
i
*
2
*
18432
),
rxsigF
[
aa
]
+
(
i
*
2
*
18432
),
1
);
reps
=
4
;
reps
=
4
;
dftlen
=
18432
;
}
}
}
else
{
}
else
{
dftlen
=
3072
;
dftlen
=
3072
;
...
...
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