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);
35 src = gr.file_source(gr.sizeof_gr_complex, filename, False)
36 sink = gr.vector_sink_c();
42 datalen = len( data );
44 time_bins = (datalen - fft_bins) / stride;
46 print "output vector :: fft_bins = %d, time_bins = %d\n"%(fft_bins,time_bins);
50 b = numpy.zeros((time_bins, fft_bins), complex);
53 window = numpy.blackman(fft_bins);
55 for i in range(0,time_bins):
57 time_chunk = take( dataa, range(start_idx,start_idx + fft_bins), 0);
58 time_chunk = time_chunk * window;
59 fft_chunk = numpy.fft.fftshift(numpy.fft.fft(time_chunk));
60 psd = 10*log10(fft_chunk * conj(fft_chunk)+0.001);
63 l.append( psd.real.tolist() );
65 start_idx = start_idx + stride;
74 x = range(0,time_bins);
76 y = range(0,fft_bins);