commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r9836 - in gnuradio/branches/developers/eb/frank/gnura


From: brickle
Subject: [Commit-gnuradio] r9836 - in gnuradio/branches/developers/eb/frank/gnuradio-core/src: lib/general python/gnuradio/gr
Date: Sat, 25 Oct 2008 13:02:09 -0600 (MDT)

Author: brickle
Date: 2008-10-25 13:02:07 -0600 (Sat, 25 Oct 2008)
New Revision: 9836

Modified:
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_squash_ff.cc
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_stretch_ff.cc
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.cc
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.h
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wvps_ff.cc
   
gnuradio/branches/developers/eb/frank/gnuradio-core/src/python/gnuradio/gr/qa_classify.py
Log:
Corrections to classification blocks

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_squash_ff.cc
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_squash_ff.cc
 2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_squash_ff.cc
 2008-10-25 19:02:07 UTC (rev 9836)
@@ -38,11 +38,31 @@
   return gr_squash_ff_sptr(new gr_squash_ff(igrid, ogrid));
 }
 
+// gr_squash_ff::gr_squash_ff(const std::vector<float> &igrid,
+//                        const std::vector<float> &ogrid)
+//   : gr_sync_block("squash_ff",
+//               gr_make_io_signature(1, 1, sizeof(float) * igrid.size()),
+//               gr_make_io_signature(1, 1, sizeof(float) * ogrid.size()))
+// {
+//   d_inum  = igrid.size();
+//   d_onum  = ogrid.size();
+//   d_igrid = (double *) malloc(d_inum * sizeof(double));
+//   d_iwork = (double *) malloc(d_inum * sizeof(double));
+//   d_ogrid = (double *) malloc(d_onum * sizeof(double));
+//   for (int i = 0; i < d_inum; i++)
+//     d_igrid[i] = igrid[i];
+//   for (int i = 0; i < d_onum; i++)
+//     d_ogrid[i] = ogrid[i];
+
+//   d_accel = gsl_interp_accel_alloc();
+//   d_spline = gsl_spline_alloc(gsl_interp_cspline, d_inum);  // FIXME check 
w/ Frank
+// }
+
 gr_squash_ff::gr_squash_ff(const std::vector<float> &igrid,
                           const std::vector<float> &ogrid)
   : gr_sync_block("squash_ff",
-                 gr_make_io_signature(1, 1, sizeof(float) * igrid.size()),
-                 gr_make_io_signature(1, 1, sizeof(float) * ogrid.size()))
+                 gr_make_io_signature(1, 1, sizeof(float)),
+                 gr_make_io_signature(1, 1, sizeof(float)))
 {
   d_inum  = igrid.size();
   d_onum  = ogrid.size();

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_stretch_ff.cc
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_stretch_ff.cc
        2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_stretch_ff.cc
        2008-10-25 19:02:07 UTC (rev 9836)
@@ -33,10 +33,18 @@
   return gr_stretch_ff_sptr(new gr_stretch_ff(lo, vlen));
 }
 
+// gr_stretch_ff::gr_stretch_ff(float lo, size_t vlen)
+//   : gr_sync_block("stretch_ff",
+//               gr_make_io_signature(1, 1, vlen * sizeof(float)),
+//               gr_make_io_signature(1, 1, vlen * sizeof(float))),
+//     d_lo(lo), d_vlen(vlen)
+// {
+// }
+
 gr_stretch_ff::gr_stretch_ff(float lo, size_t vlen)
   : gr_sync_block("stretch_ff",
-                 gr_make_io_signature(1, 1, vlen * sizeof(float)),
-                 gr_make_io_signature(1, 1, vlen * sizeof(float))),
+                 gr_make_io_signature(1, 1, sizeof(float)),
+                 gr_make_io_signature(1, 1, sizeof(float))),
     d_lo(lo), d_vlen(vlen)
 {
 }

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.cc
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.cc
        2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.cc
        2008-10-25 19:02:07 UTC (rev 9836)
@@ -47,8 +47,8 @@
                             int order,
                             bool forward)
   : gr_sync_block("wavelet_ff",
-                 gr_make_io_signature(1, 1, size * sizeof(float)),
-                 gr_make_io_signature(1, 1, size * sizeof(float))),
+                 gr_make_io_signature(1, 1, sizeof(float)),
+                 gr_make_io_signature(1, 1, sizeof(float))),
     d_size(size),
     d_order(order),
     d_forward(forward)
@@ -57,9 +57,12 @@
   if (d_wavelet == NULL)
     throw std::invalid_argument("can't allocate wavelet");
   d_workspace = gsl_wavelet_workspace_alloc(d_size);
+  if (d_workspace == NULL)
+    throw std::invalid_argument("can't allocate wavelet workspace");
   d_temp = (double *) malloc(d_size*sizeof(double));
 }
 
+
 gr_wavelet_ff::~gr_wavelet_ff()
 {
   gsl_wavelet_free(d_wavelet);
@@ -75,29 +78,24 @@
   const float *in  = (const float *) input_items[0];
   float       *out = (float *) output_items[0];
 
-  for (int count = 0; count < noutput_items; count++) {
-    for (int i = 0; i < d_size; i++)
-      d_temp[i] = in[i];
+  for (int i = 0; i < d_size; i++)
+    d_temp[i] = in[i];
     
-    if (d_forward)
-      gsl_wavelet_transform_forward(d_wavelet,
-                                   d_temp,
-                                   1,
-                                   d_size,
-                                   d_workspace);
-    else
-      gsl_wavelet_transform_inverse(d_wavelet,
-                                   d_temp,
-                                   1,
-                                   d_size,
-                                   d_workspace);
+  if (d_forward)
+    gsl_wavelet_transform_forward(d_wavelet,
+                                 d_temp,
+                                 1,
+                                 d_size,
+                                 d_workspace);
+  else
+    gsl_wavelet_transform_inverse(d_wavelet,
+                                 d_temp,
+                                 1,
+                                 d_size,
+                                 d_workspace);
     
-    for (int i = 0; i < noutput_items; i++)
-      out[i] = d_temp[i];
+  for (int i = 0; i < noutput_items; i++)
+    out[i] = d_temp[i];
 
-    in  += d_size;
-    out += d_size;
-  }
-
   return noutput_items;
 }

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.h
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.h
 2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wavelet_ff.h
 2008-10-25 19:02:07 UTC (rev 9836)
@@ -62,9 +62,9 @@
 public:
   ~gr_wavelet_ff();
 
-  int work (int noutput_items,
-           gr_vector_const_void_star &input_items,
-           gr_vector_void_star &output_items);
+  int work(int noutput_items,
+          gr_vector_const_void_star &input_items,
+          gr_vector_void_star &output_items);
 };
 
 #endif /* INCLUDED_GR_WAVELET_FF_H */

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wvps_ff.cc
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wvps_ff.cc
   2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/lib/general/gr_wvps_ff.cc
   2008-10-25 19:02:07 UTC (rev 9836)
@@ -44,8 +44,8 @@
 
 gr_wvps_ff::gr_wvps_ff(int ilen)
   : gr_sync_block("wvps_ff",
-                 gr_make_io_signature(1, 1, sizeof(float) * ilen),
-                 gr_make_io_signature(1, 1, sizeof(float) * np2(ilen))),
+                 gr_make_io_signature(1, 1, sizeof(float)),
+                 gr_make_io_signature(1, 1, sizeof(float))),
     d_ilen(ilen)
 {
   d_olen = np2(d_ilen);

Modified: 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/python/gnuradio/gr/qa_classify.py
===================================================================
--- 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/python/gnuradio/gr/qa_classify.py
   2008-10-25 15:31:13 UTC (rev 9835)
+++ 
gnuradio/branches/developers/eb/frank/gnuradio-core/src/python/gnuradio/gr/qa_classify.py
   2008-10-25 19:02:07 UTC (rev 9836)
@@ -8,6 +8,14 @@
 def sqr(x):
     return x*x
 
+def np2(k):
+    m = 0
+    n = k - 1
+    while n > 0:
+        m += 1
+    return m
+
+
 class qa_classify(gr_unittest.TestCase):
 
     def setUp(self):
@@ -16,20 +24,20 @@
     def tearDown(self):
         self.tb = None
 
-    def test_000_(self):
-        src_data = numpy.zeros(10)
-        trg_data = numpy.zeros(10)
-        src = gr.vector_source_f(src_data)
-        dst = gr.vector_sink_f()
-        self.tb.connect(src, dst)
-        self.tb.run()
-        rsl_data = dst.data()
-        sum = 0
-        for (u,v) in zip(trg_data, rsl_data):
-            w = u - v
-            sum += w * w
-        sum /= float(len(trg_data))
-        assert sum < 1e-6
+#     def test_000_(self):
+#         src_data = numpy.zeros(10)
+#         trg_data = numpy.zeros(10)
+#         src = gr.vector_source_f(src_data)
+#         dst = gr.vector_sink_f()
+#         self.tb.connect(src, dst)
+#         self.tb.run()
+#         rsl_data = dst.data()
+#         sum = 0
+#         for (u,v) in zip(trg_data, rsl_data):
+#             w = u - v
+#             sum += w * w
+#         sum /= float(len(trg_data))
+#         assert sum < 1e-6
 
     def test_001_(self):
         src_data = numpy.array([-1.0, 1.0, -1.0, 1.0])
@@ -71,9 +79,9 @@
         assert sum < 1e-6
         
     def test_003_(self):
-        src_grid = numpy.array([0.0, 1.0, 2.0, 3.0, 4.0])
+        src_grid = (0.0, 1.0, 2.0, 3.0, 4.0)
         trg_grid = copy.deepcopy(src_grid)
-        src_data = numpy.array([0.0, 1.0, 0.0, 1.0, 0.0])
+        src_data = (0.0, 1.0, 0.0, 1.0, 0.0)
 
         src = gr.vector_source_f(src_data)
         sq = gr.squash_ff(src_grid, trg_grid)
@@ -103,6 +111,7 @@
 
         src = gr.vector_source_f(b)
         wv = gr.wavelet_ff(n, o, True)
+
         dst = gr.vector_sink_f()
         self.tb.connect(src, wv)
         self.tb.connect(wv, dst)
@@ -110,7 +119,7 @@
         e = dst.data()
 
         sum = 0
-        for (u, v) in zip(c, e):
+        for (u, v) in zip(b, d):
             w = u - v
             sum += w * w
         sum /= float(len(c))
@@ -118,11 +127,9 @@
 
     def test_005_(self):
 
-        src_data = numpy.array([1.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 
7.0]).astype(numpy.float)
-        trg_data = numpy.array([1.0, 3.0, 5.0, 7.0]).astype(numpy.float)
+        src_data = (1.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0)
 
-        dwav = src_data
-        print 'dwav = ', dwav
+        dwav = numpy.array(src_data)
         wvps = numpy.zeros(3)
         # wavelet power spectrum
         scl = 1.0/sqr(dwav[0])
@@ -131,21 +138,16 @@
             wvps[e] = scl*sqr(dwav[k:k+(01<<e)]).sum()
             k += 01<<e
 
-        print 'wvps = ', wvps
-
-        print 'src_data = ', src_data
-
         src = gr.vector_source_f(src_data)
         kon = gr.wvps_ff(len(src_data))
         dst = gr.vector_sink_f()
 
         self.tb.connect(src, kon)
         self.tb.connect(kon, dst)
+
         self.tb.run()
         snk_data = dst.data()
 
-        print len(snk_data), snk_data
-
         sum = 0
         for (u,v) in zip(snk_data, wvps):
             w = u - v





reply via email to

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