discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] FFT of FFTs


From: James Cooley
Subject: Re: [Discuss-gnuradio] FFT of FFTs
Date: Sun, 10 Jul 2005 15:18:09 -0500
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Any more suggestions on spotting periodic content? (as below?)

Chiefly, can anyone think of something that I might be able to definitely pick out within TVRX range?

-jamie



James Cooley wrote:

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]