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
wangjie
OpenXG-RAN
Commits
632bcce8
Commit
632bcce8
authored
Sep 25, 2020
by
zhenghuangkun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: rfsim abnormal CCCH reception.
parent
d2c7a889
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
10 deletions
+7
-10
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+7
-10
No files found.
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
View file @
632bcce8
...
...
@@ -45,6 +45,7 @@
//extern int **ulchmag_eren;
//eren
static
short
jitter
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
0
,
0
,
1
,
0
,
1
,
1
,
0
};
static
short
jitterc
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
0
,
1
,
1
,
0
,
1
,
0
,
0
,
1
};
void
lte_idft
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
uint32_t
*
z
,
uint16_t
Msc_PUSCH
)
{
...
...
@@ -758,8 +759,6 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
uint8_t
aarx
;
//,symbol_mod;
__m128i
mmtmpU0
,
mmtmpU1
,
mmtmpU2
,
mmtmpU3
;
static
short
ref_min
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
};
#elif defined(__arm__)
int16x4_t
*
ul_ch128
,
*
rxdataF128
;
int16x8_t
*
ul_ch_mag128
,
*
ul_ch_mag128b
,
*
rxdataF_comp128
;
...
...
@@ -768,8 +767,6 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
int16_t
conj
[
4
]
__attribute__
((
aligned
(
16
)))
=
{
1
,
-
1
,
1
,
-
1
};
int32x4_t
output_shift128
=
vmovq_n_s32
(
-
(
int32_t
)
output_shift
);
static
short
ref_min
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
,
SHRT_MIN
};
#endif
for
(
aarx
=
0
;
aarx
<
frame_parms
->
nb_antennas_rx
;
aarx
++
)
{
...
...
@@ -877,9 +874,9 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
// print_shorts("ch:",ul_ch128[2]);
// print_shorts("pack:",rxdataF_comp128[2]);
// Add a jitter to compensate for the saturation in "packs" resulting in a bias on the DC after IDFT
rxdataF_comp128
[
0
]
=
_mm_
subs_epi16
(
rxdataF_comp128
[
0
],
_mm_cmpeq_epi16
(
rxdataF_comp128
[
0
],(
*
(
__m128i
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
1
]
=
_mm_
subs_epi16
(
rxdataF_comp128
[
1
],
_mm_cmpeq_epi16
(
rxdataF_comp128
[
1
],(
*
(
__m128i
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
2
]
=
_mm_
subs_epi16
(
rxdataF_comp128
[
2
],
_mm_cmpeq_epi16
(
rxdataF_comp128
[
2
],(
*
(
__m128i
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
0
]
=
_mm_
add_epi16
(
rxdataF_comp128
[
0
],(
*
(
__m128i
*
)
&
jitter
[
0
]
));
rxdataF_comp128
[
1
]
=
_mm_
add_epi16
(
rxdataF_comp128
[
1
],(
*
(
__m128i
*
)
&
jitter
[
0
]
));
rxdataF_comp128
[
2
]
=
_mm_
add_epi16
(
rxdataF_comp128
[
2
],(
*
(
__m128i
*
)
&
jitter
[
0
]
));
ul_ch128
+=
3
;
ul_ch_mag128
+=
3
;
...
...
@@ -927,9 +924,9 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
mmtmpU1
=
vqshlq_s32
(
mmtmpU1
,
-
output_shift128
);
rxdataF_comp128
[
2
]
=
vcombine_s16
(
vmovn_s32
(
mmtmpU0
),
vmovn_s32
(
mmtmpU1
));
// Add a jitter to compensate for the saturation in "packs" resulting in a bias on the DC after IDFT
rxdataF_comp128
[
0
]
=
vq
subq_s16
(
rxdataF_comp128
[
0
],
vceqq_s16
(
rxdataF_comp128
[
0
],(
*
(
int16x8_t
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
1
]
=
vq
subq_s16
(
rxdataF_comp128
[
1
],
vceqq_s16
(
rxdataF_comp128
[
1
],(
*
(
int16x8_t
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
2
]
=
vq
subq_s16
(
rxdataF_comp128
[
2
],
vceqq_s16
(
rxdataF_comp128
[
1
],(
*
(
int16x8_t
*
)
&
ref_min
[
0
])
));
rxdataF_comp128
[
0
]
=
vq
addq_s16
(
rxdataF_comp128
[
0
],(
*
(
int16x8_t
*
)
&
jitter
[
0
]
));
rxdataF_comp128
[
1
]
=
vq
addq_s16
(
rxdataF_comp128
[
1
],(
*
(
int16x8_t
*
)
&
jitter
[
0
]
));
rxdataF_comp128
[
2
]
=
vq
addq_s16
(
rxdataF_comp128
[
2
],(
*
(
int16x8_t
*
)
&
jitter
[
0
]
));
ul_ch128
+=
6
;
ul_ch_mag128
+=
3
;
...
...
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