N200 2018-06-14 8:58 GMT+03:00 Ivan Zahartchuk <adray0...@gmail.com>:
> I'm still interested in the principle of the UHD_Source unit. > "Start continuous" tells the device to stream samples indefinitely. > "Stop continuous" tells the device to end continuous streaming. > "Num sams and done" tells the device to stream num sams and to not > expect a future stream command for contiguous samples. > "Num samps and more" tells the device to stream num sams and to > expect a future stream command for contiguous samples. > I made such a receiver on python_und and I could get to see 4Ghz for 120ms > using the B200 > > 2018-06-13 18:46 GMT+03:00 John Medrano <john.d.medr...@gmail.com>: > >> Hello, >> >> I see you are using an E310, now this seems to make a bit more sense as >> to what you are trying to do. >> >> Although you can use RFNOC to increase the processor ability to do FFT >> function, it is actually not needed for initial testing. In GNU radio, >> there are many ways to enhance your design, but there is a simple approach >> that will work. >> >> RADIO->STREAM TO VECTOR->FFT->CUSTOM BLOCK >> >> The FFT block will pass data to your custom blocks of X data points. >> Where X is your FFT Size. >> >> Your custom block would then store 1 block of X data points, and then set >> a flag to indicate that it has data. So your custom block should have >> functions to check flag and retrieve data. >> The rest of the work you can do in Python. >> >> while 1: >> tb.start() >> time.sleep(1.0) >> tb.stop() >> tb.wait() >> tb.store_data() >> tb.change_freq() >> >> tb.store_data() will check your custom block to see if data there, and if >> yes will store it to file in whatever format you want. tb.change_freq() >> will basically change the frequency of radio component to new frequency >> setting. You would need to add code in Python that transmits to host when >> all data blocks have been collected. >> >> One big problem with E310 though, I doubt if you are going to be able to >> process with a sample rate of 30 MHz. You may have to go down to as low as >> 5 MHz. The only approach that would increase band width would to move your >> custom block and FFT back into FPGA with RFNOC. But this is very complex >> endeavor. >> >> >> On Wed, Jun 13, 2018 at 9:06 AM, Ivan Zahartchuk <adray0...@gmail.com> >> wrote: >> >>> I want to process not 6GHz but 30 MHz at a time. Ie I read 30 MHz at a >>> frequency of 400 MHz (for example) then I do 30 MHz FFT and write them to >>> the buffer. And so up to 6GHz. Then when the buffer is full, I transfer >>> the data to the host machine (I use the USRP E310 board) to display the >>> data. >>> In fact, it should be such a broadband spectrum analyzer not in real >>> time. >>> >>> 2018-06-13 17:57 GMT+03:00 John Medrano <john.d.medr...@gmail.com>: >>> >>>> Hello. >>>> >>>> If I understand what you are saying correctly, you would like to >>>> process wide band data. And you mention 70 MHz to 6 GHz. >>>> >>>> Even with RFNOC there is a limitation on the amount of data you can >>>> process simultaneously, and that is about 200 MHz. There is no way possible >>>> to simultaneously process a 6GHz band with one host and radio. You would >>>> need an array of radios. >>>> >>>> Please provide more details on design requirements, it hard to >>>> understand what you are trying to accomplish. >>>> >>>> On Wed, Jun 13, 2018 at 8:46 AM, Ivan Zahartchuk <adray0...@gmail.com> >>>> wrote: >>>> >>>>> In the future, I would also like to use the RFNoC >>>>> >>>>> 2018-06-13 17:42 GMT+03:00 Ivan Zahartchuk <adray0...@gmail.com>: >>>>> >>>>>> 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_fr >>>>>>> eq-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_ce >>>>>>> nter_freq(self.start_freq+self.samp_rate*i) >>>>>>> > data=np.array(self.uhd_usrp_s >>>>>>> ource_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 >>>>> >>>>> >>>> >>> >> >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio