commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r6109 - gnuradio/branches/developers/trondeau/ofdm_mod


From: trondeau
Subject: [Commit-gnuradio] r6109 - gnuradio/branches/developers/trondeau/ofdm_mod/gnuradio-core/src/lib/general
Date: Fri, 3 Aug 2007 11:09:58 -0600 (MDT)

Author: trondeau
Date: 2007-08-03 11:09:57 -0600 (Fri, 03 Aug 2007)
New Revision: 6109

Modified:
   
gnuradio/branches/developers/trondeau/ofdm_mod/gnuradio-core/src/lib/general/gr_ofdm_correlator.cc
Log:
fixing correlator coarse frequency correction

Modified: 
gnuradio/branches/developers/trondeau/ofdm_mod/gnuradio-core/src/lib/general/gr_ofdm_correlator.cc
===================================================================
--- 
gnuradio/branches/developers/trondeau/ofdm_mod/gnuradio-core/src/lib/general/gr_ofdm_correlator.cc
  2007-08-03 13:22:55 UTC (rev 6108)
+++ 
gnuradio/branches/developers/trondeau/ofdm_mod/gnuradio-core/src/lib/general/gr_ofdm_correlator.cc
  2007-08-03 17:09:57 UTC (rev 6109)
@@ -125,22 +125,22 @@
 
     for(i = 0; i < d_occupied_carriers; i++) {
       h_sqrd = h_sqrd + previous[i+zeros_on_left+search_delta] * 
-       
conj(coarse_freq_comp(search_delta,0)*current[i+zeros_on_left+search_delta]) * 
+       
conj(coarse_freq_comp(search_delta,1)*current[i+zeros_on_left+search_delta]) * 
        d_diff_corr_factor[i];
+      
       power = power + norm(current[i+zeros_on_left+search_delta]); // No need 
to do coarse freq here
     }
     
 #if VERBOSE
-      printf("bin %d\th_sqrd = ( %f, %f )\t power = %f\t real(h)/p = %f\t 
angle = %f\n", 
-            search_delta, h_sqrd.real(), h_sqrd.imag(), power, 
h_sqrd.real()/power, arg(h_sqrd)); 
-#endif
-
-      // FIXME: Look at h_sqrd.read() > power
-    if((h_sqrd.real() > 0.82*power)  && (h_sqrd.real() < 1.1 * power)) {
+    printf("bin %d\th_sqrd = ( %f, %f )\t power = %f\t real(h)/p = %f\t angle 
= %f\n", 
+          search_delta, h_sqrd.real(), h_sqrd.imag(), power, 
h_sqrd.real()/power, arg(h_sqrd)); 
+#endif      
+    // FIXME: Look at h_sqrd.read() > power
+    if((h_sqrd.real() > 0.82*power) && (h_sqrd.real() < 1.1 * power)) {
       found = true;
       //printf("search delta: %d\n", search_delta);
       d_coarse_freq = search_delta;
-      d_phase_count = 0;
+      d_phase_count = 1;
       //d_snr_est = 10*log10(power/(power-h_sqrd.real()));
 
       // check for low noise power; sets maximum SNR at 100 dB
@@ -223,7 +223,7 @@
 
   d_phase_count++;
   if(d_phase_count == MAX_NUM_SYMBOLS) {
-    d_phase_count = 0;
+    d_phase_count = 1;
   }
 
   consume_each(1);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]