Commit 06c4b91b authored by Xiwen JIANG's avatar Xiwen JIANG

move beamforming function to PHY/MODULATION folder

parent 71b76934
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment