OK, I'm just getting around to trying these suggestions... First, re
Eric's suggestions below.
A few quick questions about this.
I'm interested in tuning to a frequency (with usrp/frontend) then
examining a single stream for periodic content. I've tried this but not
exactly sure what I'm seeing.
The questions are, have I set this up properly? I have intended to grab
whatever signal is at 50kHz (arbitrary) above what we're tuned to and
analyze that.
How do I best select the feed forward and feed back filter coefficients?
(I ended up using the tool as written in the comments).
Also, any suggestions on things to look at within the TVRX range that
should definitely test this out? (I think that GSM (TDMA) bands are a
bit out of range... up around 900MHz). I wondered if I could pick out
the periodicity of NTSC scans perhaps (maybe I'd need like a test
pattern, eh? to guarantee that the scan is periodic and non changing
long enough for me to try it).
# xlating filter
adnl_decim = 1
taps = [1.0]
shift = -50e3
capture_rate = usrp_rate
channel_coeffs = gr.firdes.low_pass (1.0, # gain
capture_rate, #
sampling rate
200e3, # low
pass cutoff freq
200e3, # width
of trans. band
gr.firdes.WIN_HAMMING)
xlate_filt = gr.freq_xlating_fir_filter_ccf(adnl_decim,
channel_coeffs,
shift,
capture_rate)
# complex to magnitude
cplx_to_mag = gr.complex_to_mag()
#
# Filter Coeffs correspond to butterworth iir low pass filter
# passband 0 - 1000 Hz
# Order 1
#
#
http://www.dsptutor.freeuk.com/IIRFilterDesign/IIRFilterDesign.html
#
fbtaps = [0.29289326, 0.29289326]
fftaps = [1.0, -0.41421357]
iir_low_pass = gr.iir_filter_ffd(fftaps, fbtaps)
# fft
occ_fft = fftsink.fft_sink_f (self, panel, title="Occupancy
FFT",
fft_size = 512,
sample_rate=usrp_rate,
baseband_freq=0)
self.connect (src, cplx_to_mag, iir_low_pass, occ_fft)
Eric Blossom wrote:
On Sat, Jun 18, 2005 at 08:18:38PM -0400, James Cooley wrote:
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.
Hi Jamie,
Here are a couple of suggestions. If there are relatively few
frequencies that you want to observe for periodic occupancy, I would
suggest extracting the frequency bands of interest using a
gr.freq_xlating_fir_filter for each one. If there are lots of them,
and they are evenly spaced, then the dft filterbank is what you want
to split them out (blksimpl/filterbank.py).
Once you've got your individual streams of signals, for each one I
would compute an estimate of whether it is occupied. You could do
this by computing the magnitude of the stream (gr.complex_to_mag) and
then low pass filtering that with a gr.iir_filter, possibly followed
by a limiter (which would need to be written). At this point, for
each of your input streams, you have an output stream that is
effectively a stream of 1's and 0's, where 1 means "is occupied".
Then run each of those streams into it's own FFT. Point this whole
pipeline at some kind of TDMA input (GSM basestation?) and you
ought to see the slots (assuming the basestation isn't driving all
the slots all the time).
Eric
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio