Filtering USRP FM Reception

Hey all,

I was wondering, is there anything in particular that’s peculiar about
using
a filter to isolate one sine wave out of three that are being
transmitted
over FM? I’ve attempted adding another FIR (optfir) filter post-demod,
but
connecting it to the pipeline produces a long list of small floats in
the
terminal (filter coefficients, perhaps?), and then the program
terminates.
Otherwise, the program is identical to usrp_wfm_rcv_nogui.py. It runs as
normal when the filter is commented out, outputting all signals at a
specific FM frequency to the sound card. However, I don’t accomplish my
task
with that.

What’s the proper method for filtering signals, then? It looked fairly
straightforward, but perhaps optfir doesn’t function as I was expecting
it
to. My code is attached.

http://www.nabble.com/file/p22029608/usrp_wfm_rcv_filt_nogui.py
usrp_wfm_rcv_filt_nogui.py

View this message in context:
http://www.nabble.com/Filtering-USRP-FM-Reception-tp22029608p22029608.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Addendum: Apparently it was just a really, really long list of floats
that
was a part of a larger away message, but I couldn’t scroll up enough
when
the terminal wasn’t running full-screen. Here’s the error message:

Traceback (most recent call last):
File “usrp_wfm_rcv_filt_nogui.py”, line 157, in
fg = wfm_rx_graph()
File “usrp_wfm_rcv_filt_nogui.py”, line 98, in init
self.connect (self.u, chan_filt, self.guts, self.cleanup,
self.volume_control, audio_sink)
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/basic_flow_graph.py”,
line 115, in connect
self._connect (points[i-1], points[i])
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/basic_flow_graph.py”,
line 119, in _connect
for d in expand_dst_endpoint (dst_endpoint):
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/basic_flow_graph.py”,
line 59, in expand_dst_endpoint
dst_endpoint = coerce_endpoint (dst_endpoint)
File
“/usr/local/lib/python2.5/site-packages/gnuradio/gr/basic_flow_graph.py”,
line 84, in coerce_endpoint
raise ValueError, “Not coercible to endpoint: %s” % (x,)
ValueError: Not coercible to endpoint: [insert long list of floats here]

Francesco B. wrote:

outputting all signals at a specific FM frequency to the sound card.
However, I don’t accomplish my task with that.

What’s the proper method for filtering signals, then? It looked fairly
straightforward, but perhaps optfir doesn’t function as I was expecting it
to. My code is attached.

http://www.nabble.com/file/p22029608/usrp_wfm_rcv_filt_nogui.py
usrp_wfm_rcv_filt_nogui.py


View this message in context:
http://www.nabble.com/Filtering-USRP-FM-Reception-tp22029608p22029904.html
Sent from the GnuRadio mailing list archive at Nabble.com.

D’oh! Took me long enough to notice that the optfir block generates
coefficients, but isn’t the filter itself. Putting it into the pipeline
directly was a bad idea.

So I have transmitter and receiver, and they run without errors… they
just
aren’t giving me what I expect. The filtered sum of sine waves at 320
Hz,
440 Hz, and 650 Hz, when given a passband of 340 Hz and stopband of 800
Hz
should produce roughly the 320 Hz sine wave (perhaps with some
attenuated
elements of the other signals). However, it doesn’t appear to be doing
so.
When played at a sampling rate of 32000, the speakers produce more of a
popping sound. Which is still periodic, but isn’t a sine wave. The
output
file is stored as an attachement (which can be viewed in a hex editor or
played with audio_play.py), as is the latest revision of the code.

Any thoughts?

~ Francesco

http://www.nabble.com/file/p22174207/filtered_reception.dat
filtered_reception.dat
http://www.nabble.com/file/p22174207/usrp_wfm_rcv_filt_nogui.py
usrp_wfm_rcv_filt_nogui.py
http://www.nabble.com/file/p22174207/wfm_tx_multisignal.py
wfm_tx_multisignal.py

Francesco B. wrote:

outputting all signals at a specific FM frequency to the sound card.
However, I don’t accomplish my task with that.

What’s the proper method for filtering signals, then? It looked fairly
straightforward, but perhaps optfir doesn’t function as I was expecting it
to. My code is attached.

http://www.nabble.com/file/p22029608/usrp_wfm_rcv_filt_nogui.py
usrp_wfm_rcv_filt_nogui.py


View this message in context:
http://www.nabble.com/Filtering-USRP-FM-Reception-tp22029608p22174207.html
Sent from the GnuRadio mailing list archive at Nabble.com.