Commit 76f15d62 authored by Raymond Knopp's avatar Raymond Knopp

testing with dlsim

parent 71c8d6b9
......@@ -67,15 +67,12 @@ void generate_qpsk_table(void)
void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms)
{
ccodedot11_init();
ccodedot11_init_inv();
ccodelte_init();
ccodelte_init_inv();
init_dfts();
phy_generate_viterbi_tables();
phy_generate_viterbi_tables_lte();
load_codinglib();
......
......@@ -81,7 +81,7 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq)
//compute frequency-domain representation of 6144-sample chunk
dft6144((int16_t *)rxp,
sp);
sp,1);
/*
......
......@@ -357,10 +357,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
if (prach_fmt == 4) {
dft256(prach2,rxsigF[aa],1);
} else {
dft3072(prach2,rxsigF[aa]);
dft3072(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft3072(prach2+6144,rxsigF[aa]+6144);
dft3072(prach2+6144,rxsigF[aa]+6144,1);
}
break;
......@@ -371,10 +371,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
dft1024(prach2,rxsigF[aa],1);
fft_size = 1024;
} else {
dft6144(prach2,rxsigF[aa]);
dft6144(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft6144(prach2+12288,rxsigF[aa]+12288);
dft6144(prach2+12288,rxsigF[aa]+12288,1);
fft_size = 6144;
}
......@@ -385,22 +385,22 @@ void rx_prach0(PHY_VARS_eNB *eNB,
if (prach_fmt == 4) {
dft2048(prach2,rxsigF[aa],1);
} else {
dft12288(prach2,rxsigF[aa]);
dft12288(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft12288(prach2+24576,rxsigF[aa]+24576);
dft12288(prach2+24576,rxsigF[aa]+24576,1);
}
break;
case 75:
if (prach_fmt == 4) {
dft3072(prach2,rxsigF[aa]);
dft3072(prach2,rxsigF[aa],1);
} else {
dft18432(prach2,rxsigF[aa]);
dft18432(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft18432(prach2+36864,rxsigF[aa]+36864);
dft18432(prach2+36864,rxsigF[aa]+36864,1);
}
break;
......@@ -410,19 +410,19 @@ void rx_prach0(PHY_VARS_eNB *eNB,
if (prach_fmt == 4) {
dft4096(prach2,rxsigF[aa],1);
} else {
dft24576(prach2,rxsigF[aa]);
dft24576(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft24576(prach2+49152,rxsigF[aa]+49152);
dft24576(prach2+49152,rxsigF[aa]+49152,1);
}
} else {
if (prach_fmt == 4) {
dft3072(prach2,rxsigF[aa]);
dft3072(prach2,rxsigF[aa],1);
} else {
dft18432(prach2,rxsigF[aa]);
dft18432(prach2,rxsigF[aa],1);
if (prach_fmt>1)
dft18432(prach2+36864,rxsigF[aa]+36864);
dft18432(prach2+36864,rxsigF[aa]+36864,1);
}
}
......
......@@ -374,7 +374,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
memmove( prach, prach+1024, Ncp<<2 );
prach_len = 512+Ncp;
} else {
idft3072(prachF,prach2);
idft3072(prachF,prach2,1);
memmove( prach, prach+6144, Ncp<<2 );
prach_len = 3072+Ncp;
......@@ -393,7 +393,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
memmove( prach, prach+2048, Ncp<<2 );
prach_len = 1024+Ncp;
} else {
idft6144(prachF,prach2);
idft6144(prachF,prach2,1);
/*for (i=0;i<6144*2;i++)
prach2[i]<<=1;*/
memmove( prach, prach+12288, Ncp<<2 );
......@@ -413,7 +413,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
memmove( prach, prach+4096, Ncp<<2 );
prach_len = 2048+Ncp;
} else {
idft12288(prachF,prach2);
idft12288(prachF,prach2,1);
memmove( prach, prach+24576, Ncp<<2 );
prach_len = 12288+Ncp;
......@@ -427,12 +427,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
case 75:
if (prach_fmt == 4) {
idft3072(prachF,prach2);
idft3072(prachF,prach2,1);
//TODO: account for repeated format in dft output
memmove( prach, prach+6144, Ncp<<2 );
prach_len = 3072+Ncp;
} else {
idft18432(prachF,prach2);
idft18432(prachF,prach2,1);
memmove( prach, prach+36864, Ncp<<2 );
prach_len = 18432+Ncp;
......@@ -451,7 +451,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
memmove( prach, prach+8192, Ncp<<2 );
prach_len = 4096+Ncp;
} else {
idft24576(prachF,prach2);
idft24576(prachF,prach2,1);
memmove( prach, prach+49152, Ncp<<2 );
prach_len = 24576+Ncp;
......@@ -463,12 +463,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
}
else {
if (prach_fmt == 4) {
idft3072(prachF,prach2);
idft3072(prachF,prach2,1);
//TODO: account for repeated format in dft output
memmove( prach, prach+6144, Ncp<<2 );
prach_len = 3072+Ncp;
} else {
idft18432(prachF,prach2);
idft18432(prachF,prach2,1);
memmove( prach, prach+36864, Ncp<<2 );
prach_len = 18432+Ncp;
printf("Generated prach for 100 PRB, 3/4 sampling\n");
......
......@@ -42,7 +42,7 @@
#define debug_msg
#define ONE_OVER_SQRT2_Q15 23170
int oai_exit=0;
#endif
#define ONE_OVER_SQRT3_Q15 18919
......@@ -64,7 +64,7 @@ const static int16_t conjugatedft[32] __attribute__((aligned(32))) = {-1,1,-1,1,
const static int16_t reflip[32] __attribute__((aligned(32))) = {1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1};
int oai_exit=0;
#if defined(__x86_64__) || defined(__i386__)
static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline));
......@@ -174,27 +174,27 @@ This function performs optimized fixed-point radix-2 FFT/IFFT.
void idft1536(int16_t *sigF,int16_t *sig,int scale);
void idft6144(int16_t *sigF,int16_t *sig);
void idft6144(int16_t *sigF,int16_t *sig,int scale);
void idft12288(int16_t *sigF,int16_t *sig);
void idft12288(int16_t *sigF,int16_t *sig,int scale);
void idft18432(int16_t *sigF,int16_t *sig);
void idft18432(int16_t *sigF,int16_t *sig,int scale);
void idft3072(int16_t *sigF,int16_t *sig);
void idft3072(int16_t *sigF,int16_t *sig,int scale);
void idft24576(int16_t *sigF,int16_t *sig);
void idft24576(int16_t *sigF,int16_t *sig,int scale);
void dft1536(int16_t *sigF,int16_t *sig,int scale);
void dft6144(int16_t *sigF,int16_t *sig);
void dft6144(int16_t *sigF,int16_t *sig,int scale);
void dft12288(int16_t *sigF,int16_t *sig);
void dft12288(int16_t *sigF,int16_t *sig,int scale);
void dft18432(int16_t *sigF,int16_t *sig);
void dft18432(int16_t *sigF,int16_t *sig,int scale);
void dft3072(int16_t *sigF,int16_t *sig);
void dft3072(int16_t *sigF,int16_t *sig,int scale);
void dft24576(int16_t *sigF,int16_t *sig);
void dft24576(int16_t *sigF,int16_t *sig,int scale);
/*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift)
......
......@@ -67,6 +67,7 @@
#include "common/config/config_load_configmodule.h"
#include "PHY/INIT/phy_init.h"
void feptx_ofdm(RU_t *ru);
void feptx_prec(RU_t *ru);
......@@ -83,6 +84,8 @@ int n_rx_dropped = 0; /*!< \brief initial max process time for rx */
int codingw = 0;
int emulate_rf = 0;
void handler(int sig)
{
void *array[10];
......
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