Extend the length of the channel processing to 32 bits

This commit is contained in:
Bo Zhao
2020-02-10 19:56:39 +01:00
committed by cig
parent ac12245252
commit 7ea608720f
2 changed files with 12 additions and 8 deletions
@@ -27,18 +27,20 @@
#include "SIMULATION/RF/rf.h" #include "SIMULATION/RF/rf.h"
#include <complex.h> #include <complex.h>
void tv_channel(channel_desc_t *desc,double complex ***H,uint16_t length); void tv_channel(channel_desc_t *desc,double complex ***H,uint32_t length);
double frand_a_b(double a, double b); double frand_a_b(double a, double b);
void tv_conv(double complex **h, double complex *x, double complex *y, uint16_t nb_samples, uint8_t nb_taps, int delay); void tv_conv(double complex **h, double complex *x, double complex *y, uint32_t nb_samples, uint8_t nb_taps, int delay);
void multipath_tv_channel(channel_desc_t *desc, void multipath_tv_channel(channel_desc_t *desc,
double **tx_sig_re, double **tx_sig_re,
double **tx_sig_im, double **tx_sig_im,
double **rx_sig_re, double **rx_sig_re,
double **rx_sig_im, double **rx_sig_im,
uint16_t length, uint32_t length,
uint8_t keep_channel) { uint8_t keep_channel)
double complex **tx,**rx,* **H_t,*rx_temp; //, *tv_H_t; {
double complex **tx,**rx,***H_t,*rx_temp;//, *tv_H_t;
double path_loss = pow(10,desc->path_loss_dB/20); double path_loss = pow(10,desc->path_loss_dB/20);
int i,j,k,dd; int i,j,k,dd;
dd = abs(desc->channel_offset); dd = abs(desc->channel_offset);
@@ -126,7 +128,8 @@ void multipath_tv_channel(channel_desc_t *desc,
} }
//TODO: make phi_rad a parameter of this function //TODO: make phi_rad a parameter of this function
void tv_channel(channel_desc_t *desc,double complex ***H,uint16_t length) { void tv_channel(channel_desc_t *desc,double complex ***H,uint32_t length){
int i,j,p,l,k; int i,j,p,l,k;
double *alpha,*phi_rad,pi=acos(-1),*w_Hz; double *alpha,*phi_rad,pi=acos(-1),*w_Hz;
alpha = (double *)calloc(desc->nb_paths,sizeof(double)); alpha = (double *)calloc(desc->nb_paths,sizeof(double));
@@ -193,7 +196,8 @@ void tv_channel(channel_desc_t *desc,double complex ***H,uint16_t length) {
} }
// time varying convolution // time varying convolution
void tv_conv(double complex **h, double complex *x, double complex *y, uint16_t nb_samples, uint8_t nb_taps, int dd) { void tv_conv(double complex **h, double complex *x, double complex *y, uint32_t nb_samples, uint8_t nb_taps, int dd){
int i,j; int i,j;
for(i=0; i<((int)nb_samples-dd); i++) { for(i=0; i<((int)nb_samples-dd); i++) {
+1 -1
View File
@@ -426,7 +426,7 @@ void multipath_tv_channel(channel_desc_t *desc,
double **tx_sig_im, double **tx_sig_im,
double **rx_sig_re, double **rx_sig_re,
double **rx_sig_im, double **rx_sig_im,
uint16_t length, uint32_t length,
uint8_t keep_channel); uint8_t keep_channel);
/**@} */ /**@} */