summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/pfb_arb_resampler.py128
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py73
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/pfb_decimator.py69
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/pfb_interpolator.py70
-rw-r--r--gr-filter/grc/filter_pfb_arb_resampler.xml13
-rw-r--r--gr-filter/grc/filter_pfb_channelizer.xml6
-rw-r--r--gr-filter/grc/filter_pfb_decimator.xml15
-rw-r--r--gr-filter/grc/filter_pfb_interpolator.xml15
-rw-r--r--gr-filter/python/pfb.py10
-rw-r--r--grc/blocks/blks2_analysis_filterbank.xml32
-rw-r--r--grc/blocks/blks2_pfb_arb_resampler.xml45
-rw-r--r--grc/blocks/blks2_pfb_channelizer.xml62
-rw-r--r--grc/blocks/blks2_synthesis_filterbank.xml32
-rw-r--r--grc/blocks/block_tree.xml6
14 files changed, 40 insertions, 536 deletions
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_arb_resampler.py b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_arb_resampler.py
deleted file mode 100644
index e83c327fc8..0000000000
--- a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_arb_resampler.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, optfir
-
-class pfb_arb_resampler_ccf(gr.hier_block2):
- '''
- Convenience wrapper for the polyphase filterbank arbitrary resampler.
-
- The block takes a single complex stream in and outputs a single complex
- stream out. As such, it requires no extra glue to handle the input/output
- streams. This block is provided to be consistent with the interface to the
- other PFB block.
- '''
- def __init__(self, rate, taps=None, flt_size=32, atten=100):
- gr.hier_block2.__init__(self, "pfb_arb_resampler_ccf",
- gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
- gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature
-
- self._rate = rate
- self._size = flt_size
-
- if taps is not None:
- self._taps = taps
- else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- #self._taps = gr.firdes.low_pass_2(self._size, self._size, bw, tb, atten)
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
-
- self.pfb = gr.pfb_arb_resampler_ccf(self._rate, self._taps, self._size)
- #print "PFB has %d taps\n" % (len(self._taps),)
-
- self.connect(self, self.pfb)
- self.connect(self.pfb, self)
-
- # Note -- set_taps not implemented in base class yet
- def set_taps(self, taps):
- self.pfb.set_taps(taps)
-
- def set_rate(self, rate):
- self.pfb.set_rate(rate)
-
-
-class pfb_arb_resampler_fff(gr.hier_block2):
- '''
- Convenience wrapper for the polyphase filterbank arbitrary resampler.
-
- The block takes a single float stream in and outputs a single float
- stream out. As such, it requires no extra glue to handle the input/output
- streams. This block is provided to be consistent with the interface to the
- other PFB block.
- '''
- def __init__(self, rate, taps=None, flt_size=32, atten=100):
- gr.hier_block2.__init__(self, "pfb_arb_resampler_fff",
- gr.io_signature(1, 1, gr.sizeof_float), # Input signature
- gr.io_signature(1, 1, gr.sizeof_float)) # Output signature
-
- self._rate = rate
- self._size = flt_size
-
- if taps is not None:
- self._taps = taps
- else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- #self._taps = gr.firdes.low_pass_2(self._size, self._size, bw, tb, atten)
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(self._size, self._size, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
-
- self.pfb = gr.pfb_arb_resampler_fff(self._rate, self._taps, self._size)
- #print "PFB has %d taps\n" % (len(self._taps),)
-
- self.connect(self, self.pfb)
- self.connect(self.pfb, self)
-
- # Note -- set_taps not implemented in base class yet
- def set_taps(self, taps):
- self.pfb.set_taps(taps)
-
- def set_rate(self, rate):
- self.pfb.set_rate(rate)
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py
deleted file mode 100644
index 4bbe1bec6c..0000000000
--- a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2009,2010 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, optfir
-
-class pfb_channelizer_ccf(gr.hier_block2):
- '''
- Make a Polyphase Filter channelizer (complex in, complex out, floating-point taps)
-
- This simplifies the interface by allowing a single input stream to connect to this block.
- It will then output a stream for each channel.
- '''
- def __init__(self, numchans, taps=None, oversample_rate=1, atten=100):
- gr.hier_block2.__init__(self, "pfb_channelizer_ccf",
- gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
- gr.io_signature(numchans, numchans, gr.sizeof_gr_complex)) # Output signature
-
- self._nchans = numchans
- self._oversample_rate = oversample_rate
-
- if taps is not None:
- self._taps = taps
- else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(1, self._nchans, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
-
- self.s2ss = gr.stream_to_streams(gr.sizeof_gr_complex, self._nchans)
- self.pfb = gr.pfb_channelizer_ccf(self._nchans, self._taps,
- self._oversample_rate)
- self.connect(self, self.s2ss)
-
- for i in xrange(self._nchans):
- self.connect((self.s2ss,i), (self.pfb,i))
- self.connect((self.pfb,i), (self,i))
-
- def set_channel_map(self, newmap):
- self.pfb.set_channel_map(newmap)
-
-
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_decimator.py b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_decimator.py
deleted file mode 100644
index adcdfe9ba1..0000000000
--- a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_decimator.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, optfir
-
-class pfb_decimator_ccf(gr.hier_block2):
- '''
- Make a Polyphase Filter decimator (complex in, complex out, floating-point taps)
-
- This simplifies the interface by allowing a single input stream to connect to this block.
- It will then output a stream that is the decimated output stream.
- '''
- def __init__(self, decim, taps=None, channel=0, atten=100):
- gr.hier_block2.__init__(self, "pfb_decimator_ccf",
- gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
- gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature
-
- self._decim = decim
- self._channel = channel
-
- if taps is not None:
- self._taps = taps
- else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.1
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(1, self._decim, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
-
- self.s2ss = gr.stream_to_streams(gr.sizeof_gr_complex, self._decim)
- self.pfb = gr.pfb_decimator_ccf(self._decim, self._taps, self._channel)
-
- self.connect(self, self.s2ss)
-
- for i in xrange(self._decim):
- self.connect((self.s2ss,i), (self.pfb,i))
-
- self.connect(self.pfb, self)
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_interpolator.py b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_interpolator.py
deleted file mode 100644
index 5492dfcac6..0000000000
--- a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_interpolator.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-from gnuradio import gr, optfir
-
-class pfb_interpolator_ccf(gr.hier_block2):
- '''
- Make a Polyphase Filter interpolator (complex in, complex out, floating-point taps)
-
- The block takes a single complex stream in and outputs a single complex
- stream out. As such, it requires no extra glue to handle the input/output
- streams. This block is provided to be consistent with the interface to the
- other PFB block.
- '''
- def __init__(self, interp, taps=None, atten=100):
- gr.hier_block2.__init__(self, "pfb_interpolator_ccf",
- gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
- gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature
-
- self._interp = interp
- self._taps = taps
-
- if taps is not None:
- self._taps = taps
- else:
- # Create a filter that covers the full bandwidth of the input signal
- bw = 0.4
- tb = 0.2
- ripple = 0.99
- made = False
- while not made:
- try:
- self._taps = optfir.low_pass(self._interp, self._interp, bw, bw+tb, ripple, atten)
- made = True
- except RuntimeError:
- ripple += 0.01
- made = False
- print("Warning: set ripple to %.4f dB. If this is a problem, adjust the attenuation or create your own filter taps." % (ripple))
-
- # Build in an exit strategy; if we've come this far, it ain't working.
- if(ripple >= 1.0):
- raise RuntimeError("optfir could not generate an appropriate filter.")
-
- self.pfb = gr.pfb_interpolator_ccf(self._interp, self._taps)
-
- self.connect(self, self.pfb)
- self.connect(self.pfb, self)
-
-
-
-
diff --git a/gr-filter/grc/filter_pfb_arb_resampler.xml b/gr-filter/grc/filter_pfb_arb_resampler.xml
index f3048000ac..5629adabfa 100644
--- a/gr-filter/grc/filter_pfb_arb_resampler.xml
+++ b/gr-filter/grc/filter_pfb_arb_resampler.xml
@@ -7,12 +7,13 @@
<block>
<name>Polyphase Arbitrary Resampler</name>
<key>pfb_arb_resampler_xxx</key>
- <import>from gnuradio import filter</import>
+ <import>from gnuradio.filter import pfb</import>
<import>from gnuradio.filter import firdes</import>
- <make>filter.pfb_arb_resampler_$(type)(
+ <make>pfb.arb_resampler_$(type)(
$rrate,
$taps,
- $nfilts)
+ $nfilts,
+ $atten)
</make>
<callback>set_taps($taps)</callback>
<param>
@@ -50,6 +51,12 @@
<value>32</value>
<type>int</type>
</param>
+ <param>
+ <name>Stop-band Attenuation</name>
+ <key>atten</key>
+ <value>100</value>
+ <type>real</type>
+ </param>
<sink>
<name>in</name>
<type>complex</type>
diff --git a/gr-filter/grc/filter_pfb_channelizer.xml b/gr-filter/grc/filter_pfb_channelizer.xml
index 114abc0f06..26349cd10d 100644
--- a/gr-filter/grc/filter_pfb_channelizer.xml
+++ b/gr-filter/grc/filter_pfb_channelizer.xml
@@ -7,9 +7,9 @@
<block>
<name>Polyphase Channelizer</name>
<key>pfb_channelizer_ccf</key>
- <import>from gnuradio import filter</import>
+ <import>from gnuradio.filter import pfb</import>
<import>from gnuradio.filter import firdes</import>
- <make>filter.pfb.channelizer_ccf(
+ <make>pfb.channelizer_ccf(
$nchans,
$taps,
$osr,
@@ -29,7 +29,7 @@ self.$(id).set_channel_map($ch_map)
<param>
<name>Taps</name>
<key>taps</key>
- <value>None</value>
+ <value></value>
<type>real_vector</type>
</param>
<param>
diff --git a/gr-filter/grc/filter_pfb_decimator.xml b/gr-filter/grc/filter_pfb_decimator.xml
index b0540d3e2c..8ecf9b2d95 100644
--- a/gr-filter/grc/filter_pfb_decimator.xml
+++ b/gr-filter/grc/filter_pfb_decimator.xml
@@ -7,12 +7,13 @@
<block>
<name>Polyphase Decimator</name>
<key>pfb_decimator_ccf</key>
- <import>from gnuradio import filter</import>
+ <import>from gnuradio.filter import pfb</import>
<import>from gnuradio.filter import firdes</import>
- <make>filter.pfb_decimator_ccf(
+ <make>pfb.decimator_ccf(
$decim,
$taps,
- $channel)
+ $channel,
+ $atten)
</make>
<callback>set_taps($taps)</callback>
<param>
@@ -23,7 +24,7 @@
<param>
<name>Taps</name>
<key>taps</key>
- <value>None</value>
+ <value></value>
<type>real_vector</type>
</param>
<param>
@@ -32,6 +33,12 @@
<value>0</value>
<type>int</type>
</param>
+ <param>
+ <name>Stop-band Attenuation</name>
+ <key>atten</key>
+ <value>100</value>
+ <type>real</type>
+ </param>
<sink>
<name>in</name>
<type>complex</type>
diff --git a/gr-filter/grc/filter_pfb_interpolator.xml b/gr-filter/grc/filter_pfb_interpolator.xml
index 6004931235..59749ab900 100644
--- a/gr-filter/grc/filter_pfb_interpolator.xml
+++ b/gr-filter/grc/filter_pfb_interpolator.xml
@@ -7,11 +7,12 @@
<block>
<name>Polyphase Interpolator</name>
<key>pfb_interpolator_ccf</key>
- <import>from gnuradio import filter</import>
+ <import>from gnuradio.filter import pfb</import>
<import>from gnuradio.filter import firdes</import>
- <make>filter.pfb.interpolator_ccf(
+ <make>pfb.interpolator_ccf(
$interp,
- $taps)
+ $taps,
+ $atten)
</make>
<callback>set_taps($taps)</callback>
<param>
@@ -22,9 +23,15 @@
<param>
<name>Taps</name>
<key>taps</key>
- <value>None</value>
+ <value></value>
<type>real_vector</type>
</param>
+ <param>
+ <name>Attenuation</name>
+ <key>atten</key>
+ <value>100</value>
+ <type>real</type>
+ </param>
<sink>
<name>in</name>
<type>complex</type>
diff --git a/gr-filter/python/pfb.py b/gr-filter/python/pfb.py
index ddf2899826..b9608362c3 100644
--- a/gr-filter/python/pfb.py
+++ b/gr-filter/python/pfb.py
@@ -39,7 +39,7 @@ class channelizer_ccf(gr.hier_block2):
self._nchans = numchans
self._oversample_rate = oversample_rate
- if taps is not None:
+ if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
@@ -91,7 +91,7 @@ class interpolator_ccf(gr.hier_block2):
self._interp = interp
self._taps = taps
- if taps is not None:
+ if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
@@ -133,7 +133,7 @@ class decimator_ccf(gr.hier_block2):
self._decim = decim
self._channel = channel
- if taps is not None:
+ if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
@@ -182,7 +182,7 @@ class arb_resampler_ccf(gr.hier_block2):
self._rate = rate
self._size = flt_size
- if taps is not None:
+ if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
@@ -235,7 +235,7 @@ class arb_resampler_fff(gr.hier_block2):
self._rate = rate
self._size = flt_size
- if taps is not None:
+ if (taps is not None) and (len(taps) > 0):
self._taps = taps
else:
# Create a filter that covers the full bandwidth of the input signal
diff --git a/grc/blocks/blks2_analysis_filterbank.xml b/grc/blocks/blks2_analysis_filterbank.xml
deleted file mode 100644
index 93cfa30afd..0000000000
--- a/grc/blocks/blks2_analysis_filterbank.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Analysis Filterbank
-###################################################
- -->
-<block>
- <name>Analysis Filterbank</name>
- <key>blks2_analysis_filterbank</key>
- <import>from gnuradio import blks2</import>
- <make>blks2.analysis_filterbank(mpoints=$mpoints, taps=$taps)</make>
- <param>
- <name>MPoints</name>
- <key>mpoints</key>
- <value>3</value>
- <type>int</type>
- </param>
- <param>
- <name>Taps</name>
- <key>taps</key>
- <type>complex_vector</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <nports>$mpoints</nports>
- </source>
-</block>
diff --git a/grc/blocks/blks2_pfb_arb_resampler.xml b/grc/blocks/blks2_pfb_arb_resampler.xml
deleted file mode 100644
index b58e70f1cb..0000000000
--- a/grc/blocks/blks2_pfb_arb_resampler.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Polyphase Arbitrary Resampler
-###################################################
- -->
-<block>
- <name>Polyphase Resampler</name>
- <key>blks2_pfb_arb_resampler_ccf</key>
- <import>from gnuradio import blks2</import>
- <import>from gnuradio.gr import firdes</import>
- <make>blks2.pfb_arb_resampler_ccf(
- $rate,
- $taps,
- $size,
-)</make>
- <!-- Set taps not implemented yet
- <callback>set_taps($taps)</callback>
- -->
- <callback>set_rate($rate)</callback>
- <param>
- <name>Resample Rate</name>
- <key>rate</key>
- <type>real</type>
- </param>
- <param>
- <name>Taps</name>
- <key>taps</key>
- <type>real_vector</type>
- </param>
- <param>
- <name>Size (# phases)</name>
- <key>size</key>
- <value>32</value>
- <type>int</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/grc/blocks/blks2_pfb_channelizer.xml b/grc/blocks/blks2_pfb_channelizer.xml
deleted file mode 100644
index 5a93c08664..0000000000
--- a/grc/blocks/blks2_pfb_channelizer.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Polyphase Channelizer
-###################################################
- -->
-<block>
- <name>Polyphase Channelizer</name>
- <key>blks2_pfb_channelizer_ccf</key>
- <import>from gnuradio import blks2</import>
- <import>from gnuradio.gr import firdes</import>
- <make>blks2.pfb_channelizer_ccf(
- $nchans,
- $taps,
- $osr,
- $atten)
-self.$(id).set_channel_map($ch_map)
- </make>
- <!-- Set taps not implemented yet
- <callback>set_taps($taps)</callback>
- -->
- <callback>set_channel_map($ch_map)</callback>
-
- <param>
- <name>Channels</name>
- <key>nchans</key>
- <type>int</type>
- </param>
- <param>
- <name>Taps</name>
- <key>taps</key>
- <value>None</value>
- <type>real_vector</type>
- </param>
- <param>
- <name>Over Sample Ratio</name>
- <key>osr</key>
- <value>1.0</value>
- <type>real</type>
- </param>
- <param>
- <name>Attenuation</name>
- <key>atten</key>
- <value>100</value>
- <type>real</type>
- </param>
- <param>
- <name>Channel Map</name>
- <key>ch_map</key>
- <value>[]</value>
- <type>int_vector</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- <nports>$nchans</nports>
- </source>
-</block>
diff --git a/grc/blocks/blks2_synthesis_filterbank.xml b/grc/blocks/blks2_synthesis_filterbank.xml
deleted file mode 100644
index 5979ed3f79..0000000000
--- a/grc/blocks/blks2_synthesis_filterbank.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<!--
-###################################################
-##Synthesis Filterbank
-###################################################
- -->
-<block>
- <name>Synthesis Filterbank</name>
- <key>blks2_synthesis_filterbank</key>
- <import>from gnuradio import blks2</import>
- <make>blks2.synthesis_filterbank(mpoints=$mpoints, taps=$taps)</make>
- <param>
- <name>MPoints</name>
- <key>mpoints</key>
- <value>3</value>
- <type>int</type>
- </param>
- <param>
- <name>Taps</name>
- <key>taps</key>
- <type>complex_vector</type>
- </param>
- <sink>
- <name>in</name>
- <type>complex</type>
- <nports>$mpoints</nports>
- </sink>
- <source>
- <name>out</name>
- <type>complex</type>
- </source>
-</block>
diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml
index 59052afa90..30dfdb05d5 100644
--- a/grc/blocks/block_tree.xml
+++ b/grc/blocks/block_tree.xml
@@ -150,12 +150,6 @@
</cat>
<cat>
<name>Filters</name>
- <!-- Filters that take taps as arguments -->
- <block>blks2_synthesis_filterbank</block>
- <block>blks2_analysis_filterbank</block>
- <!-- Polyphase filters -->
- <block>blks2_pfb_arb_resampler_ccf</block>
- <block>blks2_pfb_channelizer_ccf</block>
<!-- Other filters -->
<block>blks2_rational_resampler_xxx</block>
<block>gr_keep_one_in_n</block>