Thanks for the reply Eric, here is what I have now:

#!/usr/bin/env python

from gnuradio import gr, gru, window
from gnuradio import usrp

from gnuradio.wxgui import stdgui, fftsink, scopesink
import wx

class topBlock(gr.top_block):
    def __init__(self):
        gr.top_block.__init__(self)

        fftsize = 256
        udecim = 256

        mywin = window.blackmanharris(fftsize)
        fft = gr.fft_vcc(fftsize, True, mywin)

        signal = usrp.source_c(0,udecim)    # signal from Basic RX, 
decimation=256

        ss2v = gr.stream_to_vector(gr.sizeof_gr_complex, fftsize)
        v2ss = gr.vector_to_stream(gr.sizeof_gr_complex, fftsize)

        f_sink = gr.file_sink(gr.sizeof_gr_complex,"output.dat")

        self.connect(signal, ss2v, fft, v2ss, f_sink)

        # Do stuff with fsink.data()
        

def main():
    print "Initilizing.."
    tb = topBlock()
    print "Flowgraph start.."
    tb.start()

    print "Exiting.."

if __name__ == "__main__":
    main()


But the output.dat file is empty. What I want to do here is to calculate the 
fft of a bunch of samples and from there to extract the bin with the maximum 
value in order to be able later to "follow" that signal in a aprox 200 Hz 
bandwidth

Adrian

You need to insert a gr.stream_to_vector block between the usrp and
the fft.  Also, using vector_sink_c is not recommended for anything
but QA code that runs with a small number of samples.  If used like
you are trying to use it, it will consume all of the memory on your
system.  Use a gr.file_sink instead.

Eric



      
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to