[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] initializing the baseband_freq in the fftsink2.fft_si
From: |
Markus Feldmann |
Subject: |
[Discuss-gnuradio] initializing the baseband_freq in the fftsink2.fft_sink_c |
Date: |
Mon, 02 Mar 2009 18:15:29 +0100 |
User-agent: |
Mozilla-Thunderbird 2.0.0.19 (X11/20090103) |
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()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] initializing the baseband_freq in the fftsink2.fft_sink_c,
Markus Feldmann <=