move beamforming function to PHY/MODULATION folder
This commit is contained in:
@@ -868,12 +868,12 @@ set(PHY_SRC
|
||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
|
||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/print_stats.c
|
||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/initial_sync.c
|
||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/beamforming.c
|
||||
${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
|
||||
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
|
||||
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
|
||||
${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/LTE_ESTIMATION/freq_equalization.c
|
||||
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
|
||||
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
|
||||
|
||||
@@ -336,41 +336,6 @@ int32_t generate_pbch(LTE_eNB_PBCH *eNB_pbch,
|
||||
|
||||
int32_t generate_pbch_emul(PHY_VARS_eNB *phy_vars_eNB,uint8_t *pbch_pdu);
|
||||
|
||||
|
||||
/** \brief This function performs UE specific beamforming especially for
|
||||
* transmission mode TM7-10
|
||||
@param txdataF Table of pointers for frequency-domain TX signals
|
||||
@param txdataF_BF Table of pointers for frequency-domain TX signals
|
||||
after beamforming
|
||||
@param frame_parms Frame descriptor structure
|
||||
@param ue_spec_bf_weights UE specific beamforming weights applied on
|
||||
each antenna element and each carrier
|
||||
@param slot Slot number
|
||||
@param symbol Symbol index on which to act*/
|
||||
int ue_spec_beamforming(int32_t **txdataF,
|
||||
int32_t **txdataF_BF,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int32_t ***ue_spec_bf_weights,
|
||||
int slot,
|
||||
int symbol);
|
||||
|
||||
/** \brief This function performs cell specific beamforming for common
|
||||
* data
|
||||
@param txdataF Table of pointers for frequency-domain TX signals
|
||||
@param txdataF_BF Table of pointers for frequency-domain TX signals
|
||||
@param frame_parms Frame descriptor structure
|
||||
after beamforming
|
||||
@param cell_spec_bf_weights Common beamforming weights applied on each
|
||||
antenna element and each carrier
|
||||
@param slot Slot number
|
||||
@param symbol Symbol index on which to act*/
|
||||
int cell_spec_beamforming(int32_t **txdataF,
|
||||
int32_t **txdataF_BF,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int32_t ***cell_spec_bf_weights,
|
||||
int slot,
|
||||
int symbol);
|
||||
|
||||
/** \brief This function computes the LLRs for ML (max-logsum approximation) dual-stream QPSK/QPSK reception.
|
||||
@param stream0_in Input from channel compensated (MR combined) stream 0
|
||||
@param stream1_in Input from channel compensated (MR combined) stream 1
|
||||
|
||||
@@ -27,13 +27,13 @@ Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 069
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
/*! \file PHY/LTE_TRANSPORT/beamforming.c
|
||||
/*! \file PHY/MODULATION/beamforming.c
|
||||
* \brief
|
||||
* \author R. Knopp, F. Kaltenberger, X. JIANG
|
||||
* \date 2015
|
||||
* \author X. JIANG, F. Kaltenberger, R. KNOPP
|
||||
* \date 2016
|
||||
* \version 0.1
|
||||
* \company Eurecom
|
||||
* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr,xiwen.jiang@eurecom.fr
|
||||
* \email: xiwen.jiang@eurecom.fr,florian.kaltenberger@eurecom.fr,raymond.knopp@eurecom.fr
|
||||
* \note
|
||||
* \warning
|
||||
*/
|
||||
@@ -99,6 +99,40 @@ void remove_625_Hz(PHY_VARS_eNB *phy_vars_eNB,int16_t *prach);
|
||||
|
||||
void apply_625_Hz(PHY_VARS_UE *phy_vars_ue,int16_t *prach);
|
||||
|
||||
/** \brief This function performs UE specific beamforming especially for
|
||||
* transmission mode TM7-10
|
||||
@param txdataF Table of pointers for frequency-domain TX signals
|
||||
@param txdataF_BF Table of pointers for frequency-domain TX signals
|
||||
after beamforming
|
||||
@param frame_parms Frame descriptor structure
|
||||
@param ue_spec_bf_weights UE specific beamforming weights applied on
|
||||
each antenna element and each carrier
|
||||
@param slot Slot number
|
||||
@param symbol Symbol index on which to act*/
|
||||
int ue_spec_beamforming(int32_t **txdataF,
|
||||
int32_t **txdataF_BF,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int32_t ***ue_spec_bf_weights,
|
||||
int slot,
|
||||
int symbol);
|
||||
|
||||
/** \brief This function performs cell specific beamforming for common
|
||||
* data
|
||||
@param txdataF Table of pointers for frequency-domain TX signals
|
||||
@param txdataF_BF Table of pointers for frequency-domain TX signals
|
||||
@param frame_parms Frame descriptor structure
|
||||
after beamforming
|
||||
@param cell_spec_bf_weights Common beamforming weights applied on each
|
||||
antenna element and each carrier
|
||||
@param slot Slot number
|
||||
@param symbol Symbol index on which to act*/
|
||||
int cell_spec_beamforming(int32_t **txdataF,
|
||||
int32_t **txdataF_BF,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int32_t ***cell_spec_bf_weights,
|
||||
int slot,
|
||||
int symbol);
|
||||
|
||||
#endif
|
||||
/** @}*/
|
||||
#endif
|
||||
|
||||
@@ -134,12 +134,12 @@ void do_OFDM_mod_l(LTE_eNB_COMMON *eNB_common_vars, int eNB_id, uint16_t next_sl
|
||||
|
||||
//printf("do_OFDM_mod_l, slot=%d, l=%d, NUMBER_OF_OFDM_CARRIERS=%d,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES=%d\n",next_slot, l,NUMBER_OF_OFDM_CARRIERS,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES);
|
||||
if (l<num_pdcch_symbols && next_slot&1 == 0)
|
||||
cell_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->cell_spec_bf_weights,next_slot,l);
|
||||
cell_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->cell_spec_bf_weights[eNB_id],next_slot,l);
|
||||
else
|
||||
if (transmission_mode<7)
|
||||
cell_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->cell_spec_bf_weights,next_slot,l);
|
||||
cell_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->cell_spec_bf_weights[eNB_id],next_slot,l);
|
||||
else
|
||||
ue_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->ue_spec_bf_weights,next_slot,l);
|
||||
ue_spec_beamforming(txdataF,txdataF_BF,frame_parms,eNB_common_vars->ue_spec_bf_weights[eNB_id],next_slot,l);
|
||||
|
||||
for (aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
|
||||
|
||||
@@ -1026,7 +1026,7 @@ int main(int argc, char **argv)
|
||||
for (re=0;re<frame_parms->ofdm_symbol_size;re++) {
|
||||
if (n_tx_phy==1 || n_tx_phy==2)
|
||||
ue_spec_bf_weights[aa][re] = 0x00007fff;
|
||||
else if (n_tx_phy==4)
|
||||
else if (n_tx_phy==4 || n_tx_phy==8)
|
||||
ue_spec_bf_weights[aa][re] = 0x00007fff>>1;
|
||||
else if (n_tx_phy==16)
|
||||
ue_spec_bf_weights[aa][re] = 0x00007fff>>2;
|
||||
|
||||
Reference in New Issue
Block a user