Implements ticket:207
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 27 Nov 2007 19:15:30 +0000 (19:15 +0000)
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>
Tue, 27 Nov 2007 19:15:30 +0000 (19:15 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@7042 221aa14e-8319-0410-a670-987f0aec2ac5

18 files changed:
gr-trellis/doc/test_tcm.py
gr-trellis/doc/test_tcm.py.xml
gr-trellis/doc/test_viterbi_equalization1.py
gr-trellis/doc/test_viterbi_equalization1.py.xml
gr-trellis/src/examples/test_sccc_hard.py
gr-trellis/src/examples/test_sccc_soft.py
gr-trellis/src/examples/test_sccc_turbo.py
gr-trellis/src/examples/test_tcm.py
gr-trellis/src/examples/test_tcm1.py
gr-trellis/src/examples/test_tcm2.py
gr-trellis/src/examples/test_tcm_combined.py
gr-trellis/src/examples/test_tcm_parallel.py
gr-trellis/src/examples/test_turbo_equalization.py
gr-trellis/src/examples/test_turbo_equalization1.py
gr-trellis/src/examples/test_turbo_equalization2.py
gr-trellis/src/examples/test_viterbi_equalization.py
gr-trellis/src/examples/test_viterbi_equalization1.py
gr-trellis/src/python/qa_trellis.py

index e2429b80c0057033c721d9c411303d0ce5cd94a2..0472535c1c6f9db5c6a48aba3d42f9da80a58218 100644 (file)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     src = gr.lfsr_32k_source_s()
@@ -29,13 +29,13 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s(); 
 
-    fg.connect (src,src_head,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics)
-    fg.connect (metrics,va,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics)
+    tb.connect (metrics,va,fsmi2s,dst)
     
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state.
index c8d11d303f626749767ded29c1916ff09e5b817b..b957f682d1f29577f19f3c3556e37eb2d966e4c9 100644 (file)
@@ -12,7 +12,7 @@
  10  import fsm_utils
  11  
  12  def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
- 13      fg = gr.flow_graph ()
+ 13      tb = gr.top_block ()
  14  
  15      # TX
  16      src = gr.lfsr_32k_source_s()
  29      fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
  30      dst = gr.check_lfsr_32k_s(); 
  31  
- 32      fg.connect (src,src_head,s2fsmi,enc,mod)
- 33      fg.connect (mod,(add,0))
- 34      fg.connect (noise,(add,1))
- 35      fg.connect (add,metrics)
- 36      fg.connect (metrics,va,fsmi2s,dst)
+ 32      tb.connect (src,src_head,s2fsmi,enc,mod)
+ 33      tb.connect (mod,(add,0))
+ 34      tb.connect (noise,(add,1))
+ 35      tb.connect (add,metrics)
+ 36      tb.connect (metrics,va,fsmi2s,dst)
  37      
- 38      fg.run()
+ 38      tb.run()
  39      
  40      # A bit of cheating: run the program once and print the 
  41      # final encoder state.
index 57d617aa02df67c74b7acfad923a9057cd1c3314..93b852e85a15b4d72c7ca3dc45c92ac0301cec07 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
     L = len(channel)
 
     # TX
@@ -37,14 +37,14 @@ def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constel
     va = trellis.viterbi_combined_s(f,K+L,0,0,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # using viterbi_combined_s instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
     dst = gr.vector_sink_s()
 
-    fg.connect (src,mod)
-    fg.connect (mod,isi,(add,0))
-    fg.connect (noise,(add,1))
-    #fg.connect (add,metrics)
-    #fg.connect (metrics,va,dst)
-    fg.connect (add,skip,va,dst)
+    tb.connect (src,mod)
+    tb.connect (mod,isi,(add,0))
+    tb.connect (noise,(add,1))
+    #tb.connect (add,metrics)
+    #tb.connect (metrics,va,dst)
+    tb.connect (add,skip,va,dst)
 
-    fg.run()
+    tb.run()
 
     data = dst.data() 
     ntotal = len(data) - L
index 4ea83be9937dd2b96096913c425990e77a918de8..a97d04d6e49eaf8d371ef504220879d4fc650eca 100644 (file)
@@ -12,7 +12,7 @@
  10  import fsm_utils
  11  
  12  def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constellation,N0,seed):
- 13      fg = gr.flow_graph ()
+ 13      tb = gr.top_block ()
  14      L = len(channel)
  15  
  16      # TX
  37      va = trellis.viterbi_combined_s(f,K+L,0,0,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # using viterbi_combined_s instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
  38      dst = gr.vector_sink_s()
  39  
- 40      fg.connect (src,mod)
- 41      fg.connect (mod,isi,(add,0))
- 42      fg.connect (noise,(add,1))
- 43      #fg.connect (add,metrics)
- 44      #fg.connect (metrics,va,dst)
- 45      fg.connect (add,skip,va,dst)
+ 40      tb.connect (src,mod)
+ 41      tb.connect (mod,isi,(add,0))
+ 42      tb.connect (noise,(add,1))
+ 43      #tb.connect (add,metrics)
+ 44      #tb.connect (metrics,va,dst)
+ 45      tb.connect (add,skip,va,dst)
  46  
- 47      fg.run()
+ 47      tb.run()
  48  
  49      data = dst.data() 
  50      ntotal = len(data) - L
index d634282fe75ae5857521644ff26b89aee74dc02e..a7933a18e1a10b2434052e0bf7145cfb2a45d198 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
 
     # TX
@@ -35,13 +35,13 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s()
     
-    fg.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics_in)
-    fg.connect (metrics_in,va_in,deinter,metrics_out,va_out,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics_in)
+    tb.connect (metrics_in,va_in,deinter,metrics_out,va_out,fsmi2s,dst)
 
-    fg.run()
+    tb.run()
     
     ntotal = dst.ntotal ()
     nright = dst.nright ()
index 23e6553ca19e884e946ae5c2971df283b9b39400..d96d36e3fbd669922a5af9dc6d049a12a112bd48 100755 (executable)
@@ -13,7 +13,7 @@ import fsm_utils
 
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
 
     # TX
@@ -38,15 +38,15 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s()
     
-    fg.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics_in)
-    fg.connect (gnd,(siso_in,0))
-    fg.connect (metrics_in,(siso_in,1))
-    fg.connect (siso_in,deinter,va_out,fsmi2s,dst)
-
-    fg.run()
+    tb.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics_in)
+    tb.connect (gnd,(siso_in,0))
+    tb.connect (metrics_in,(siso_in,1))
+    tb.connect (siso_in,deinter,va_out,fsmi2s,dst)
+
+    tb.run()
     
     ntotal = dst.ntotal ()
     nright = dst.nright ()
index f67fb09223c4e905d107f79aeb3ddb273846d9e6..f3a856de7f5d678a79e346427ad1423300c31034 100755 (executable)
@@ -11,7 +11,7 @@ import fsm_utils
 
 
 
-def make_rx(fg,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,type):
+def make_rx(tb,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,type):
     metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
     scale = gr.multiply_const_ff(1.0/N0)
     gnd = gr.vector_source_f([0],True);
@@ -32,27 +32,27 @@ def make_rx(fg,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,type):
         siso_out.append( trellis.viterbi_s(fo,K,0,-1) ) # no soft outputs needed
 
     # connect first stage
-    fg.connect (gnd,inter[0])
-    fg.connect (metrics_in,scale)
-    fg.connect (scale,(siso_in[0],1))
+    tb.connect (gnd,inter[0])
+    tb.connect (metrics_in,scale)
+    tb.connect (scale,(siso_in[0],1))
 
     # connect the rest
     for it in range(IT):
       if it < IT-1:
-        fg.connect (metrics_in,(siso_in[it+1],1))
-        fg.connect (siso_in[it],deinter[it],(siso_out[it],1))
-        fg.connect (gnd,(siso_out[it],0))
-        fg.connect (siso_out[it],inter[it+1])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (metrics_in,(siso_in[it+1],1))
+        tb.connect (siso_in[it],deinter[it],(siso_out[it],1))
+        tb.connect (gnd,(siso_out[it],0))
+        tb.connect (siso_out[it],inter[it+1])
+        tb.connect (inter[it],(siso_in[it],0))
       else:
-        fg.connect (siso_in[it],deinter[it],siso_out[it])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (siso_in[it],deinter[it],siso_out[it])
+        tb.connect (inter[it],(siso_in[it],0))
 
     return (metrics_in,siso_out[IT-1])
 
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,Es,N0,IT,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
 
     # TX
@@ -69,18 +69,18 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
     noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
 
     # RX
-    (head,tail) = make_rx(fg,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM)
-    #(head,tail) = make_rx(fg,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_SUM_PRODUCT)
+    (head,tail) = make_rx(tb,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM)
+    #(head,tail) = make_rx(tb,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_SUM_PRODUCT)
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s()
     
-    fg.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,head)
-    fg.connect (tail,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,head)
+    tb.connect (tail,fsmi2s,dst)
 
-    fg.run()
+    tb.run()
  
     #print enc_out.ST(), enc_in.ST()
     
index f2250155800509bef4825a492dbb9db8fea114be..62e0c413adc7dcab8f5a19fe03611ad144d5b6a7 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
 
     # TX
@@ -38,16 +38,16 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
     dst = gr.check_lfsr_32k_s()
     
 
-    fg.connect (src,src_head,s2fsmi,enc,mod)
-    #fg.connect (src,b2s,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics)
-    fg.connect (metrics,va,fsmi2s,dst)
-    #fg.connect (metrics,va,fsmi2s,s2b,dst)
+    tb.connect (src,src_head,s2fsmi,enc,mod)
+    #tb.connect (src,b2s,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics)
+    tb.connect (metrics,va,fsmi2s,dst)
+    #tb.connect (metrics,va,fsmi2s,s2b,dst)
     
 
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state..
index 66d7131e38272b6be2062fac3ed313d9da9a04fc..746bd93364d6443678162cf733212ac9b60eda5f 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     packet = [0]*Kb
@@ -40,16 +40,16 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
     #dst = gr.check_lfsr_32k_s(); 
     
 
-    #fg.connect (src,src_head,s2fsmi,enc,mod)
-    fg.connect (src,b2s,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics)
-    #fg.connect (metrics,va,fsmi2s,dst)
-    fg.connect (metrics,va,fsmi2s,s2b,dst)
+    #tb.connect (src,src_head,s2fsmi,enc,mod)
+    tb.connect (src,b2s,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics)
+    #tb.connect (metrics,va,fsmi2s,dst)
+    tb.connect (metrics,va,fsmi2s,s2b,dst)
     
 
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state..
index 9680909ea6c511c5058f5062f73c5905a2982cdb..e527fc5ed7052124aa02efdc687e661eac795263 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
 
     # TX
@@ -38,16 +38,16 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
     dst = gr.check_lfsr_32k_s()
     
 
-    fg.connect (src,src_head,s2fsmi,enc,mod)
-    #fg.connect (src,b2s,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics)
-    fg.connect (metrics,va,fsmi2s,dst)
-    #fg.connect (metrics,va,fsmi2s,s2b,dst)
+    tb.connect (src,src_head,s2fsmi,enc,mod)
+    #tb.connect (src,b2s,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics)
+    tb.connect (metrics,va,fsmi2s,dst)
+    #tb.connect (metrics,va,fsmi2s,s2b,dst)
     
 
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state..
index 92e020bea3d964bcfbbf59e16f2c5e615e8fc490..d2d42b40b7e005ba8b00cccdebe4fe0f3978f2ba 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     src = gr.lfsr_32k_source_s()
@@ -30,13 +30,13 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
     dst = gr.check_lfsr_32k_s(); 
     
 
-    fg.connect (src,src_head,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,va,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,va,fsmi2s,dst)
     
 
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state..
index f9dcb5852607306520c10cabe11e0b97923f9e87..8e2f5a230b2d4eabfc379f7f0f1deb0aa2c8e587 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed,P):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     src = gr.lfsr_32k_source_s()
@@ -33,17 +33,17 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed,P):
     fsmi2s=gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s()
 
-    fg.connect (src,src_head,s2fsmi,s2p)
+    tb.connect (src,src_head,s2fsmi,s2p)
     for i in range(P):
-        fg.connect ((s2p,i),(enc,i),(mod,i))
-        fg.connect ((mod,i),(add[i],0))
-        fg.connect (noise[i],(add[i],1))
-        fg.connect (add[i],(metrics,i))
-        fg.connect ((metrics,i),(va,i),(p2s,i))
-    fg.connect (p2s,fsmi2s,dst)
+        tb.connect ((s2p,i),(enc,i),(mod,i))
+        tb.connect ((mod,i),(add[i],0))
+        tb.connect (noise[i],(add[i],1))
+        tb.connect (add[i],(metrics,i))
+        tb.connect ((metrics,i),(va,i),(p2s,i))
+    tb.connect (p2s,fsmi2s,dst)
     
 
-    fg.run()
+    tb.run()
     
     # A bit of cheating: run the program once and print the 
     # final encoder state.
index ff0497e2b05e95a80f7026a090221fdfbd3321c6..612f6951c6770bf9f80605d2aab77a90044c8b97 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import fsm_utils
 
 
-def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
+def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
     metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
     scale = gr.multiply_const_ff(1.0/N0)
     gnd = gr.vector_source_f([0],True);
@@ -30,27 +30,27 @@ def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,typ
         siso_out.append( trellis.viterbi_s(fo,K,0,-1) ) # no soft outputs needed
 
     # connect first stage
-    fg.connect (gnd,inter[0])
-    fg.connect (metrics_in,scale)
-    fg.connect (scale,(siso_in[0],1))
+    tb.connect (gnd,inter[0])
+    tb.connect (metrics_in,scale)
+    tb.connect (scale,(siso_in[0],1))
 
     # connect the rest
     for it in range(IT):
       if it < IT-1:
-        fg.connect (metrics_in,(siso_in[it+1],1))
-        fg.connect (siso_in[it],deinter[it],(siso_out[it],1))
-        fg.connect (gnd,(siso_out[it],0))
-        fg.connect (siso_out[it],inter[it+1])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (metrics_in,(siso_in[it+1],1))
+        tb.connect (siso_in[it],deinter[it],(siso_out[it],1))
+        tb.connect (gnd,(siso_out[it],0))
+        tb.connect (siso_out[it],inter[it+1])
+        tb.connect (inter[it],(siso_in[it],0))
       else:
-        fg.connect (siso_in[it],deinter[it],siso_out[it])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (siso_in[it],deinter[it],siso_out[it])
+        tb.connect (inter[it],(siso_in[it],0))
    
     return (metrics_in,siso_out[IT-1])
 
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,tot_constellation,Es,N0,IT,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     src = gr.lfsr_32k_source_s()
@@ -67,17 +67,17 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,tot_constellat
     noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
     
     # RX
-    (head,tail) = make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
+    (head,tail) = make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s(); 
     
-    fg.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,head)
-    fg.connect (tail,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc_out,inter,enc_in,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,head)
+    tb.connect (tail,fsmi2s,dst)
     
-    fg.run()
+    tb.run()
 
     ntotal = dst.ntotal ()
     nright = dst.nright ()
index 5afd5ba66ee6067b2ed152ad0d06c90879b1c80d..8d2feec8adefdbce71f7487996e7e294c53f451d 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import random
 import fsm_utils
 
-def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
+def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
     metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
     scale = gr.multiply_const_ff(1.0/N0)
     gnd = gr.vector_source_f([0],True);
@@ -30,27 +30,27 @@ def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,typ
         siso_out.append( trellis.viterbi_s(fo,K,0,-1) ) # no soft outputs needed
 
     # connect first stage
-    fg.connect (gnd,inter[0])
-    fg.connect (metrics_in,scale)
-    fg.connect (scale,(siso_in[0],1))
+    tb.connect (gnd,inter[0])
+    tb.connect (metrics_in,scale)
+    tb.connect (scale,(siso_in[0],1))
 
     # connect the rest
     for it in range(IT):
       if it < IT-1:
-        fg.connect (scale,(siso_in[it+1],1))
-        fg.connect (siso_in[it],deinter[it],(siso_out[it],1))
-        fg.connect (gnd,(siso_out[it],0))
-        fg.connect (siso_out[it],inter[it+1])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (scale,(siso_in[it+1],1))
+        tb.connect (siso_in[it],deinter[it],(siso_out[it],1))
+        tb.connect (gnd,(siso_out[it],0))
+        tb.connect (siso_out[it],inter[it+1])
+        tb.connect (inter[it],(siso_in[it],0))
       else:
-        fg.connect (siso_in[it],deinter[it],siso_out[it])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (siso_in[it],deinter[it],siso_out[it])
+        tb.connect (inter[it],(siso_in[it],0))
 
     return (metrics_in,siso_out[IT-1])
 
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constellation,Es,N0,IT,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
     L = len(channel)
 
     # TX
@@ -70,16 +70,16 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,channel,modulation,dimensiona
     noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
     
     # RX
-    (head,tail) = make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
+    (head,tail) = make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
     dst = gr.vector_sink_s(); 
     
-    fg.connect (src,enc_out,inter,mod)
-    fg.connect (mod,isi,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,head)
-    fg.connect (tail,dst)
+    tb.connect (src,enc_out,inter,mod)
+    tb.connect (mod,isi,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,head)
+    tb.connect (tail,dst)
     
-    fg.run()
+    tb.run()
 
     data = dst.data()
     ntotal = len(data)
index 7e252d6d10f3cad741908f982af8eef4be4b07fd..f1731016e0ca40fbf57c173b791b63dd2efb39ad 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import random
 import fsm_utils
 
-def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
+def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
     scale = gr.multiply_const_ff(math.sqrt(1.0/N0))
     gnd = gr.vector_source_f([0],True);
 
@@ -29,26 +29,26 @@ def make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,typ
         siso_out.append( trellis.viterbi_s(fo,K,0,-1) ) # no soft outputs needed
 
     # connect first stage
-    fg.connect (gnd,inter[0])
-    fg.connect (scale,(siso_in[0],1))
+    tb.connect (gnd,inter[0])
+    tb.connect (scale,(siso_in[0],1))
 
     # connect the rest
     for it in range(IT):
       if it < IT-1:
-        fg.connect (scale,(siso_in[it+1],1))
-        fg.connect (siso_in[it],deinter[it],(siso_out[it],1))
-        fg.connect (gnd,(siso_out[it],0))
-        fg.connect (siso_out[it],inter[it+1])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (scale,(siso_in[it+1],1))
+        tb.connect (siso_in[it],deinter[it],(siso_out[it],1))
+        tb.connect (gnd,(siso_out[it],0))
+        tb.connect (siso_out[it],inter[it+1])
+        tb.connect (inter[it],(siso_in[it],0))
       else:
-        fg.connect (siso_in[it],deinter[it],siso_out[it])
-        fg.connect (inter[it],(siso_in[it],0))
+        tb.connect (siso_in[it],deinter[it],siso_out[it])
+        tb.connect (inter[it],(siso_in[it],0))
 
     return (scale,siso_out[IT-1])
 
 
 def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constellation,Es,N0,IT,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
     L = len(channel)
 
     # TX
@@ -68,16 +68,16 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,channel,modulation,dimensiona
     noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
     
     # RX
-    (head,tail) = make_rx(fg,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
+    (head,tail) = make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,trellis.TRELLIS_MIN_SUM) 
     dst = gr.vector_sink_s(); 
     
-    fg.connect (src,enc_out,inter,mod)
-    fg.connect (mod,isi,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,head)
-    fg.connect (tail,dst)
+    tb.connect (src,enc_out,inter,mod)
+    tb.connect (mod,isi,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,head)
+    tb.connect (tail,dst)
     
-    fg.run()
+    tb.run()
 
     data = dst.data()
     ntotal = len(data)
index 24545e3b0d46e001ddc2448d35e51ba832e73de1..86fc006742c43fe209f9f615c3004c0718930b0e 100755 (executable)
@@ -9,7 +9,7 @@ import sys
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,dimensionality,tot_constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
 
     # TX
     src = gr.lfsr_32k_source_s()
@@ -29,13 +29,13 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,tot_constellation,N0,seed):
     fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
     dst = gr.check_lfsr_32k_s(); 
     
-    fg.connect (src,src_head,s2fsmi,enc,mod)
-    fg.connect (mod,(add,0))
-    fg.connect (noise,(add,1))
-    fg.connect (add,metrics)
-    fg.connect (metrics,va,fsmi2s,dst)
+    tb.connect (src,src_head,s2fsmi,enc,mod)
+    tb.connect (mod,(add,0))
+    tb.connect (noise,(add,1))
+    tb.connect (add,metrics)
+    tb.connect (metrics,va,fsmi2s,dst)
     
-    fg.run()
+    tb.run()
 
     ntotal = dst.ntotal ()
     nright = dst.nright ()
index 002d41a76753eeb0e3c0b407db6d6cee89477151..d26f73bc0f90037cd386887d7568515a6cd03cd2 100755 (executable)
@@ -10,7 +10,7 @@ import random
 import fsm_utils
 
 def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constellation,N0,seed):
-    fg = gr.flow_graph ()
+    tb = gr.top_block ()
     L = len(channel)
 
     # TX
@@ -37,14 +37,14 @@ def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constel
     va = trellis.viterbi_combined_fs(f,K+L,0,0,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # using viterbi_combined_fs instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
     dst = gr.vector_sink_s()
 
-    fg.connect (src,mod)
-    fg.connect (mod,isi,(add,0))
-    fg.connect (noise,(add,1))
-    #fg.connect (add,metrics)
-    #fg.connect (metrics,va,dst)
-    fg.connect (add,skip,va,dst)
+    tb.connect (src,mod)
+    tb.connect (mod,isi,(add,0))
+    tb.connect (noise,(add,1))
+    #tb.connect (add,metrics)
+    #tb.connect (metrics,va,dst)
+    tb.connect (add,skip,va,dst)
 
-    fg.run()
+    tb.run()
 
     data = dst.data() 
     ntotal = len(data) - L
index 27cea8e8732078706642e5df316f0fdd623a5395..306bf994df2259fa87811f4f87d1f2245e9a4c5f 100755 (executable)
@@ -26,10 +26,10 @@ import trellis
 class qa_trellis (gr_unittest.TestCase):
 
     def setUp (self):
-        self.fg = gr.flow_graph ()
+        self.tb = gr.top_block ()
 
     def tearDown (self):
-        self.fg = None
+        self.tb = None
 
     def test_001_fsm (self):
         I = 2