[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] FFT of FFTs
From: |
James Cooley |
Subject: |
[Discuss-gnuradio] FFT of FFTs |
Date: |
Sat, 18 Jun 2005 20:18:38 -0400 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050317) |
Hi all,
I'm trying to take an FFT of an FFT.... Basically, I want to tune to a
signal, and for a given RF frequency, try to spot periodic usage of that
frequency. Is this possible? What I have now is hopelessly slow, so I'm
not really sure if I've got it right.
My construct so far is like this:
# this is my own guts block, made created exactly like fftsink, except
it does not
# write to a pipe and have the gui, etc. It's just a drop-in guts block
with the serialized floats on the output
self.fft_one = fft_block_c(self, fft_size=512, sample_rate=usrp_rate)
# another of my own, I'm not using it for my initial test, but thought
I'd run it by you.. Complex fft spits out
# positive freq buckets followed by negative freqs in the 2nd half of
the stream, this just reorders in freq order,
# just like the input watcher code of fft_sink does
#self.reorder_fft = gr.cfft_reorder(512)
# split up each of 512 fft buckets into its own stream
self.v2s = gr.vector_to_streams(gr.sizeof_float, 512)
#connect what we have
self.connect(src, self.fft_one, self.v2s)
# make null sinks to terminate the flow graphs for all but the one,
selectable bucket that we want to look at
# (in this case, bucket 0)
for i in range(512):
if(i == 0):
self.fft_two = fftsink.fft_sink_f (self,
panel,
title="2nd Order FFT",
fft_size=512,
sample_rate=usrp_rate/512,
baseband_freq=0)
self.connect((self.v2s,i),self.fft_two)
else:
ns = gr.null_sink(gr.sizeof_float)
self.connect ((self.v2s,i), ns)