discuss-gnuradio
[Top][All Lists]
Advanced

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

RE: [Discuss-gnuradio] Re: Complex samples format with ASK


From: Paul Mathews
Subject: RE: [Discuss-gnuradio] Re: Complex samples format with ASK
Date: Wed, 26 Nov 2008 14:12:54 -0800

> I know very little about RFID, but I can make these observations on

> how I would probably perform a naive demodulation of this signal.

>  1. Tune the USRP to your carrier frequency and bring your signal
> down to baseband (centered around DC).
>  2. Choose an appropriate number of samples per symbol or bit (I'd

> arbitrarily choose 6 .. or 8).
>  3. Filter the incoming signal to some appropriate spectral mask.
>  4. Find the magnitude (or even power since it saves a sqrt) of the
> complex vector.
>  5. Develop some algorithm which accounts for frequency offset/tracking.

>  6. Perform hard decisions from the soft decisions you make from the
> algorithm developed in step (5).
Marco, 
Are you trying to decode the reader transmission, or the tag reply? You may
be able to use a matched filter as a first step to clean up the signal before
demodulating. I'm not really sure what 13.56 MHz RFID signals look like, but that
helps a lot at 915 MHz.

Regardless, I think step 3 is the key to get you started. You don't want to just
throw out the I or Q channel. You probably want to use the complex_to_mag block,
and then the signal will look like what you expect.

michael 
To try to answer Marco's original question about I/Q directly: the phase info available from I/Q samples is not directly useful for RFID ASK signals. However, the calculated magnitude provides slightly better SNR than would samples of magnitude alone.
 
I've done a lot of work with 13 MHz RFID. Most common form of modulation is Amplitude Shift Keying, a form of AM, with the data stream Manchester encoded.
http://en.wikipedia.org/wiki/Manchester_coding
A good example of channel filtering and AM demodulation using complex_to_mag is usrp_am_mw_rcv.py. That example is setup for AM broadcast, so you'll want to widen the channel filter BW out to accomodate the baud rate you're using, and, you can eliminate the audio filtering and sink code. The demodulated output is the 'envelope' of the signal, with an offset the depends on the percentage of modulation achieved. The RFID reader in Marco's case achieves 100% modulation, so the offset will be 50% of peak level, like this (fixed font spacing req'd):
       ___     ___     ___
      |   |   |   |   |   |
 0 ___|   |___|   |___|   |___
 
RFID tags typically achieve much lower modulation percentages, depending on coupling with the reader, like this:
 
       ___     ___    ___
      |   |___|   |__|   |
 0 ___|                  |___ 
 
In either case, you can threshold the data at some value less than the average peak to do a crude conversion from envelope to bits. In turn, you can examine the bitstream to locate bit transitions. The bit stream can then be decoded. There are better ways, e.g., using matched filters, to identify Manchester codes directly from the envelope data, but this should get you started.
Paul Mathews   

reply via email to

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