diff options
author | Tom Rondeau | 2012-02-28 16:02:16 -0500 |
---|---|---|
committer | Tom Rondeau | 2012-02-28 16:02:16 -0500 |
commit | 3d3d3c05291aebb1ad90d22f9674546347cb96d6 (patch) | |
tree | f6adc290927d6cd7ef7ba5cb0a92c0cd463dbc9a /gnuradio-core/src/python | |
parent | d15bed21e08f97b0ac510b49124c9231289820c2 (diff) | |
download | gnuradio-3d3d3c05291aebb1ad90d22f9674546347cb96d6.tar.gz gnuradio-3d3d3c05291aebb1ad90d22f9674546347cb96d6.tar.bz2 gnuradio-3d3d3c05291aebb1ad90d22f9674546347cb96d6.zip |
core: pfb channelizer: can now set a channel map to direct the channels to a specific output stream.
Now, not all output channels must be connected; can connect M of N channels (M <= N) and use the channel_map to set which channel from the original wideband signal go to which output streams.
Diffstat (limited to 'gnuradio-core/src/python')
-rw-r--r-- | gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py index 3ddc1749a..dea71b286 100644 --- a/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py +++ b/gnuradio-core/src/python/gnuradio/blks2impl/pfb_channelizer.py @@ -34,7 +34,7 @@ class pfb_channelizer_ccf(gr.hier_block2): gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature gr.io_signature(numchans, numchans, gr.sizeof_gr_complex)) # Output signature - self._numchans = numchans + self._nchans = numchans self._oversample_rate = oversample_rate if taps is not None: @@ -47,7 +47,7 @@ class pfb_channelizer_ccf(gr.hier_block2): made = False while not made: try: - self._taps = optfir.low_pass(1, self._numchans, bw, bw+tb, ripple, atten) + self._taps = optfir.low_pass(1, self._nchans, bw, bw+tb, ripple, atten) made = True except RuntimeError: ripple += 0.01 @@ -58,22 +58,16 @@ class pfb_channelizer_ccf(gr.hier_block2): if(ripple >= 1.0): raise RuntimeError("optfir could not generate an appropriate filter.") - self.s2ss = gr.stream_to_streams(gr.sizeof_gr_complex, self._numchans) - self.pfb = gr.pfb_channelizer_ccf(self._numchans, self._taps, + 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.v2s = gr.vector_to_streams(gr.sizeof_gr_complex, self._numchans) - self.connect(self, self.s2ss) - for i in xrange(self._numchans): + for i in xrange(self._nchans): self.connect((self.s2ss,i), (self.pfb,i)) + self.connect((self.pfb,i), (self,i)) - # Get independent streams from the filterbank and send them out - self.connect(self.pfb, self.v2s) - - for i in xrange(self._numchans): - self.connect((self.v2s,i), (self,i)) - - + def set_channel_map(self, newmap): + self.pfb.set_channel_map(newmap) |