diff options
author | Tom Rondeau | 2012-02-29 20:42:17 -0500 |
---|---|---|
committer | Tom Rondeau | 2012-02-29 20:42:17 -0500 |
commit | 0f73b0991f4da55b118b4029e2e53fde64580caa (patch) | |
tree | 9cf995bbb59591619a17c34cfbcaef349a7563b6 /gnuradio-core/src | |
parent | ed72fd930b6c7c23273c928d02b54587c0cac9a3 (diff) | |
download | gnuradio-0f73b0991f4da55b118b4029e2e53fde64580caa.tar.gz gnuradio-0f73b0991f4da55b118b4029e2e53fde64580caa.tar.bz2 gnuradio-0f73b0991f4da55b118b4029e2e53fde64580caa.zip |
grc: grc PFB channelizer and synthesize to set channel map defaults on startup.
Diffstat (limited to 'gnuradio-core/src')
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc | 12 | ||||
-rw-r--r-- | gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc | 18 |
2 files changed, 17 insertions, 13 deletions
diff --git a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc index 24fc35a19..a82d3901c 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc +++ b/gnuradio-core/src/lib/filter/gr_pfb_channelizer_ccf.cc @@ -165,12 +165,14 @@ gr_pfb_channelizer_ccf::set_channel_map(const std::vector<int> &map) { gruel::scoped_lock guard(d_mutex); - unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); - unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); - if((max >= d_numchans) || (min < 0)) { - throw std::invalid_argument("gr_pfb_channelizer_ccf::set_channel_map: map range out of bounds.\n"); + if(map.size() > 0) { + unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); + unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); + if((max >= d_numchans) || (min < 0)) { + throw std::invalid_argument("gr_pfb_channelizer_ccf::set_channel_map: map range out of bounds.\n"); + } + d_channel_map = map; } - d_channel_map = map; } std::vector<int> diff --git a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc b/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc index f999a2b92..55ba2dc3f 100644 --- a/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc +++ b/gnuradio-core/src/lib/filter/gr_pfb_synthesis_filterbank_ccf.cc @@ -203,15 +203,17 @@ gr_pfb_synthesis_filterbank_ccf::set_channel_map(const std::vector<int> &map) { gruel::scoped_lock guard(d_mutex); - unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); - unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); - if((max >= d_twox*d_numchans) || (min < 0)) { - throw std::invalid_argument("gr_pfb_synthesis_filterbank_ccf::set_channel_map: map range out of bounds.\n"); - } - d_channel_map = map; + if(map.size() > 0) { + unsigned int max = (unsigned int)*std::max_element(map.begin(), map.end()); + unsigned int min = (unsigned int)*std::min_element(map.begin(), map.end()); + if((max >= d_twox*d_numchans) || (min < 0)) { + throw std::invalid_argument("gr_pfb_synthesis_filterbank_ccf::set_channel_map: map range out of bounds.\n"); + } + d_channel_map = map; - // Zero out fft buffer so that unused channels are always 0 - memset(d_fft->get_inbuf(), 0,d_twox*d_numchans*sizeof(gr_complex)); + // Zero out fft buffer so that unused channels are always 0 + memset(d_fft->get_inbuf(), 0,d_twox*d_numchans*sizeof(gr_complex)); + } } std::vector<int> |