X-Git-Url: https://git.rkrishnan.org/?a=blobdiff_plain;f=jDttSP%2Fsdr.c;fp=jDttSP%2Fsdr.c;h=8201b9de806de92efb12b45309c4079d56f5b4cc;hb=5994f02143b8ecdc92433c4f7e47ed47bf8460b2;hp=d500676afe07ad0f9e29560ad1121c5849e5470a;hpb=00027b8895e28eedb988f3f1a67679a3b3dfe770;p=dttsp.git diff --git a/jDttSP/sdr.c b/jDttSP/sdr.c index d500676..8201b9d 100644 --- a/jDttSP/sdr.c +++ b/jDttSP/sdr.c @@ -75,6 +75,9 @@ setup_all(void) { uni.multirx.lis = 0; uni.multirx.nrx = loc.def.nrx; + + uni.mix.rx = uni.mix.tx = 1.0; + uni.tick = 0; } @@ -205,6 +208,7 @@ setup_rx(int k) { REAL pos = 0.5, // 0 <= pos <= 1, left->right theta = (1.0 - pos) * M_PI / 2.0; rx[k].azim = Cmplx(cos(theta), sin(theta)); + fprintf(stderr, "azim %f %f\n", rx[k].azim.re, rx[k].azim.im); } rx[k].tick = 0; @@ -703,7 +707,9 @@ do_tx(void) { come here when there are buffers to work on */ void -process_samples(float *bufl, float *bufr, int n) { +process_samples(float *bufl, float *bufr, + float *auxl, float *auxr, + int n) { int i, k; switch (uni.mode.trx) { @@ -733,16 +739,28 @@ process_samples(float *bufl, float *bufr, int n) { CXBhave(rx[k].buf.o) = n; } + for (i = 0; i < n; i++) + bufl[i] += auxl[i] * uni.mix.rx, + bufr[i] += auxr[i] * uni.mix.rx; + break; case TX: + + for (i = 0; i < n; i++) + bufl[i] += auxl[i] * uni.mix.tx, + bufr[i] += auxr[i] * uni.mix.tx; + for (i = 0; i < n; i++) CXBimag(tx.buf.i, i) = bufl[i], CXBreal(tx.buf.i, i) = bufr[i]; CXBhave(tx.buf.i) = n; + do_tx(), tx.tick++; + for (i = 0; i < n; i++) bufl[i] = (float) CXBimag(tx.buf.o, i), bufr[i] = (float) CXBreal(tx.buf.o, i); CXBhave(tx.buf.o) = n; + break; }