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: <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 > Discussfirstname.lastname@example.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio _______________________________________________ Discuss-gnuradio mailing list Discussemail@example.com https://lists.gnu.org/mailman/listinfo/discuss-gnuradio