No problem! Like Marcus says I definitely have to think hard about the
implementation and benchmark... But it's an interesting special case. Would
be neat with a special block for it that also calculates the coefficients.


--Albin

On Wed, Apr 24, 2019, 10:39 Derek Kozel <de...@bitstovolts.com> wrote:

> Oops, accidentally went direct rather than through the list.
>
> It would be a good addition to gr-filter to be able to use the CPU
> operations optimized halfband out of the box.
>
> ==== Previous message ====
> Hi Albin,
>
> The Filter Design Tool will generate Halfband taps that can be loaded into
> the FIR filter block, no need to write one.
>
> The implementation is here:
>
> https://github.com/gnuradio/gnuradio/blob/master/gr-filter/python/filter/design/fir_design.py#L161
>
> What would be an excellent addition would be to move the implementation
> for half-band creation to the firdes class and then have the filter design
> tool call the function, as it does for most (all?) of the other filter
> classes.
>
> https://github.com/gnuradio/gnuradio/blob/master/gr-filter/include/gnuradio/filter/firdes.h#L60
>
> Regards,
> Derek
> ====
>
> On 24/04/2019 09:04, Müller, Marcus (CEL) wrote:
>
> Hi Albin,
>
> Don't know what Derek suggested, but be aware that our "straight" FIR
> filter decimators are already polyphase implementations, and use SIMD
> (through VOLK) heavily (run volk_profile if you want to make maximum
> use of that advantage); it might be that on paper, the number of
> operations are unnecessarily high, but in CPU practice, some cures are
> worse than the disease.
>
> For example, I haven't tried, but it's thoroughly possible that albeit
> the classical case of "half your tap memory by only storing one half of
> your symmetrical FIR" performs worse than just working with the full
> (half redundant) tap vector, simply because doing so avoids nonlinear
> memory access patterns.
>
> Best regards,
> Marcus
>
> On Tue, 2019-04-23 at 19:06 +0200, Albin Stigö wrote:
>
> Thanks for the reply Marcus. Interesting approach for sure! Will have to 
> think about it...
>
> Derek, your solution works but it will be 4 times slower than the example I 
> linked to.
>
>
> --Albin
>
>
> On Tue, Apr 23, 2019, 18:24 Müller, Marcus (CEL) <muel...@kit.edu> 
> <muel...@kit.edu> wrote:
>
> Hi Albin,
>
> I'm very very tired right now, but me and Felix came to the following
> conclusions on our *Whiteboard Of Wisdom, Smarts, Expertise,
> Rationality and Science* (WOWSERS):
>
> 1. A Nyquist-M bandpass filter, esp. a halfband, has zeros on every
> other tap – except for the one center tap, which is at the maximum of
> the sinc that you window your prototype filter with.
> 2. you'd thus implement that filter as polyphase filter with two
> different polyphase components:
>   1. one polyphase component that contains all the zeros, and the
>      single center tap that's not
>   2. one component that contains all the non-zero taps
> 3. you'd thus need to "deinterleave" your input stream into two:
>   1. Delay by half the number of taps (and multiply by the maximum
>   2. filter with all the non-zero taps
> 4. sum up the results
>
> So, for all this, we already have blocks – yay!
>
> Best regards,
> Marcus
>
> On Tue, 2019-04-23 at 17:45 +0200, Albin Stigö wrote:
>
> Just checking before I write one, is there a half band decimator/interpolator 
> in gnuradio I haven't been able to find...
>
> Optimized like this:http://liquidsdr.org/doc/resamp2/
>
> Or is there an even better option for interpolation by 2?
>
>
> --Albin
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> _______________________________________________
> Discuss-gnuradio mailing 
> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to