[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r4148 - gnuradio/branches/developers/n4hy/ofdm/gnuradi
From: |
trondeau |
Subject: |
[Commit-gnuradio] r4148 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general |
Date: |
Mon, 18 Dec 2006 23:32:18 -0700 (MST) |
Author: trondeau
Date: 2006-12-18 23:32:17 -0700 (Mon, 18 Dec 2006)
New Revision: 4148
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.cc
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_sampler.cc
Log:
improvements to OFDM code to handle odd and even number of FFT bins
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.cc
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.cc
2006-12-19 01:14:44 UTC (rev 4147)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_demapper.cc
2006-12-19 06:32:17 UTC (rev 4148)
@@ -64,13 +64,21 @@
unsigned int i=0, j=0;
- for(i=0;i<ceil(d_bits_per_symbol/2);i++) {
- unsigned int k=ceil(d_bits_per_symbol/2);
+ for(i=0;i<ceil(d_bits_per_symbol/2.0);i++) {
+ unsigned int k=ceil(d_bits_per_symbol/2.0);
out[i+k] = slicer(in[i]);
}
for(i+=(d_vlen-d_bits_per_symbol);i<d_vlen;i++,j++) {
out[j]= slicer(in[i]);
}
+#if 0
+printf("demod out: ");
+ for(i = 0; i < d_bits_per_symbol; i++) {
+ printf("%d", out[i]);
+ }
+ printf(" %d\n", i);
+#endif
+
return d_bits_per_symbol;
}
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
2006-12-19 01:14:44 UTC (rev 4147)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
2006-12-19 06:32:17 UTC (rev 4148)
@@ -62,11 +62,11 @@
unsigned int right = d_vlen - d_bits_per_symbol-left;
unsigned int i;
- for(i=0;i<ceil(d_bits_per_symbol/2);i++) {
- unsigned int k=ceil(d_bits_per_symbol/2);
+ for(i=0;i<ceil(d_bits_per_symbol/2.0);i++) {
+ unsigned int k=ceil(d_bits_per_symbol/2.0);
out[i] = gr_complex(-1+2*in[i+k],0);
}
- for(;i<d_vlen - floor(d_bits_per_symbol/2);i++) {
+ for(;i<d_vlen - ceil(d_bits_per_symbol/2.0);i++) {
out[i]=gr_complex(0,0);
}
for(unsigned int j=0;i<d_vlen;i++,j++) {
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_sampler.cc
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_sampler.cc
2006-12-19 01:14:44 UTC (rev 4147)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_sampler.cc
2006-12-19 06:32:17 UTC (rev 4148)
@@ -79,14 +79,26 @@
while(i<d_symbol_length+d_fft_length && (found==0)) {
if( (theta[i].real() > d_avg*0.10) &&
(theta[i].real() > theta[i+1].real()) ) {
- // fprintf(stderr,"%d: %f
%f\n",i,theta[i].real(),epsilon[i].real());
found = 1;
- d_freq = epsilon[i].real() / d_fft_length;
- for(unsigned int j=0;j<d_fft_length;j++) {
- d_phase += d_freq;
- gr_complex nco = gr_expj(-d_phase);
- *optr++ = nco * iptr[i-d_fft_length+j+1];
+ for(unsigned int j=1; j < 10; j++) {
+ if(theta[i+j].real() > theta[i].real()) {
+ found = 0;
+ d_phase += d_freq;
+ i++;
+ break;
+ }
}
+
+ if(found) {
+ fprintf(stderr,"%d %f\n",i,theta[i].real());
+
+ d_freq = epsilon[i].real() / d_fft_length;
+ for(unsigned int j=0;j<d_fft_length;j++) {
+ d_phase += d_freq;
+ gr_complex nco = gr_expj(-d_phase);
+ *optr++ = nco * iptr[i-d_fft_length+j+1];
+ }
+ }
}
else {
d_phase += d_freq;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4148 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general,
trondeau <=