Hi Marcus,

Yes, the suggested combination of IIR filter and the keen one in N Block
would potentially do the job.   However as you pointed out, my end
goal is to have a median of 4 vectors block.  Also I was thinking that
a direct average would be numerically less expensive than the combination
of two different blocks.

Also, I’ve been trying for
a few weeks to get an out of tree module to work, so am stubbornly
hoping that I might figure it out.  (Actually I’m hoping someone might
tell me how to figure it out.)   

Your suggestion of returning 1 instead of vector size might solve this.
I’ll give it a try.

Best regards

Glen

> On Mar 11, 2018, at 3:23 PM, Marcus D. Leech <mle...@ripnet.com> wrote:
> 
> On 03/11/2018 02:06 PM, Glen I Langston wrote:
>> Hello Gnuradio experts,
>> 
>> I'm following the gnuradio tutorial for creating an out of tree python block.
>> My intention is fairly simple.  To have a input stream of 4 vectors
>> and average these 4 vectors, outputting a single average vector
>> after the 4th vector arrives.  Right now my vectors are 1024 channel
>> total power spectra.
>> 
>> My code is attached, along with the quality control code.
>> I've been at this for a while, but I must have the wrong model
>> in my head on how gnuradio holds these samples.
>> 
>> I'm not getting the proper size matches.   I can not find any
>> decimation help, despite hours of googling...
>> 
>> Suggestions?
>> 
>> THanks
>> 
>> Glen
>>  
>> 
>> 
>> 
>> 
>> 
>> My intention is to make this 4 vector average with decimate a
>> part of the .grc environment, but the problems are easier to diagnose,
>> as the QA code is stands alone.   Here are the messages I’m getting:
>> 
>> 
>> ESMU:vdecimate glangsto$ python qa_vdecimate.py 
>> handler caught exception: could not broadcast input array from shape 
>> (4,1024) into shape (1,1024)
>> Traceback (most recent call last):
>>   File 
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gnuradio/gr/gateway.py",
>>  line 55, in eval
>>     try: self._callback()
>>   File 
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gnuradio/gr/gateway.py",
>>  line 160, in __gr_block_handle
>>     ) for i in self.__out_indexes],
>>   File "/Users/glangsto/Desktop/Research/vdecimate/vdecimate.py", line 58, 
>> in work
>>     out[:] = self.sum/float(self.count)
>> ValueError: could not broadcast input array from shape (4,1024) into shape 
>> (1,1024)
>> thread[thread-per-block[1]: <block vdecimate (2)>]: SWIG director method 
>> error. Error detected when calling 'feval_ll.eval'
>> 
> I realize that your ultimate goal is to do a window=4 median filter, and this 
> vecimate.py is a "stepping stone" to that.
> 
> But the specfic goal of "average 4 vectors, then decimate" can be achieved 
> (approximately) with a single-pole IIR filter with the right parameters, 
> followed
>   by a keep-one-in-N block.
> 
> 
> _______________________________________________
> 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