discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] GNURadio Help


From: Ivan Zahartchuk
Subject: [Discuss-gnuradio] GNURadio Help
Date: Wed, 13 Jun 2018 17:16:46 +0300

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="" style="color:rgb(148,85,141)">self.uhd_usrp_source_0.finite_acquisition(8192))
output_items[0][:] = input_items[0] * self.example_param
return len(output_items[0])

reply via email to

[Prev in Thread] Current Thread [Next in Thread]