Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

AM/ASK Demodulation in RFID-Reader

Status
Not open for further replies.

parra

Newbie level 6
Joined
May 27, 2008
Messages
12
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,381
pll to decode ask signal

Hi,

I've got a amplitude modulated signal which comes from a RFID transponder, which after doing some filtering looks similar to the one on the attached picture. This signal is sampled with the help of an analog/digital converter (sample frequency 80kHz) and for further processing there is a DSP.

My question now: What would be the best and most effective way of demodulating the signal (so, for the example image, that the output of my DSP would be 101101000110)?

So far I've done it this way:
a) check if there has been a zero crossing:
-> sample[n-1]>=0, sample[n]<0 means falling edge
-> sample[n-1]<=0, sample[n]>0 means rising edge
b) counting the samples until the next zero crossing occurs. According to the sampling rate, there are usually eight samples per bit.
-> if 12 or less samples until next zero crossing, it has to be a 0 (when falling edge) or 1 (rising edge)
-> if 13...20 samples, it has to be a 00 (when falling edge) or 11 (rising edge)
-> if 21 or more samples, it has to be a 000 (when falling edge) or 111 (rising edge)
(other cases are don't care - there aren't more than three 0's or 1's in a row)


Of course I could add some adaptive threshold to improve performance when there is noise, but all in all the algorithm works.

Though - this algorithm just based on counting zero crossings somehow looks a bit rough and primitive to me. As I'm relatively new to all this digital signal processing and demodulation stuff, am I missing a more effective (error performance, processing time) way of demodulating such a signal?


Thanks for any suggestions,
parra
 

rfid demodulator

Basically, the modulation should be decoded according to the used standard. I can't see from the drawing which modulation scheme is involved here.
 

pic ask demodulation

What do you mean by "the modulation should be decoded according to the used standard"?

The signal is more or less a filtered (lowpass + highpass) ASK-signal (which uses FM0 code as specified in the UHF-RFID-standard DIN 18000-6b btw, if that's of interest). It just uses two amplitudes, A and -A, which is why I so far used the zero crossings to identify if it is a 0 or 1.

The question now is, if there are other/better algorithms to get hold of the bitstream.
 

bi phase demodulation

Yes, I think the modulation characteristic is important to decode the signal if signal-to-ratio isn't as excellent as in your example. My formulation decoded according to the used standard was motivated from working with ISO14443 return link, where the data rate is known to be an exact integer part of the carrier frequency. Exploiting this knowledge allows considerable better decoding of noisy signal than just looking for zero crossings.

ISO 18000-6 biphase modulation in contrast has a symbol rate with +/-15 % maximum variation, so it's somewhat more complicated. Your suggestion, to measure the time difference between zero crossings may get difficult under this conditions, cause the difference between 2*T+15% and 3*T-15% is rather small.

But the symbol rate used by an individual tag could be recovered from preamble and tracked during data transmission. This would - without discussing a specific technique for realisation - generally improve the chances to decode a signal from noise. I never have been working with optimal biphase demodulation, I just assume that an optimal method exists.
 

    parra

    Points: 2
    Helpful Answer Positive Rating
mesure index de modulation ask

Thanks alot for your reply,

FvM said:
ISO 18000-6 biphase modulation in contrast has a symbol rate with +/-15 % maximum variation, so it's somewhat more complicated. Your suggestion, to measure the time difference between zero crossings may get difficult under this conditions, cause the difference between 2*T+15% and 3*T-15% is rather small.

I should have mentioned those 15% beforehand, sorry for not doing that!
I'm just seeing bits and bytes currently, so I just forgot that part.

If I have 8 samples per bit, as I'm doing it currently, that would make...
for 1*T (with +/-15%): minimum 6 samples, maximum 9 samples per "0" or "1"
for 2*T (with +/-15%): minimum 13 samples, maximum 18 samples per "00" or "11"
for 3*T (with +/-15%): minimum 20 samples, maximum 27 samples per "000" or "111"

So the difference between 2*T+15% and 3*T-15% should not cause a problem in theory I think. Otherwise I'm also able to rise the sampling frequency a bit to 9 or 10 samples per bit if really needed


FvM said:
But the symbol rate used by an individual tag could be recovered from preamble and tracked during data transmission. This would - without discussing a specific technique for realisation - generally improve the chances to decode a signal from noise. I never have been working with optimal biphase demodulation, I just assume that an optimal method exists.

Yes, that would be a nice way to do it. Though, I first have to detect the preamble again somehow, what leaves me again with the question of a capable technique to do this. Maybe something like implementing a software-PLL would be the way to go?
 

ask demodulating

You're basically right that your detection would work also when the maximum modulation rate tolerance is applied. But when noise is added to the signal, the zero crossing may show some timing jitter, also low frequency amplitude variations may be present and increase timing uncertainty.

When I mentioned possible clock recovery, I imagined a PLL. It should be applicable as in most demodulation problems and hopefully increase SNR by removing some out of phase noise from evaluated signal. So it should be regarded at least as an option.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top