From 1c8a3d0915f5295efb3c651932e6bd15f3d4e83b Mon Sep 17 00:00:00 2001
From: Timo Juhani Lindfors <timo.lindfors@iki.fi>
Date: Fri, 8 Feb 2013 08:54:01 +0000
Subject: [PATCH 2/2] use gr_channel_model instead of channel_model

channel_model is not available in gnuradio 3.6
---
 mpsk_stage2.grc   |  244 +++++++++++++++++++++++--------------------------
 mpsk_stage2.py    |   30 +++----
 mpsk_stage3.grc   |  204 ++++++++++++++++++++---------------------
 mpsk_stage3.py    |   31 +++----
 mpsk_stage4.grc   |  158 ++++++++++++++++----------------
 mpsk_stage4.py    |   30 +++----
 mpsk_stage5.grc   |  260 ++++++++++++++++++++++++++---------------------------
 mpsk_stage5.py    |   30 +++----
 multipath_sim.grc |  108 +++++++++++-----------
 multipath_sim.py  |   12 ++-
 10 files changed, 532 insertions(+), 575 deletions(-)

diff --git a/mpsk_stage2.grc b/mpsk_stage2.grc
index 3749a0c..674fd8e 100644
--- a/mpsk_stage2.grc
+++ b/mpsk_stage2.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Sep 22 13:27:55 2012</timestamp>
+  <timestamp>Fri Feb  8 08:57:43 2013</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -365,37 +365,6 @@
     </param>
   </block>
   <block>
-    <key>gr_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>gr_multiply_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>complex(.5,.5)</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(482, 108)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>random_source_x</key>
     <param>
       <key>id</key>
@@ -435,45 +404,6 @@
     </param>
   </block>
   <block>
-    <key>channel_model</key>
-    <param>
-      <key>id</key>
-      <value>channel_model_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>noise_voltage</key>
-      <value>noise_volt</value>
-    </param>
-    <param>
-      <key>freq_offset</key>
-      <value>freq_offset</value>
-    </param>
-    <param>
-      <key>epsilon</key>
-      <value>time_offset</value>
-    </param>
-    <param>
-      <key>taps</key>
-      <value>taps</value>
-    </param>
-    <param>
-      <key>seed</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(711, 76)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -520,37 +450,6 @@
     </param>
   </block>
   <block>
-    <key>gr_throttle</key>
-    <param>
-      <key>id</key>
-      <value>gr_throttle_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(152, 266)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>qtgui_sink_x</key>
     <param>
       <key>id</key>
@@ -585,10 +484,6 @@
       <value>samp_rate</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>10</value>
-    </param>
-    <param>
       <key>plotfreq</key>
       <value>False</value>
     </param>
@@ -609,10 +504,6 @@
       <value>0,0,1,1</value>
     </param>
     <param>
-      <key>freqchangevar</key>
-      <value>None</value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(798, 221)</value>
     </param>
@@ -656,10 +547,6 @@
       <value>samp_rate</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>10</value>
-    </param>
-    <param>
       <key>plotfreq</key>
       <value>True</value>
     </param>
@@ -680,10 +567,6 @@
       <value></value>
     </param>
     <param>
-      <key>freqchangevar</key>
-      <value>None</value>
-    </param>
-    <param>
       <key>_coordinate</key>
       <value>(798, 453)</value>
     </param>
@@ -727,10 +610,6 @@
       <value>samp_rate</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>10</value>
-    </param>
-    <param>
       <key>plotfreq</key>
       <value>False</value>
     </param>
@@ -751,12 +630,109 @@
       <value>0,1,1,1</value>
     </param>
     <param>
-      <key>freqchangevar</key>
-      <value>None</value>
+      <key>_coordinate</key>
+      <value>(798, 338)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_multiply_const_vxx</key>
+    <param>
+      <key>id</key>
+      <value>gr_multiply_const_vxx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>const</key>
+      <value>complex(.5,.5)</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(798, 338)</value>
+      <value>(482, 108)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_throttle</key>
+    <param>
+      <key>id</key>
+      <value>gr_throttle_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(152, 266)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_channel_model</key>
+    <param>
+      <key>id</key>
+      <value>gr_channel_model_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>noise_voltage</key>
+      <value>noise_volt</value>
+    </param>
+    <param>
+      <key>freq_offset</key>
+      <value>freq_offset</value>
+    </param>
+    <param>
+      <key>epsilon</key>
+      <value>time_offset</value>
+    </param>
+    <param>
+      <key>taps</key>
+      <value>taps</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(711, 76)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -776,32 +752,32 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
-    <sink_block_id>channel_model_0</sink_block_id>
+    <source_block_id>gr_throttle_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
-    <sink_block_id>gr_throttle_0</sink_block_id>
+    <source_block_id>gr_throttle_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
     <source_block_id>gr_throttle_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0</sink_block_id>
+    <sink_block_id>qtgui_sink_x_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_throttle_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+    <sink_block_id>gr_channel_model_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_throttle_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_1</sink_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
+    <sink_block_id>gr_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/mpsk_stage2.py b/mpsk_stage2.py
index f97a08f..791e458 100755
--- a/mpsk_stage2.py
+++ b/mpsk_stage2.py
@@ -2,16 +2,14 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Mpsk Stage2
-# Generated: Sun Sep 23 16:18:29 2012
+# Generated: Fri Feb  8 08:57:43 2013
 ##################################################
 
 from PyQt4 import Qt
 from gnuradio import digital
 from gnuradio import eng_notation
-from gnuradio import filter
 from gnuradio import gr
 from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
 from gnuradio.gr import firdes
 from gnuradio.qtgui import qtgui
 from optparse import OptionParser
@@ -130,6 +128,13 @@ class mpsk_stage2(gr.top_block, Qt.QWidget):
 		self.top_grid_layout.addWidget(self._qtgui_sink_x_0_win, 0,0,1,1)
 		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
 		self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((complex(.5,.5), ))
+		self.gr_channel_model_0 = gr.channel_model(
+			noise_voltage=noise_volt,
+			frequency_offset=freq_offset,
+			epsilon=time_offset,
+			taps=(taps),
+			noise_seed=0,
+		)
 		self.digital_psk_mod_0 = digital.psk.psk_mod(
 		  constellation_points=arity,
 		  mod_code="gray",
@@ -139,24 +144,17 @@ class mpsk_stage2(gr.top_block, Qt.QWidget):
 		  verbose=False,
 		  log=False,
 		  )
-		self.channel_model_0 = filter.channel_model(
-			noise_voltage=noise_volt,
-			frequency_offset=freq_offset,
-			epsilon=time_offset,
-			taps=(taps),
-			noise_seed=0,
-		)
 
 		##################################################
 		# Connections
 		##################################################
 		self.connect((self.digital_psk_mod_0, 0), (self.gr_multiply_const_vxx_0, 0))
 		self.connect((self.random_source_x_0, 0), (self.digital_psk_mod_0, 0))
-		self.connect((self.gr_multiply_const_vxx_0, 0), (self.channel_model_0, 0))
-		self.connect((self.channel_model_0, 0), (self.gr_throttle_0, 0))
 		self.connect((self.gr_throttle_0, 0), (self.qtgui_sink_x_0, 0))
 		self.connect((self.gr_throttle_0, 0), (self.qtgui_sink_x_0_0, 0))
 		self.connect((self.gr_throttle_0, 0), (self.qtgui_sink_x_0_1, 0))
+		self.connect((self.gr_multiply_const_vxx_0, 0), (self.gr_channel_model_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.gr_throttle_0, 0))
 
 	def get_time_offset(self):
 		return self.time_offset
@@ -164,14 +162,14 @@ class mpsk_stage2(gr.top_block, Qt.QWidget):
 	def set_time_offset(self, time_offset):
 		self.time_offset = time_offset
 		self._time_offset_slider.setValue(self.time_offset)
-		self.channel_model_0.set_timing_offset(self.time_offset)
+		self.gr_channel_model_0.set_timing_offset(self.time_offset)
 
 	def get_taps(self):
 		return self.taps
 
 	def set_taps(self, taps):
 		self.taps = taps
-		self.channel_model_0.set_taps((self.taps))
+		self.gr_channel_model_0.set_taps((self.taps))
 
 	def get_sps(self):
 		return self.sps
@@ -194,7 +192,7 @@ class mpsk_stage2(gr.top_block, Qt.QWidget):
 	def set_noise_volt(self, noise_volt):
 		self.noise_volt = noise_volt
 		self._noise_volt_slider.setValue(self.noise_volt)
-		self.channel_model_0.set_noise_voltage(self.noise_volt)
+		self.gr_channel_model_0.set_noise_voltage(self.noise_volt)
 
 	def get_freq_offset(self):
 		return self.freq_offset
@@ -202,7 +200,7 @@ class mpsk_stage2(gr.top_block, Qt.QWidget):
 	def set_freq_offset(self, freq_offset):
 		self.freq_offset = freq_offset
 		self._freq_offset_slider.setValue(self.freq_offset)
-		self.channel_model_0.set_frequency_offset(self.freq_offset)
+		self.gr_channel_model_0.set_frequency_offset(self.freq_offset)
 
 	def get_arity(self):
 		return self.arity
diff --git a/mpsk_stage3.grc b/mpsk_stage3.grc
index 55c5bd5..e9d4dcc 100644
--- a/mpsk_stage3.grc
+++ b/mpsk_stage3.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Sep 22 15:04:39 2012</timestamp>
+  <timestamp>Fri Feb  8 08:57:33 2013</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -536,37 +536,6 @@
     </param>
   </block>
   <block>
-    <key>gr_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>gr_multiply_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>complex(0.5,0.5)</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(264, 303)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -613,38 +582,62 @@
     </param>
   </block>
   <block>
-    <key>channel_model</key>
+    <key>qtgui_sink_x</key>
     <param>
       <key>id</key>
-      <value>channel_model_0</value>
+      <value>qtgui_sink_x_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>noise_voltage</key>
-      <value>noise_volt</value>
+      <key>type</key>
+      <value>complex</value>
     </param>
     <param>
-      <key>freq_offset</key>
-      <value>freq_offset</value>
+      <key>name</key>
+      <value>QT GUI Plot</value>
     </param>
     <param>
-      <key>epsilon</key>
-      <value>time_offset</value>
+      <key>fftsize</key>
+      <value>1024</value>
     </param>
     <param>
-      <key>taps</key>
-      <value>taps</value>
+      <key>wintype</key>
+      <value>firdes.WIN_BLACKMAN_hARRIS</value>
     </param>
     <param>
-      <key>seed</key>
+      <key>fc</key>
       <value>0</value>
     </param>
     <param>
+      <key>bw</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>plotfreq</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>plotwaterfall</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>plottime</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>plotconst</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value>0,1,1,1</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(522, 76)</value>
+      <value>(1060, 121)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -652,10 +645,10 @@
     </param>
   </block>
   <block>
-    <key>qtgui_sink_x</key>
+    <key>gr_multiply_const_vxx</key>
     <param>
       <key>id</key>
-      <value>qtgui_sink_x_0_0</value>
+      <value>gr_multiply_const_vxx_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -666,48 +659,71 @@
       <value>complex</value>
     </param>
     <param>
-      <key>name</key>
-      <value>QT GUI Plot</value>
+      <key>const</key>
+      <value>complex(0.5,0.5)</value>
     </param>
     <param>
-      <key>fftsize</key>
-      <value>1024</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
-      <key>wintype</key>
-      <value>firdes.WIN_BLACKMAN_hARRIS</value>
+      <key>_coordinate</key>
+      <value>(264, 303)</value>
     </param>
     <param>
-      <key>fc</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>digital_pfb_clock_sync_xxx</key>
+    <param>
+      <key>id</key>
+      <value>digital_pfb_clock_sync_xxx_0</value>
+    </param>
     <param>
-      <key>bw</key>
-      <value>samp_rate</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>plotfreq</key>
-      <value>False</value>
+      <key>type</key>
+      <value>ccf</value>
     </param>
     <param>
-      <key>plotwaterfall</key>
-      <value>False</value>
+      <key>sps</key>
+      <value>sps</value>
     </param>
     <param>
-      <key>plottime</key>
-      <value>False</value>
+      <key>alpha</key>
+      <value>0.1</value>
     </param>
     <param>
-      <key>plotconst</key>
-      <value>True</value>
+      <key>beta</key>
+      <value>0.25*0.1*0.1</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value>0,1,1,1</value>
+      <key>taps</key>
+      <value>rrc_taps</value>
+    </param>
+    <param>
+      <key>filter_size</key>
+      <value>nfilts</value>
+    </param>
+    <param>
+      <key>init_phase</key>
+      <value>nfilts/2</value>
+    </param>
+    <param>
+      <key>max_dev</key>
+      <value>1.5</value>
+    </param>
+    <param>
+      <key>osps</key>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1060, 121)</value>
+      <value>(762, 90)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -778,54 +794,38 @@
     </param>
   </block>
   <block>
-    <key>digital_pfb_clock_sync_xxx</key>
+    <key>gr_channel_model</key>
     <param>
       <key>id</key>
-      <value>digital_pfb_clock_sync_xxx_0</value>
+      <value>gr_channel_model_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>ccf</value>
-    </param>
-    <param>
-      <key>sps</key>
-      <value>sps</value>
+      <key>noise_voltage</key>
+      <value>noise_volt</value>
     </param>
     <param>
-      <key>alpha</key>
-      <value>0.1</value>
+      <key>freq_offset</key>
+      <value>freq_offset</value>
     </param>
     <param>
-      <key>beta</key>
-      <value>0.25*0.1*0.1</value>
+      <key>epsilon</key>
+      <value>time_offset</value>
     </param>
     <param>
       <key>taps</key>
-      <value>rrc_taps</value>
-    </param>
-    <param>
-      <key>filter_size</key>
-      <value>nfilts</value>
-    </param>
-    <param>
-      <key>init_phase</key>
-      <value>nfilts/2</value>
-    </param>
-    <param>
-      <key>max_dev</key>
-      <value>1.5</value>
+      <value>taps</value>
     </param>
     <param>
-      <key>osps</key>
-      <value>1</value>
+      <key>seed</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(762, 90)</value>
+      <value>(522, 76)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -851,26 +851,26 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
-    <sink_block_id>channel_model_0</sink_block_id>
+    <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
-    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+    <sink_block_id>gr_channel_model_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
+    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/mpsk_stage3.py b/mpsk_stage3.py
index a85c6eb..0abe694 100755
--- a/mpsk_stage3.py
+++ b/mpsk_stage3.py
@@ -2,16 +2,14 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Mpsk Stage3
-# Generated: Sun Sep 23 16:18:32 2012
+# Generated: Fri Feb  8 08:56:37 2013
 ##################################################
 
 from PyQt4 import Qt
 from gnuradio import digital
 from gnuradio import eng_notation
-from gnuradio import filter
 from gnuradio import gr
 from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
 from gnuradio.gr import firdes
 from gnuradio.qtgui import qtgui
 from optparse import OptionParser
@@ -131,6 +129,13 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 		self.top_grid_layout.addWidget(self._qtgui_sink_x_0_0_win, 0,1,1,1)
 		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
 		self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((complex(0.5,0.5), ))
+		self.gr_channel_model_0 = gr.channel_model(
+			noise_voltage=noise_volt,
+			frequency_offset=freq_offset,
+			epsilon=time_offset,
+			taps=(1.0 + 1.0j, ),
+			noise_seed=0,
+		)
 		self.digital_psk_mod_0 = digital.psk.psk_mod(
 		  constellation_points=arity,
 		  mod_code="gray",
@@ -142,13 +147,6 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 		  )
 		self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, 0.1, (rrc_taps), nfilts, nfilts/2, 1.5, 1)
 		self.digital_pfb_clock_sync_xxx_0.set_beta(0.25*0.1*0.1)
-		self.channel_model_0 = filter.channel_model(
-			noise_voltage=noise_volt,
-			frequency_offset=freq_offset,
-			epsilon=time_offset,
-			taps=(taps),
-			noise_seed=0,
-		)
 
 		##################################################
 		# Connections
@@ -156,10 +154,10 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 		self.connect((self.digital_psk_mod_0, 0), (self.gr_throttle_0, 0))
 		self.connect((self.random_source_x_0, 0), (self.digital_psk_mod_0, 0))
 		self.connect((self.gr_throttle_0, 0), (self.gr_multiply_const_vxx_0, 0))
-		self.connect((self.gr_multiply_const_vxx_0, 0), (self.channel_model_0, 0))
-		self.connect((self.channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
-		self.connect((self.channel_model_0, 0), (self.qtgui_sink_x_0_0_0, 0))
 		self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.qtgui_sink_x_0_0, 0))
+		self.connect((self.gr_multiply_const_vxx_0, 0), (self.gr_channel_model_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.qtgui_sink_x_0_0_0, 0))
 
 	def get_sps(self):
 		return self.sps
@@ -181,7 +179,7 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 	def set_time_offset(self, time_offset):
 		self.time_offset = time_offset
 		self._time_offset_slider.setValue(self.time_offset)
-		self.channel_model_0.set_timing_offset(self.time_offset)
+		self.gr_channel_model_0.set_timing_offset(self.time_offset)
 
 	def get_time_alpha(self):
 		return self.time_alpha
@@ -195,7 +193,6 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 
 	def set_taps(self, taps):
 		self.taps = taps
-		self.channel_model_0.set_taps((self.taps))
 
 	def get_samp_rate(self):
 		return self.samp_rate
@@ -218,7 +215,7 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 	def set_noise_volt(self, noise_volt):
 		self.noise_volt = noise_volt
 		self._noise_volt_slider.setValue(self.noise_volt)
-		self.channel_model_0.set_noise_voltage(self.noise_volt)
+		self.gr_channel_model_0.set_noise_voltage(self.noise_volt)
 
 	def get_freq_offset(self):
 		return self.freq_offset
@@ -226,7 +223,7 @@ class mpsk_stage3(gr.top_block, Qt.QWidget):
 	def set_freq_offset(self, freq_offset):
 		self.freq_offset = freq_offset
 		self._freq_offset_slider.setValue(self.freq_offset)
-		self.channel_model_0.set_frequency_offset(self.freq_offset)
+		self.gr_channel_model_0.set_frequency_offset(self.freq_offset)
 
 	def get_arity(self):
 		return self.arity
diff --git a/mpsk_stage4.grc b/mpsk_stage4.grc
index 2d6f0f8..6dd14e2 100644
--- a/mpsk_stage4.grc
+++ b/mpsk_stage4.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Sep 22 15:05:11 2012</timestamp>
+  <timestamp>Fri Feb  8 08:59:00 2013</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -591,37 +591,6 @@
     </param>
   </block>
   <block>
-    <key>gr_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>gr_multiply_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>complex(.5,0.5)</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(488, 159)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -645,45 +614,6 @@
     </param>
   </block>
   <block>
-    <key>channel_model</key>
-    <param>
-      <key>id</key>
-      <value>channel_model_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>noise_voltage</key>
-      <value>noise_volt</value>
-    </param>
-    <param>
-      <key>freq_offset</key>
-      <value>freq_offset</value>
-    </param>
-    <param>
-      <key>epsilon</key>
-      <value>time_offset</value>
-    </param>
-    <param>
-      <key>taps</key>
-      <value>taps</value>
-    </param>
-    <param>
-      <key>seed</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(709, 80)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -891,6 +821,76 @@
     </param>
   </block>
   <block>
+    <key>gr_multiply_const_vxx</key>
+    <param>
+      <key>id</key>
+      <value>gr_multiply_const_vxx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>const</key>
+      <value>complex(.5,0.5)</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(488, 159)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_channel_model</key>
+    <param>
+      <key>id</key>
+      <value>gr_channel_model_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>noise_voltage</key>
+      <value>noise_volt</value>
+    </param>
+    <param>
+      <key>freq_offset</key>
+      <value>freq_offset</value>
+    </param>
+    <param>
+      <key>epsilon</key>
+      <value>time_offset</value>
+    </param>
+    <param>
+      <key>taps</key>
+      <value>taps</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(709, 80)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
     <key>digital_pfb_clock_sync_xxx</key>
     <param>
       <key>id</key>
@@ -970,26 +970,26 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
-    <sink_block_id>channel_model_0</sink_block_id>
+    <source_block_id>digital_cma_equalizer_cc_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
-    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
+    <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_cma_equalizer_cc_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+    <sink_block_id>gr_channel_model_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
+    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/mpsk_stage4.py b/mpsk_stage4.py
index 0b86957..ec61871 100755
--- a/mpsk_stage4.py
+++ b/mpsk_stage4.py
@@ -2,16 +2,14 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Mpsk Stage4
-# Generated: Sun Sep 23 16:18:37 2012
+# Generated: Fri Feb  8 09:00:00 2013
 ##################################################
 
 from PyQt4 import Qt
 from gnuradio import digital
 from gnuradio import eng_notation
-from gnuradio import filter
 from gnuradio import gr
 from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
 from gnuradio.gr import firdes
 from gnuradio.qtgui import qtgui
 from optparse import OptionParser
@@ -143,6 +141,13 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 		self.top_grid_layout.addWidget(self._qtgui_sink_x_0_0_win, 0,1,1,1)
 		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
 		self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((complex(.5,0.5), ))
+		self.gr_channel_model_0 = gr.channel_model(
+			noise_voltage=noise_volt,
+			frequency_offset=freq_offset,
+			epsilon=time_offset,
+			taps=(taps),
+			noise_seed=0,
+		)
 		self.digital_psk_mod_0 = digital.psk.psk_mod(
 		  constellation_points=arity,
 		  mod_code="gray",
@@ -155,13 +160,6 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 		self.digital_pfb_clock_sync_xxx_0 = digital.pfb_clock_sync_ccf(sps, 0.1, (rrc_taps), nfilts, nfilts/2, 1.5, 2)
 		self.digital_pfb_clock_sync_xxx_0.set_beta(0.25*0.1*0.1)
 		self.digital_cma_equalizer_cc_0 = digital.cma_equalizer_cc(11, 1, eq_gain, 2)
-		self.channel_model_0 = filter.channel_model(
-			noise_voltage=noise_volt,
-			frequency_offset=freq_offset,
-			epsilon=time_offset,
-			taps=(taps),
-			noise_seed=0,
-		)
 
 		##################################################
 		# Connections
@@ -170,10 +168,10 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 		self.connect((self.gr_throttle_0, 0), (self.gr_multiply_const_vxx_0, 0))
 		self.connect((self.random_source_x_0, 0), (self.digital_psk_mod_0, 0))
 		self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.digital_cma_equalizer_cc_0, 0))
-		self.connect((self.gr_multiply_const_vxx_0, 0), (self.channel_model_0, 0))
-		self.connect((self.channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
 		self.connect((self.digital_cma_equalizer_cc_0, 0), (self.qtgui_sink_x_0_0, 0))
 		self.connect((self.digital_pfb_clock_sync_xxx_0, 0), (self.qtgui_sink_x_0_0_0, 0))
+		self.connect((self.gr_multiply_const_vxx_0, 0), (self.gr_channel_model_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
 
 	def get_sps(self):
 		return self.sps
@@ -195,7 +193,7 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 	def set_time_offset(self, time_offset):
 		self.time_offset = time_offset
 		self._time_offset_slider.setValue(self.time_offset)
-		self.channel_model_0.set_timing_offset(self.time_offset)
+		self.gr_channel_model_0.set_timing_offset(self.time_offset)
 
 	def get_time_alpha(self):
 		return self.time_alpha
@@ -209,7 +207,7 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 
 	def set_taps(self, taps):
 		self.taps = taps
-		self.channel_model_0.set_taps((self.taps))
+		self.gr_channel_model_0.set_taps((self.taps))
 
 	def get_samp_rate(self):
 		return self.samp_rate
@@ -232,7 +230,7 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 	def set_noise_volt(self, noise_volt):
 		self.noise_volt = noise_volt
 		self._noise_volt_slider.setValue(self.noise_volt)
-		self.channel_model_0.set_noise_voltage(self.noise_volt)
+		self.gr_channel_model_0.set_noise_voltage(self.noise_volt)
 
 	def get_freq_offset(self):
 		return self.freq_offset
@@ -240,7 +238,7 @@ class mpsk_stage4(gr.top_block, Qt.QWidget):
 	def set_freq_offset(self, freq_offset):
 		self.freq_offset = freq_offset
 		self._freq_offset_slider.setValue(self.freq_offset)
-		self.channel_model_0.set_frequency_offset(self.freq_offset)
+		self.gr_channel_model_0.set_frequency_offset(self.freq_offset)
 
 	def get_eq_gain(self):
 		return self.eq_gain
diff --git a/mpsk_stage5.grc b/mpsk_stage5.grc
index 20b1bd8..15b230a 100644
--- a/mpsk_stage5.grc
+++ b/mpsk_stage5.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Sep 22 15:58:14 2012</timestamp>
+  <timestamp>Fri Feb  8 09:00:52 2013</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -637,76 +637,6 @@
     </param>
   </block>
   <block>
-    <key>gr_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>gr_multiply_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>0.5</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(463, 177)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>channel_model</key>
-    <param>
-      <key>id</key>
-      <value>channel_model_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>noise_voltage</key>
-      <value>noise_volt</value>
-    </param>
-    <param>
-      <key>freq_offset</key>
-      <value>freq_offset</value>
-    </param>
-    <param>
-      <key>epsilon</key>
-      <value>time_offset</value>
-    </param>
-    <param>
-      <key>taps</key>
-      <value>taps</value>
-    </param>
-    <param>
-      <key>seed</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(680, 79)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>digital_costas_loop_cc</key>
     <param>
       <key>id</key>
@@ -852,10 +782,10 @@
     </param>
   </block>
   <block>
-    <key>digital_pfb_clock_sync_xxx</key>
+    <key>qtgui_sink_x</key>
     <param>
       <key>id</key>
-      <value>digital_pfb_clock_sync_xxx_0</value>
+      <value>qtgui_sink_x_0_0_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -863,43 +793,86 @@
     </param>
     <param>
       <key>type</key>
-      <value>ccf</value>
+      <value>complex</value>
     </param>
     <param>
-      <key>sps</key>
-      <value>sps</value>
+      <key>name</key>
+      <value>QT GUI Plot</value>
     </param>
     <param>
-      <key>alpha</key>
-      <value>0.1</value>
+      <key>fftsize</key>
+      <value>1024</value>
     </param>
     <param>
-      <key>beta</key>
-      <value>0.25*0.1*0.1</value>
+      <key>wintype</key>
+      <value>firdes.WIN_BLACKMAN_hARRIS</value>
     </param>
     <param>
-      <key>taps</key>
-      <value>rrc_taps</value>
+      <key>fc</key>
+      <value>0</value>
     </param>
     <param>
-      <key>filter_size</key>
-      <value>nfilts</value>
+      <key>bw</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>init_phase</key>
-      <value>nfilts/2</value>
+      <key>plotfreq</key>
+      <value>False</value>
     </param>
     <param>
-      <key>max_dev</key>
-      <value>1.5</value>
+      <key>plotwaterfall</key>
+      <value>False</value>
     </param>
     <param>
-      <key>osps</key>
+      <key>plottime</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>plotconst</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value>0,0,1,1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(1117, 137)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>digital_cma_equalizer_cc</key>
+    <param>
+      <key>id</key>
+      <value>digital_cma_equalizer_cc_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>num_taps</key>
+      <value>15</value>
+    </param>
+    <param>
+      <key>modulus</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>mu</key>
+      <value>eq_gain</value>
+    </param>
+    <param>
+      <key>sps</key>
       <value>2</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(570, 273)</value>
+      <value>(842, 254)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -907,10 +880,10 @@
     </param>
   </block>
   <block>
-    <key>qtgui_sink_x</key>
+    <key>gr_multiply_const_vxx</key>
     <param>
       <key>id</key>
-      <value>qtgui_sink_x_0_0_0_0</value>
+      <value>gr_multiply_const_vxx_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -921,48 +894,55 @@
       <value>complex</value>
     </param>
     <param>
-      <key>name</key>
-      <value>QT GUI Plot</value>
+      <key>const</key>
+      <value>0.5</value>
     </param>
     <param>
-      <key>fftsize</key>
-      <value>1024</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
-      <key>wintype</key>
-      <value>firdes.WIN_BLACKMAN_hARRIS</value>
+      <key>_coordinate</key>
+      <value>(463, 177)</value>
     </param>
     <param>
-      <key>fc</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>gr_channel_model</key>
     <param>
-      <key>bw</key>
-      <value>samp_rate</value>
+      <key>id</key>
+      <value>gr_channel_model_0</value>
     </param>
     <param>
-      <key>plotfreq</key>
-      <value>False</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>plotwaterfall</key>
-      <value>False</value>
+      <key>noise_voltage</key>
+      <value>noise_volt</value>
     </param>
     <param>
-      <key>plottime</key>
-      <value>False</value>
+      <key>freq_offset</key>
+      <value>freq_offset</value>
     </param>
     <param>
-      <key>plotconst</key>
-      <value>True</value>
+      <key>epsilon</key>
+      <value>time_offset</value>
     </param>
     <param>
-      <key>gui_hint</key>
-      <value>0,0,1,1</value>
+      <key>taps</key>
+      <value>taps</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1117, 137)</value>
+      <value>(680, 79)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -970,34 +950,54 @@
     </param>
   </block>
   <block>
-    <key>digital_cma_equalizer_cc</key>
+    <key>digital_pfb_clock_sync_xxx</key>
     <param>
       <key>id</key>
-      <value>digital_cma_equalizer_cc_0</value>
+      <value>digital_pfb_clock_sync_xxx_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>num_taps</key>
-      <value>15</value>
+      <key>type</key>
+      <value>ccf</value>
     </param>
     <param>
-      <key>modulus</key>
-      <value>1</value>
+      <key>sps</key>
+      <value>sps</value>
     </param>
     <param>
-      <key>mu</key>
-      <value>eq_gain</value>
+      <key>alpha</key>
+      <value>0.1</value>
     </param>
     <param>
-      <key>sps</key>
+      <key>beta</key>
+      <value>0.25*0.1*0.1</value>
+    </param>
+    <param>
+      <key>taps</key>
+      <value>rrc_taps</value>
+    </param>
+    <param>
+      <key>filter_size</key>
+      <value>nfilts</value>
+    </param>
+    <param>
+      <key>init_phase</key>
+      <value>nfilts/2</value>
+    </param>
+    <param>
+      <key>max_dev</key>
+      <value>1.5</value>
+    </param>
+    <param>
+      <key>osps</key>
       <value>2</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(842, 254)</value>
+      <value>(570, 273)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1035,26 +1035,26 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
-    <sink_block_id>channel_model_0</sink_block_id>
+    <source_block_id>digital_costas_loop_cc_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
-    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
+    <source_block_id>digital_cma_equalizer_cc_0</source_block_id>
+    <sink_block_id>qtgui_sink_x_0_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_costas_loop_cc_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0_0</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_0</source_block_id>
+    <sink_block_id>gr_channel_model_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_cma_equalizer_cc_0</source_block_id>
-    <sink_block_id>qtgui_sink_x_0_0_0_0</sink_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
+    <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/mpsk_stage5.py b/mpsk_stage5.py
index acb8631..4934c52 100755
--- a/mpsk_stage5.py
+++ b/mpsk_stage5.py
@@ -2,16 +2,14 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Mpsk Stage5
-# Generated: Sun Sep 23 16:18:42 2012
+# Generated: Fri Feb  8 09:00:52 2013
 ##################################################
 
 from PyQt4 import Qt
 from gnuradio import digital
 from gnuradio import eng_notation
-from gnuradio import filter
 from gnuradio import gr
 from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
 from gnuradio.gr import firdes
 from gnuradio.qtgui import qtgui
 from optparse import OptionParser
@@ -155,6 +153,13 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 		self.top_grid_layout.addWidget(self._qtgui_sink_x_0_0_0_win, 0,1,1,1)
 		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
 		self.gr_multiply_const_vxx_0 = gr.multiply_const_vcc((0.5, ))
+		self.gr_channel_model_0 = gr.channel_model(
+			noise_voltage=noise_volt,
+			frequency_offset=freq_offset,
+			epsilon=time_offset,
+			taps=(taps),
+			noise_seed=0,
+		)
 		self.digital_psk_mod_0 = digital.psk.psk_mod(
 		  constellation_points=arity,
 		  mod_code="gray",
@@ -168,13 +173,6 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 		self.digital_pfb_clock_sync_xxx_0.set_beta(0.25*0.1*0.1)
 		self.digital_costas_loop_cc_0 = digital.costas_loop_cc(phase_bw, arity)
 		self.digital_cma_equalizer_cc_0 = digital.cma_equalizer_cc(15, 1, eq_gain, 2)
-		self.channel_model_0 = filter.channel_model(
-			noise_voltage=noise_volt,
-			frequency_offset=freq_offset,
-			epsilon=time_offset,
-			taps=(taps),
-			noise_seed=0,
-		)
 
 		##################################################
 		# Connections
@@ -184,10 +182,10 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 		self.connect((self.gr_throttle_0, 0), (self.gr_multiply_const_vxx_0, 0))
 		self.connect((self.digital_psk_mod_0, 0), (self.gr_throttle_0, 0))
 		self.connect((self.digital_cma_equalizer_cc_0, 0), (self.digital_costas_loop_cc_0, 0))
-		self.connect((self.gr_multiply_const_vxx_0, 0), (self.channel_model_0, 0))
-		self.connect((self.channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
 		self.connect((self.digital_costas_loop_cc_0, 0), (self.qtgui_sink_x_0_0_0, 0))
 		self.connect((self.digital_cma_equalizer_cc_0, 0), (self.qtgui_sink_x_0_0_0_0, 0))
+		self.connect((self.gr_multiply_const_vxx_0, 0), (self.gr_channel_model_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.digital_pfb_clock_sync_xxx_0, 0))
 
 	def get_sps(self):
 		return self.sps
@@ -209,7 +207,7 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 	def set_time_offset(self, time_offset):
 		self.time_offset = time_offset
 		self._time_offset_slider.setValue(self.time_offset)
-		self.channel_model_0.set_timing_offset(self.time_offset)
+		self.gr_channel_model_0.set_timing_offset(self.time_offset)
 
 	def get_time_alpha(self):
 		return self.time_alpha
@@ -223,7 +221,7 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 
 	def set_taps(self, taps):
 		self.taps = taps
-		self.channel_model_0.set_taps((self.taps))
+		self.gr_channel_model_0.set_taps((self.taps))
 
 	def get_samp_rate(self):
 		return self.samp_rate
@@ -254,7 +252,7 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 	def set_noise_volt(self, noise_volt):
 		self.noise_volt = noise_volt
 		self._noise_volt_slider.setValue(self.noise_volt)
-		self.channel_model_0.set_noise_voltage(self.noise_volt)
+		self.gr_channel_model_0.set_noise_voltage(self.noise_volt)
 
 	def get_freq_offset(self):
 		return self.freq_offset
@@ -262,7 +260,7 @@ class mpsk_stage5(gr.top_block, Qt.QWidget):
 	def set_freq_offset(self, freq_offset):
 		self.freq_offset = freq_offset
 		self._freq_offset_slider.setValue(self.freq_offset)
-		self.channel_model_0.set_frequency_offset(self.freq_offset)
+		self.gr_channel_model_0.set_frequency_offset(self.freq_offset)
 
 	def get_eq_gain(self):
 		return self.eq_gain
diff --git a/multipath_sim.grc b/multipath_sim.grc
index 13cc735..aad15b5 100644
--- a/multipath_sim.grc
+++ b/multipath_sim.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sat Sep 22 13:33:33 2012</timestamp>
+  <timestamp>Fri Feb  8 09:03:25 2013</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -399,37 +399,6 @@
     </param>
   </block>
   <block>
-    <key>gr_throttle</key>
-    <param>
-      <key>id</key>
-      <value>gr_throttle_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(248, 136)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -476,38 +445,30 @@
     </param>
   </block>
   <block>
-    <key>channel_model</key>
+    <key>gr_throttle</key>
     <param>
       <key>id</key>
-      <value>channel_model_0</value>
+      <value>gr_throttle_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>noise_voltage</key>
-      <value>0.01</value>
-    </param>
-    <param>
-      <key>freq_offset</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>epsilon</key>
-      <value>1.0</value>
+      <key>type</key>
+      <value>complex</value>
     </param>
     <param>
-      <key>taps</key>
-      <value>taps</value>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>seed</key>
-      <value>0</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(457, 104)</value>
+      <value>(248, 136)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -549,10 +510,6 @@
       <value>samp_rate</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>10</value>
-    </param>
-    <param>
       <key>plotfreq</key>
       <value>True</value>
     </param>
@@ -573,12 +530,47 @@
       <value>0,0,1,10</value>
     </param>
     <param>
-      <key>freqchangevar</key>
-      <value>None</value>
+      <key>_coordinate</key>
+      <value>(752, 104)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_channel_model</key>
+    <param>
+      <key>id</key>
+      <value>gr_channel_model_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>noise_voltage</key>
+      <value>0.01</value>
+    </param>
+    <param>
+      <key>freq_offset</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>epsilon</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>taps</key>
+      <value>taps</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(752, 104)</value>
+      <value>(457, 104)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -593,12 +585,12 @@
   </connection>
   <connection>
     <source_block_id>gr_throttle_0</source_block_id>
-    <sink_block_id>channel_model_0</sink_block_id>
+    <sink_block_id>gr_channel_model_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>channel_model_0</source_block_id>
+    <source_block_id>gr_channel_model_0</source_block_id>
     <sink_block_id>qtgui_sink_x_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
diff --git a/multipath_sim.py b/multipath_sim.py
index 3d20ff6..efb2731 100755
--- a/multipath_sim.py
+++ b/multipath_sim.py
@@ -2,15 +2,13 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Multipath Sim
-# Generated: Sun Sep 23 16:18:46 2012
+# Generated: Fri Feb  8 09:04:45 2013
 ##################################################
 
 from PyQt4 import Qt
 from gnuradio import eng_notation
-from gnuradio import filter
 from gnuradio import gr
 from gnuradio.eng_option import eng_option
-from gnuradio.filter import firdes
 from gnuradio.gr import firdes
 from gnuradio.qtgui import qtgui
 from optparse import OptionParser
@@ -104,7 +102,7 @@ class multipath_sim(gr.top_block, Qt.QWidget):
 		self.top_grid_layout.addWidget(self._qtgui_sink_x_0_win, 0,0,1,10)
 		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, samp_rate)
 		self.gr_noise_source_x_0 = gr.noise_source_c(gr.GR_GAUSSIAN, 1, 0)
-		self.channel_model_0 = filter.channel_model(
+		self.gr_channel_model_0 = gr.channel_model(
 			noise_voltage=0.01,
 			frequency_offset=0,
 			epsilon=1.0,
@@ -116,8 +114,8 @@ class multipath_sim(gr.top_block, Qt.QWidget):
 		# Connections
 		##################################################
 		self.connect((self.gr_noise_source_x_0, 0), (self.gr_throttle_0, 0))
-		self.connect((self.gr_throttle_0, 0), (self.channel_model_0, 0))
-		self.connect((self.channel_model_0, 0), (self.qtgui_sink_x_0, 0))
+		self.connect((self.gr_throttle_0, 0), (self.gr_channel_model_0, 0))
+		self.connect((self.gr_channel_model_0, 0), (self.qtgui_sink_x_0, 0))
 
 	def get_tap3(self):
 		return self.tap3
@@ -162,7 +160,7 @@ class multipath_sim(gr.top_block, Qt.QWidget):
 
 	def set_taps(self, taps):
 		self.taps = taps
-		self.channel_model_0.set_taps((self.taps))
+		self.gr_channel_model_0.set_taps((self.taps))
 
 	def get_samp_rate(self):
 		return self.samp_rate
-- 
1.7.10.4

