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
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio