discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] hierarchical polyphase channelizer vs polyphase c


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] hierarchical polyphase channelizer vs polyphase channelizer blocks in GRC
Date: Tue, 30 Jun 2015 19:47:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

Hi ben,
otherwise I have to design my own, which is not on my 'fun list'.
What? that sounds like such an awesome project!

The point is that polyphase channelizers inherently make use of the fact that you can a) split the sample stream into multiple polyphase components, b) do the same with the filter taps, c) run the individual filters at the lower rate and d) use the FFT amongst a lot of permutations. This complexity makes it desirable to do this in one block.

Looking at pfb_channelizer_ccf:
189         while(i >= 0) {
190           in = (gr_complex*)input_items[j];
191           d_fft->get_inbuf()[d_idxlut[j]] = d_fir_filters[i]->filter(&in[n]);
192           j++;
193           i--;
194         }
195
196         i = d_nfilts-1;
197         while(i > last) {
198           in = (gr_complex*)input_items[j];
199           d_fft->get_inbuf()[d_idxlut[j]] = d_fir_filters[i]->filter(&in[n-1]);
200           j++;
201           i--;
202         }

both while loops could lend themself to parallelization, if d_idxlut has j unique elements; but that's the case (for this particular implementation, this might be different for channelizers that map the same stream to multiple frequencies):
 87       for(unsigned int i = 0; i < d_nfilts; i++) {
 88         d_idxlut[i] = d_nfilts - ((i + d_rate_ratio) % d_nfilts) - 1;
 89       }

The easiest solution would be modifying polyphase_filterbank.cc, and adding something like d_thread_workers. I'd recommend not overdoing parallelization, a single filter(float) step doesn't really justify the synchronization overhead. I'd start with just wrapping the two while loops in two separate threads.

Best regards,
Marcus

On 06/30/2015 07:14 PM, ben Gee wrote:
Does anyone have any knowledge of how the parameters need to be set in the hierarchical pfb channelizer? There's no documentation that I can find. 

I HAVE gotten the regular channelizer to work and it's awesome (screenshots included), I was just hoping to use a hierarchical version that would be able to use multiple blocks and therefore utilize multiple processors. 

otherwise I have to design my own, which is not on my 'fun list'. 


thanks,
-b



_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

[Prev in Thread] Current Thread [Next in Thread]