Hello,
I wrote a simple grc graph to compute power spectra of the output of the
usrp. My test setup is a signal generator outputting a tone at the same
frequency that I set as the usrp center frequency, directly connected to
the usrp. But when I examine the output in Matlab, the first vector is
exactly what I expect, a peak at the center and then the noise floor.
The following vectors show the peak at lower and lower power levels
until, after 10 or so, it disappears into the noise. My code is
attached. Anybody know what could be causing this?
Any help would be appreciated.
Scott
--
Scott Johnston
MIT Lincoln Laboratory
244 Wood Street, Lexington, MA 02420-9108
(781) 981-8196
scott.johns...@ll.mit.edu
#!/usr/bin/env python
##################################################
# Gnuradio Python Flow Graph
# Title: Logpowertest
# Generated: Tue Mar 15 17:36:43 2011
##################################################
from gnuradio import blks2
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio import window
from gnuradio.eng_option import eng_option
from gnuradio.gr import firdes
from optparse import OptionParser
class logpowertest(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, "Logpowertest")
##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 32000
##################################################
# Blocks
##################################################
self.blks2_stream_to_vector_decimator_0 = blks2.stream_to_vector_decimator(
item_size=gr.sizeof_gr_complex,
sample_rate=samp_rate,
vec_rate=30,
vec_len=1024,
)
self.gr_complex_to_mag_squared_0 = gr.complex_to_mag_squared(1024)
self.gr_fft_vxx_0 = gr.fft_vcc(1024, True, (window.blackmanharris(1024)), True)
self.gr_file_sink_0 = gr.file_sink(gr.sizeof_float*1024, "/home/user/Desktop/logpowertest.bin")
self.gr_file_sink_0.set_unbuffered(False)
self.gr_nlog10_ff_0 = gr.nlog10_ff(10, 1024, 0)
self.uhd_single_usrp_source_0 = uhd.single_usrp_source(
device_addr="addr=192.168.10.2",
io_type=uhd.io_type.COMPLEX_FLOAT32,
num_channels=1,
)
self.uhd_single_usrp_source_0.set_clock_config(uhd.clock_config.external());
self.uhd_single_usrp_source_0.set_samp_rate(.2e6)
self.uhd_single_usrp_source_0.set_center_freq(800e6, 0)
self.uhd_single_usrp_source_0.set_gain(0, 0)
##################################################
# Connections
##################################################
self.connect((self.gr_fft_vxx_0, 0), (self.gr_complex_to_mag_squared_0, 0))
self.connect((self.gr_complex_to_mag_squared_0, 0), (self.gr_nlog10_ff_0, 0))
self.connect((self.uhd_single_usrp_source_0, 0), (self.blks2_stream_to_vector_decimator_0, 0))
self.connect((self.blks2_stream_to_vector_decimator_0, 0), (self.gr_fft_vxx_0, 0))
self.connect((self.gr_nlog10_ff_0, 0), (self.gr_file_sink_0, 0))
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.blks2_stream_to_vector_decimator_0.set_sample_rate(self.samp_rate)
if __name__ == '__main__':
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
(options, args) = parser.parse_args()
if gr.enable_realtime_scheduling() != gr.RT_OK:
print "Error: failed to enable realtime scheduling."
tb = logpowertest()
tb.start()
raw_input('Press Enter to quit: ')
tb.stop()
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
<timestamp>Tue Mar 15 17:36:42 2011</timestamp>
<block>
<key>variable</key>
<param>
<key>id</key>
<value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>value</key>
<value>32000</value>
</param>
<param>
<key>_coordinate</key>
<value>(10, 170)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>gr_complex_to_mag_squared</key>
<param>
<key>id</key>
<value>gr_complex_to_mag_squared_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>vlen</key>
<value>1024</value>
</param>
<param>
<key>_coordinate</key>
<value>(910, 187)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>uhd_single_usrp_source</key>
<param>
<key>id</key>
<value>uhd_single_usrp_source_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>nchan</key>
<value>1</value>
</param>
<param>
<key>dev_addr</key>
<value>addr=192.168.10.2</value>
</param>
<param>
<key>ref_clk</key>
<value>ext</value>
</param>
<param>
<key>sd_spec</key>
<value></value>
</param>
<param>
<key>samp_rate</key>
<value>.2e6</value>
</param>
<param>
<key>center_freq0</key>
<value>800e6</value>
</param>
<param>
<key>gain0</key>
<value>0</value>
</param>
<param>
<key>ant0</key>
<value></value>
</param>
<param>
<key>bw0</key>
<value>0</value>
</param>
<param>
<key>center_freq1</key>
<value>0</value>
</param>
<param>
<key>gain1</key>
<value>0</value>
</param>
<param>
<key>ant1</key>
<value></value>
</param>
<param>
<key>bw1</key>
<value>0</value>
</param>
<param>
<key>center_freq2</key>
<value>0</value>
</param>
<param>
<key>gain2</key>
<value>0</value>
</param>
<param>
<key>ant2</key>
<value></value>
</param>
<param>
<key>bw2</key>
<value>0</value>
</param>
<param>
<key>center_freq3</key>
<value>0</value>
</param>
<param>
<key>gain3</key>
<value>0</value>
</param>
<param>
<key>ant3</key>
<value></value>
</param>
<param>
<key>bw3</key>
<value>0</value>
</param>
<param>
<key>_coordinate</key>
<value>(182, 75)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>gr_fft_vxx</key>
<param>
<key>id</key>
<value>gr_fft_vxx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>fft_size</key>
<value>1024</value>
</param>
<param>
<key>forward</key>
<value>True</value>
</param>
<param>
<key>window</key>
<value>window.blackmanharris(1024)</value>
</param>
<param>
<key>shift</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(654, 83)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>gr_nlog10_ff</key>
<param>
<key>id</key>
<value>gr_nlog10_ff_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>n</key>
<value>10</value>
</param>
<param>
<key>k</key>
<value>0</value>
</param>
<param>
<key>vlen</key>
<value>1024</value>
</param>
<param>
<key>_coordinate</key>
<value>(914, 266)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>gr_file_sink</key>
<param>
<key>id</key>
<value>gr_file_sink_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>file</key>
<value>/home/user/Desktop/logpowertest.bin</value>
</param>
<param>
<key>type</key>
<value>float</value>
</param>
<param>
<key>vlen</key>
<value>1024</value>
</param>
<param>
<key>unbuffered</key>
<value>False</value>
</param>
<param>
<key>_coordinate</key>
<value>(1108, 286)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>blks2_stream_to_vector_decimator</key>
<param>
<key>id</key>
<value>blks2_stream_to_vector_decimator_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>sample_rate</key>
<value>samp_rate</value>
</param>
<param>
<key>vec_rate</key>
<value>30</value>
</param>
<param>
<key>vlen</key>
<value>1024</value>
</param>
<param>
<key>_coordinate</key>
<value>(419, 89)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<block>
<key>options</key>
<param>
<key>id</key>
<value>logpowertest</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>title</key>
<value></value>
</param>
<param>
<key>author</key>
<value></value>
</param>
<param>
<key>description</key>
<value></value>
</param>
<param>
<key>window_size</key>
<value>1280, 1024</value>
</param>
<param>
<key>generate_options</key>
<value>no_gui</value>
</param>
<param>
<key>category</key>
<value>Custom</value>
</param>
<param>
<key>run_options</key>
<value>prompt</value>
</param>
<param>
<key>run</key>
<value>True</value>
</param>
<param>
<key>realtime_scheduling</key>
<value>1</value>
</param>
<param>
<key>_coordinate</key>
<value>(10, 10)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
</block>
<connection>
<source_block_id>gr_fft_vxx_0</source_block_id>
<sink_block_id>gr_complex_to_mag_squared_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_complex_to_mag_squared_0</source_block_id>
<sink_block_id>gr_nlog10_ff_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_single_usrp_source_0</source_block_id>
<sink_block_id>blks2_stream_to_vector_decimator_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>blks2_stream_to_vector_decimator_0</source_block_id>
<sink_block_id>gr_fft_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_nlog10_ff_0</source_block_id>
<sink_block_id>gr_file_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
</flow_graph>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio