My complete code is:
class Tx1_Rx2(gr.top_block):
def __init__(self, nsamps):
gr.top_block.__init__(self, "Tx1_Rx2")
##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 64e3
##################################################
# Blocks
##################################################
self.source = uhd.usrp_source(
",".join(("", "")),
uhd.stream_args(
cpu_format="fc32",
channels=range(2),
),
)
self.source.set_subdev_spec("A:A A:B", 0)
self.source.set_time_now(uhd.time_spec(time.time()),
uhd.ALL_MBOARDS)
self.source.set_samp_rate(samp_rate)
self.source.set_center_freq(100e6, 0)
self.source.set_gain(0, 0)
self.source.set_antenna("RX2", 0)
self.source.set_bandwidth(samp_rate, 0)
self.source.set_center_freq(100e6, 1)
self.source.set_gain(0, 1)
self.source.set_antenna("RX2", 1)
self.source.set_bandwidth(samp_rate, 1)
self.sink = uhd.usrp_sink(
",".join(("", "")),
uhd.stream_args(
cpu_format="fc32",
channels=range(2),
),
)
self.sink.set_subdev_spec("A:A A:B", 0)
self.sink.set_samp_rate(samp_rate)
self.sink.set_center_freq(100e6, 0)
self.sink.set_gain(0, 0)
self.sink.set_antenna("TX/RX", 0)
self.sink.set_bandwidth(samp_rate, 0)
self.sink.set_center_freq(100e6, 1)
self.sink.set_gain(0, 1)
self.sink.set_antenna("TX/RX", 1)
self.sink.set_bandwidth(samp_rate, 1)
self.vector = blocks.vector_sink_c(1)
self.vector2 = blocks.vector_sink_c(1)
self.header = blocks.head(gr.sizeof_gr_complex*1,
int(nsamps))
self.header2 = blocks.head(gr.sizeof_gr_complex*1,
int(nsamps))
self.signal = analog.sig_source_c(samp_rate,
analog.GR_COS_WAVE, 10000, 1, 0)
self.const_signal = analog.sig_source_c(0,
analog.GR_CONST_WAVE, 0, 0, 0)
##################################################
# Connections
##################################################
self.connect((self.const_signal, 0), (self.sink,
1))
self.connect((self.signal, 0), (self.sink, 0))
self.connect((self.header2, 0), (self.vector2, 0))
self.connect((self.header, 0), (self.vector, 0))
self.connect((self.source, 0), (self.header2, 0))
self.connect((self.source, 1), (self.header, 0))
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.signal.set_sampling_freq(self.samp_rate)
self.sink.set_samp_rate(self.samp_rate)
self.sink.set_bandwidth(self.samp_rate, 0)
self.sink.set_bandwidth(self.samp_rate, 1)
self.source.set_samp_rate(self.samp_rate)
self.source.set_bandwidth(self.samp_rate, 0)
self.source.set_bandwidth(self.samp_rate, 1)
def receive_data(self):
data = "">
return data
def receive_data2(self):
data = "">
return data
if __name__ == '__main__':
N = 1024
M = 100*np.round(np.log10(N))
tb = Tx1_Rx2(N)
psi = np.load("psi_mtx.npy")
phi = np.load("phi_mtx.npy")
alpha = np.dot(phi,psi)
while 1:
tb.start()
time.sleep(0.1)
tb.stop()
time.sleep(0.1)
tb.wait()
time.sleep(0.5)
signal = tb.receive_data()
time.sleep(0.5)
signal2 = tb.receive_data2()
time.sleep(0.5)
print "Signal"
print signal
print "Signal2"
print signal2
I used the sample rate of 64Ksps for both cases. I'm new to both
gnuradio and python so I am aware that my code isn't well
written.