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_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(819
>> 2))
>> >         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

Reply via email to