6 #filename = "output.dat";
8 #Fs = (102.4/decim) * 1e6;
11 from gnuradio import gr;
12 from Numeric import *;
20 print "usage: %s filename <sample_rate_in_MSPS> <stride_samples>"%(sys.argv[0]);
23 filename = sys.argv[1];
26 fs = float(sys.argv[2])*1000000;
27 print "opening %s.\n"%(filename);
30 stride = int(sys.argv[3]);
31 print "using stride = %d"%(stride);
34 src = gr.file_source(gr.sizeof_gr_complex, filename, False)
35 sink = gr.vector_sink_c();
41 datalen = len( data );
43 time_bins = (datalen - fft_bins) / stride;
45 print "output vector :: fft_bins = %d, time_bins = %d\n"%(fft_bins,time_bins);
49 b = numpy.zeros((time_bins, fft_bins), complex);
52 window = numpy.blackman(fft_bins);
54 for i in range(0,time_bins):
56 time_chunk = take( dataa, range(start_idx,start_idx + fft_bins), 0);
57 time_chunk = time_chunk * window;
58 fft_chunk = numpy.fft.fftshift(numpy.fft.fft(time_chunk));
59 psd = 10*log10(fft_chunk * conj(fft_chunk)+0.001);
62 l.append( psd.real.tolist() );
64 start_idx = start_idx + stride;
73 x = range(0,time_bins);
75 y = range(0,fft_bins);