Hi all,

i only want to notify the Developers, that i found a Bug.
My gnuradio Version is,
SVN Sources from 2009 Feb 26.
The variable will not be initialized by variables i defined before.

The only thing what works is to initialze first the FFT sink Element
and after this change the <baseband_freq>.

Regards Markus

P.s.: I try to attach my Code.
#!/usr/bin/env python
# encoding: utf8
"""
Title:Mehrfrequentes Impulsmessverfahren mit FPGA-
gestützten SDR-(Software definded radio)-Komponenten.
Beschreibung: Mit Hilfe dieses Programmes soll ein
mehrfrequentes Impulsmessverfahren entwickelt werden,
womit Teilentladungen an Hochspannungsisolationen
nachgewiesen werden können.

"""

__title__='Mehrfrequentes Impulsmessverfahren'
__author__='Markus Feldmann'
__version__='Diplom WS08/09 Ver.:2009-02-27-01'
__license__='GPL'


from gnuradio import gr
from gnuradio.wxgui import fftsink2
from grc_gnuradio import usrp as grc_usrp
from grc_gnuradio import wxgui as grc_wxgui
from optparse import OptionParser
import wx
import time


class uebertragungschar_LF_RX(grc_wxgui.top_block_gui):

	def __init__(self, options):
		grc_wxgui.top_block_gui.__init__(self,
		   __title__+' - '+__author__+' - '+__version__)

		##################################################
		# Parameters
		##################################################
		self.sub_dev_side = options.sub_dev_side
		self.sub_dev_ant = options.sub_dev_ant
		self.usrp_freq = options.usrp_freq
		self.usrp_freq_min = options.usrp_freq_min
		self.usrp_freq_max = options.usrp_freq_max
		self.sample_rate = options.sample_rate

		##################################################
		# Variables
		##################################################
		self.middle_freq_fft_plot = self.usrp_freq
		self.gain_usrp_source = 0
		self.decimation_usrp_source = 64e6/self.sample_rate

		##################################################
		# Controls
		##################################################
		_usrp_freq_control = grc_wxgui.slider_horizontal_control(
			window=self.GetWin(),
			callback=self.set_usrp_freq,
			label="Oszillatorfrequenz",
			value=self.usrp_freq,
			min=self.usrp_freq_min,
			max=self.usrp_freq_max,
			num_steps=290,
			slider_length=1024,
		)
		self.Add(_usrp_freq_control)
		_fft_plot_sample_rate_control = grc_wxgui.drop_down_control(
			window=self.GetWin(),
			callback=self.set_sample_rate,
			label="Sample Rate Throttle",
			index=0,
			choices=[250e3, 500e3, 1e6, 2e6, 4e6, 8e6, 16e6],
			labels=[],
		)
		self.GridAdd(_fft_plot_sample_rate_control, 4, 1, 2, 1)
		_gain_usrp_source_control = grc_wxgui.slider_vertical_control(
			window=self.GetWin(),
			callback=self.set_gain_usrp_source,
			label="Gain Usrp Source",
			value=self.gain_usrp_source,
			min=0,
			max=20,
			num_steps=100,
			slider_length=200,
		)
		self.GridAdd(_gain_usrp_source_control, 4, 0, 2, 1)

		##################################################
		# Blocks
		##################################################
		self.gr_throttle_0 = gr.throttle(gr.sizeof_gr_complex*1, self.sample_rate)
		self.usrp_simple_source_x = grc_usrp.simple_source_c(which=0, side=self.sub_dev_side,
									     rx_ant=self.sub_dev_ant)
		self.usrp_simple_source_x.set_decim_rate(self.decimation_usrp_source)
		self.usrp_simple_source_x.set_frequency(self.usrp_freq, verbose=True)
		self.usrp_simple_source_x.set_gain(self.gain_usrp_source)
		self.wxgui_fftsink2 = fftsink2.fft_sink_c(
			self.GetWin(),
			baseband_freq = self.usrp_freq,
			y_per_div = 10,
			y_divs = 8,
			ref_level = 60,
			sample_rate = self.sample_rate,
			fft_size = 1024,
			fft_rate = 30,
			average = True,
			avg_alpha = None,
			title = "FFT Plot",
			size=(1024, 600),
			peak_hold = False,
		)
		self.GridAdd(self.wxgui_fftsink2.win, 0, 0, 2, 4)

		##################################################
		# Connections
		##################################################
		self.connect((self.usrp_simple_source_x, 0), (self.gr_throttle_0, 0))
		self.connect((self.gr_throttle_0, 0), (self.wxgui_fftsink2, 0))
		
		##################################################
		# FFT Plot Element does not show correct Baseband
		##################################################
		self.set_usrp_freq(self.usrp_freq)

	def set_usrp_freq_min(self, usrp_freq_min):
		self.usrp_freq_min = usrp_freq_min

	def set_usrp_freq_max(self, usrp_freq_max):
		self.usrp_freq_max = usrp_freq_max

	def set_usrp_freq(self, freq):
		self.usrp_freq = freq
		self.usrp_simple_source_x.set_frequency(self.usrp_freq)
		self.wxgui_fftsink2.set_baseband_freq(self.usrp_freq)
		
	def get_usrp_freq(self):
		return self.usrp_freq

	def set_sample_rate(self, sample_rate):
		self.sample_rate = sample_rate
		self.set_decimation_usrp_source(sample_rate)
		self.wxgui_fftsink2.set_sample_rate(self.sample_rate)

	def set_gain_usrp_source(self, gain_usrp_source):
		self.gain_usrp_source = gain_usrp_source
		self.usrp_simple_source_x.set_gain(self.gain_usrp_source)

	def set_decimation_usrp_source(self, sample_rate):
		"""
		The sample rate across the USB is determined by the interpolation or
		decimation rate programmed into the usrp.
		So you have to calculate deciamtion rate which you want to set up.

		On receive, USB sample rate = 64e6 / decimation_rate
		On transmit, USB sample rate = 128e6 / interpolation_rate

		"""
		self.decimation_usrp_source = 64e6/sample_rate
		self.usrp_simple_source_x.set_decim_rate(self.decimation_usrp_source)

if __name__ == '__main__':
	parser = OptionParser()
	parser.add_option("--subdev-side", dest="sub_dev_side", type="str", default='B',
			  help="select USRP side A or B")
	parser.add_option("--subdev-ant", dest="sub_dev_ant", type="str", default='RXB',
			  help="select USRP subdevice Antenna, for example RXA or RXB")
	parser.add_option("--usrp-freq", dest="usrp_freq", type="float", default=10e6)
	parser.add_option("--usrp-freq-min", dest="usrp_freq_min", type="float", default=0)
	parser.add_option("--usrp-freq-max", dest="usrp_freq_max", type="float", default=29e6)
	parser.add_option("--sample-rate", dest="sample_rate", type="float", default=250e3)
	(options, args) = parser.parse_args()	
	tb = uebertragungschar_LF_RX(options)
	tb.Run()

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to