Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
9f4a8491
Commit
9f4a8491
authored
Aug 18, 2016
by
Florian Kaltenberger
Browse files
added prototypes to compute beamforming weights
parent
e3dbfa3d
Changes
5
Hide whitespace changes
Inline
Side-by-side
cmake_targets/CMakeLists.txt
View file @
9f4a8491
...
...
@@ -976,6 +976,7 @@ set(PHY_SRC
${
OPENAIR1_DIR
}
/PHY/MODULATION/slot_fep_ul.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/ul_7_5_kHz.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/beamforming.c
${
OPENAIR1_DIR
}
/PHY/MODULATION/compute_bf_weights.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/freq_equalization.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_sync_time.c
${
OPENAIR1_DIR
}
/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
...
...
openair1/PHY/MODULATION/beamforming.c
View file @
9f4a8491
...
...
@@ -120,4 +120,3 @@ int beam_precoding(int32_t **txdataF,
}
}
}
openair1/PHY/MODULATION/compute_bf_weights.c
0 → 100644
View file @
9f4a8491
#include <stdio.h>
#include <stdint.h>
#include "PHY/impl_defs_lte.h"
int
f_read
(
char
*
calibF_fname
,
int
nb_ant
,
int
nb_freq
,
int32_t
**
tdd_calib_coeffs
){
FILE
*
calibF_fd
;
int
i
,
j
,
l
,
calibF_e
;
calibF_fd
=
fopen
(
calibF_fname
,
"r"
);
if
(
calibF_fd
)
{
printf
(
"Loading Calibration matrix from %s
\n
"
,
calibF_fname
);
for
(
i
=
0
;
i
<
nb_ant
;
i
++
){
for
(
j
=
0
;
j
<
nb_freq
*
2
;
j
++
){
fscanf
(
calibF_fd
,
"%d"
,
&
calibF_e
);
tdd_calib_coeffs
[
i
][
j
]
=
(
int16_t
)
calibF_e
;
}
}
printf
(
"%d
\n
"
,(
int
)
tdd_calib_coeffs
[
0
][
0
]);
printf
(
"%d
\n
"
,(
int
)
tdd_calib_coeffs
[
1
][
599
]);
}
else
printf
(
"%s not found, running with defaults
\n
"
,
calibF_fname
);
}
int
estimate_DLCSI_from_ULCSI
(
int32_t
**
calib_dl_ch_estimates
,
int32_t
**
ul_ch_estimates
,
int32_t
**
tdd_calib_coeffs
,
int
nb_ant
,
int
nb_freq
)
{
}
int
compute_BF_weights
(
int32_t
**
beam_weights
,
int32_t
**
calib_dl_ch_estimates
,
PRECODE_TYPE_t
precode_type
,
int
nb_ant
,
int
nb_freq
)
{
switch
(
precode_type
)
{
//case MRT
case
0
:
//case ZF
break
;
case
1
:
//case MMSE
break
;
case
2
:
break
;
default
:
break
;
}
}
// temporal test function
void
main
(){
// initialization
// compare
printf
(
"Hello world!
\n
"
);
}
\ No newline at end of file
openair1/PHY/MODULATION/defs.h
View file @
9f4a8491
...
...
@@ -118,6 +118,13 @@ int beam_precoding(int32_t **txdataF,
int
slot
,
int
symbol
);
int
f_read
(
char
*
calibF_fname
,
int
nb_ant
,
int
nb_freq
,
int32_t
**
tdd_calib_coeffs
);
int
estimate_DLCSI_from_ULCSI
(
int32_t
**
calib_dl_ch_estimates
,
int32_t
**
ul_ch_estimates
,
int32_t
**
tdd_calib_coeffs
,
int
nb_ant
,
int
nb_freq
);
int
compute_BF_weights
(
int32_t
**
beam_weights
,
int32_t
**
calib_dl_ch_estimates
,
PRECODE_TYPE_t
precode_type
,
int
nb_ant
,
int
nb_freq
);
#endif
/** @}*/
#endif
openair1/PHY/impl_defs_lte.h
View file @
9f4a8491
...
...
@@ -593,6 +593,15 @@ typedef enum {
TM9_10
=
14
}
MIMO_mode_t
;
typedef
enum
{
/// MRT
MRT
=
0
,
/// ZF
ZF
=
1
,
/// MMSE
MMSE
=
2
}
PRECODE_TYPE_t
;
typedef
struct
{
/// \brief Holds the transmit data in time domain.
/// For IFFT_FPGA this points to the same memory as PHY_vars->rx_vars[a].RX_DMA_BUFFER.
...
...
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