I need to rebuild the frequency, do fft and then transfer the whole array from 70 to 6GHz to the host machine. I do not quite imagine how you can do this with standard blocks in gnuradio.
2018-06-13 17:32 GMT+03:00 Müller, Marcus (CEL) <muel...@kit.edu>: > Dear Ivan, > > you don't pass data to a block yourself. > > You write a block that does a clearly-limited signal processing job, > and use GNU Radio to connect that to other blocks: > > https://tutorials.gnuradio.org > > In your case, instantiating a USRP source in your block makes > absolutely no sense, for example. You'd build a flow graph containing > the USRP source, and your custom-written block, and you'd connect these > two. > > It's sadly not really clear what you want to achieve, so I'm afraid I'm > not able to help you here. > > Generally, GNU Radio pretty much takes the idea of "draw a block > diagram of what you want to achieve with your signal processing", and > directly translates it to "using existing blocks and writing new ones, > and letting GNU Radio take care of how the data gets around". > > Also, wideband signal processing and implementing a sync_block in > Python... do not work well together. > > So, I think you might really be a bit confused about the architecture > of GNU Radio – I really hope the tutorials explain that better than I > could. > > Best regards, > Marcus > > On Wed, 2018-06-13 at 17:16 +0300, Ivan Zahartchuk wrote: > > Hello. I'm trying to write a block in gnuradio for broadband reception. > > The main problem at the moment is to transfer data to the fft block. > > I'm new to python and so it's hard for me to figure this out.import > numpy as np > > > > I need an array of data to pass to the gnuradio.fft.fft.vcc block > > > > from gnuradio import gr > > from gnuradio import uhd > > from gnuradio import fft > > > > class blk(gr.sync_block): # other base classes are basic_block, > decim_block, interp_block > > """Embedded Python Block example - a simple multiply const""" > > > > def __init__(self, > > gain=1.0,start_freq=70e6,stop_freq=6000e6,samp_rate=30e6): > # only default arguments here > > """arguments to this function show up as parameters in GRC""" > > gr.sync_block.__init__( > > self, > > name='Python Block', # will show up in GRC > > in_sig=None, > > out_sig=[np.complex64,np.complex64] > > ) > > # if an attribute with the same name as a parameter is found, > > # a callback is registered (properties work, too). > > self.gain = gain > > self.start_freq=start_freq > > self.stop_freq=stop_freq > > self.samp_rate=samp_rate > > self.uhd_usrp_source_0 = uhd.usrp_source(",".join(("", "")), > > uhd.stream_args( > > cpu_format="fc32", > > otw_format="sc16", > > chanels=range(1), > > ), > > ) > > > > > > self.uhd_usrp_source_0.set_clock_rate(30e6, uhd.ALL_MBOARDS) > > self.uhd_usrp_source_0.set_samp_rate(self.samp_rate) > > self.uhd_usrp_source_0.set_gain(self.gain, 0) > > self.uhd_usrp_source_0.set_antenna("RX2", 0) > > self.uhd_usrp_source_0.set_bandwidth(30e6, 0) > > self.range_freq=(self.stop_freq-self.start_freq)/self.samp_rate > > > > def work(self, input_items, output_items): > > """example: multiply with constant""" > > for i in np.range(self.range_freq): > > self.uhd_usrp_source_0.set_center_freq(self.start_freq+ > self.samp_rate*i) > > data=np.array(self.uhd_usrp_source_0.finite_acquisition( > 8192)) > > output_items[0][:] = input_items[0] * self.example_param > > return len(output_items[0]) > > _______________________________________________ > > 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