##################################################
# GNU Radio Python Flow Graph
# Title: Sine Test
# Generated: Tue Jul 28 10:02:32 2015
##################################################
from gnuradio import blocks
from PyQt4 import QtGui
from gnuradio import analog
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import qtgui
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import sip
import sys
import time
class gnuradioGUI(gr.top_block):
def __init__(self):
gr.top_block.__init__(self)
self.qapp=QtGui.QApplication(sys.argv)
##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 1e6
self.samp_rate_usrp = samp_rate_usrp = 1e6
self.USRP_address = USRP_address = "addr=192.168.10.2"
self.tun_freq = tun_freq = 1.45e9
self.tun_gain = tun_gain = 19
self.rx_freq_off = rx_freq_off = 0
self.ampl_sine = ampl_sine = 1
##################################################
# UHD
##################################################
self.uhd_usrp_TX = uhd.usrp_sink(
device_addr=USRP_address,
stream_args=uhd.stream_args(
cpu_format="fc32",
channels=range(1),
),
)
self.uhd_usrp_TX.set_samp_rate(samp_rate_usrp)
self.uhd_usrp_TX.set_center_freq(tun_freq, 0)
self.uhd_usrp_TX.set_gain(tun_gain, 0)
self.uhd_usrp_RX = uhd.usrp_source(
device_addr=USRP_address,
stream_args=uhd.stream_args(
cpu_format="fc32",
channels=range(1),
),
)
self.uhd_usrp_RX.set_samp_rate(samp_rate_usrp)
self.uhd_usrp_RX.set_center_freq(tun_freq + rx_freq_off, 0)
self.uhd_usrp_RX.set_gain(tun_gain, 0)
self.stream_cmd=uhd.stream_cmd_t(uhd.stream_cmd_t.STREAM_MODE_START_CONTINUOUS)
#self.stream_cmd.stream_mode=STREAM_MODE_START_CONTINUOUS
self.stream_cmd.num_samps=0
self.stream_cmd.time_spec= uhd.time_spec_t(0.0105)
self.uhd_usrp_RX.issue_stream_cmd(self.stream_cmd)
##################################################
# SINE
##################################################
self.sine = analog.sig_source_c(samp_rate, analog.GR_SIN_WAVE, 1e3, ampl_sine, 0)
##################################################
# BLOCKS
##################################################
self.temp_after_usrp = qtgui.time_sink_c(
1024, #size
samp_rate, #samp_rate
"temp uscita USRP e sine", #name
2 #number of inputs
)
self.temp_after_usrp.set_update_time(0.10)
self.temp_after_usrp.set_y_axis(-1, 1)
self.temp_after_usrp.set_y_label("Amplitude", "")
self.temp_after_usrp.enable_tags(-1, True)
self.temp_after_usrp.set_trigger_mode(qtgui.TRIG_MODE_FREE, qtgui.TRIG_SLOPE_POS, 0.0, 0, 0, "")
self.temp_after_usrp.enable_autoscale(False)
self.temp_after_usrp.enable_grid(False)
self.temp_after_usrp.enable_control_panel(True)
if not True:
self.temp_after_usrp.disable_legend()
labels = ["", "", "", "", "",
"", "", "", "", ""]
widths = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
colors = ["blue", "red", "green", "black", "cyan",
"magenta", "yellow", "dark red", "dark green", "blue"]
styles = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
markers = [-1, -1, -1, -1, -1,
-1, -1, -1, -1, -1]
alphas = [1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0]
for i in xrange(2*1):
if len(labels[i]) == 0:
if(i % 2 == 0):
self.temp_after_usrp.set_line_label(i, "Re{{Data {0}}}".format(i/2))
else:
self.temp_after_usrp.set_line_label(i, "Im{{Data {0}}}".format(i/2))
else:
self.temp_after_usrp.set_line_label(i, labels[i])
self.temp_after_usrp.set_line_width(i, widths[i])
self.temp_after_usrp.set_line_color(i, colors[i])
self.temp_after_usrp.set_line_style(i, styles[i])
self.temp_after_usrp.set_line_marker(i, markers[i])
self.temp_after_usrp.set_line_alpha(i, alphas[i])
self._temp_after_usrp_win = sip.wrapinstance(self.temp_after_usrp.pyqwidget(), QtGui.QWidget)
self._temp_after_usrp_win.show()
self.fft_usrp= qtgui.freq_sink_c(
1024, #size
firdes.WIN_BLACKMAN_hARRIS, #wintype
0, #fc
samp_rate, #bw
"fft USRP e sine", #name
2 #number of inputs
)
self.fft_usrp.set_update_time(0.10)
self.fft_usrp.set_y_axis(-140, 10)
self.fft_usrp.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0, "")
self.fft_usrp.enable_autoscale(False)
self.fft_usrp.enable_grid(False)
self.fft_usrp.set_fft_average(1.0)
self.fft_usrp.enable_control_panel(False)
if not True:
self.fft_usrp.disable_legend()
if complex == type(float()):
self.fft_usrp.set_plot_pos_half(not True)
labels = ["", "", "", "", "",
"", "", "", "", ""]
widths = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
colors = ["blue", "red", "green", "black", "cyan",
"magenta", "yellow", "dark red", "dark green", "dark blue"]
alphas = [1.0, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0]
for i in xrange(1):
if len(labels[i]) == 0:
self.fft_usrp.set_line_label(i, "Data {0}".format(i))
else:
self.fft_usrp.set_line_label(i, labels[i])
self.fft_usrp.set_line_width(i, widths[i])
self.fft_usrp.set_line_color(i, colors[i])
self.fft_usrp.set_line_alpha(i, alphas[i])
self._fft_usrp_win = sip.wrapinstance(self.fft_usrp.pyqwidget(), QtGui.QWidget)
self._fft_usrp_win .show()
self.writetofileusrp =blocks.file_sink(gr.sizeof_gr_complex*1, "USRP_1e6_sine_test2_19db_offset.dat")
self.writetofilesine =blocks.file_sink(gr.sizeof_gr_complex*1, "sine_1e6_test_offset.dat")
##################################################
# Connections
##################################################
self.connect((self.sine, 0), (self.uhd_usrp_TX, 0))
self.connect((self.sine, 0), (self.writetofilesine, 0))
self.connect((self.uhd_usrp_RX, 0), (self.writetofileusrp, 0))
self.connect((self.uhd_usrp_RX, 0), (self.fft_usrp, 0))
self.connect((self.sine, 0), (self.fft_usrp, 1))
self.connect((self.uhd_usrp_RX, 0), (self.temp_after_usrp, 0))
self.connect((self.sine, 0), (self.temp_after_usrp, 1))
def main():
tb=gnuradioGUI()
tb.start()
tb.qapp.exec_()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
pass
Hi everyone!
I'm new to Gnuradio e USRP. I use a USRP N210 with WBX daughterboards and loop back cable to connect TX e RX. I have tested USRP with a simple flowgraph (sine , usrp_sink , usrp_source) and I have observed that the output signal from usrp_source block is time shifted. I mean, the usefull output signal starts after 0.0105 seconds. How can avoid this? I have tried to use "issued_stream_cmd", setting time_spec=0.0105 s but nothing has changed.
I want to use this USRP in a more complex project and I need to remove this initial time-shift.
I attach a plot of input and output signal and my flowgraph.
Thanks in advance for help,
Leo

No comments:
Post a Comment