2

I need to implement an ASK (ampliltude shift keying) demodulation using a DSP ( a dsPIC ) and programming in C. Especifically talking, I need to demodulate a signal from a car's key transponder. I already have a circuit of antenna that receive the signal and I already can sample it, but I still have a doubt of how could be the best way, faster and reliable, to filter the signal. I was using a FIR filter using Kaiser windowing and 13 taps, but it demanded a lot of processing time and I still have some errors. Is there a better way to do it ?

With my best regards, Daniel.

Daniel
  • 141
  • 4
  • Could you start with analog down conversion? What A/D are you using? How you implement the multiplication for the FIR? What is your sampling rate? Could you implement digital down conversion? – Moti Mar 15 '16 at 05:27

1 Answers1

2

In general, a receiver would consist of these blocks:

  1. An analog band-pass filter centered around the carrier frequency.
  2. A low-noise amplifier to bring the signal above the receiver's sensitivity.
  3. Optionally, an analog intermediate frequency stage.
  4. A sampler. You can do bandpass sampling if the carrier frequency is too large for the ADC.
  5. In a DSP, implement:
    • Final downconversion if needed.
    • Downsampling to reduce the sampling rate
    • Carrier, frame and symbol synchronization
    • Matched filtering to recover the bits with optimum BER (in the case of ASK with rectangular pulse shaping, the matched filter is just an integrate & dump filter)

I highly recommend that you get and read Telecommunications Breakdown, by Johnson and Sethares, which is available for free (as a draft) from the authors' website: C. R. Johnson, W. A. Sethares - Telecommunication Breakdown - Concepts of Communication Transmitted via Software-Defined Radio.

lennon310
  • 3,590
  • 19
  • 24
  • 27
MBaz
  • 15,314
  • 9
  • 30
  • 44
  • Thnak you very much!! Sorry for the delayed answer. I needed to stop the project and now I'm starting again in my free time only. – Daniel Jul 20 '16 at 14:51
  • I liked your recomendations and the book reference, I noticed that I was not performing downconversion. I'm performing the sampling at 900Khz and the signal of interest has a 30kHz base band and has a carrier frequency of 125kHz. The carrier is generated in the own base station that I'm implementing and the transponder modulates it by load modulation. So I was wondering how to do a digital multiplication of the samples by a cosine wave to perform downconversion. – Daniel Jul 20 '16 at 15:11
  • @Daniel The trick is to generate a sine wave of the same frequency and phase as the transmitter's. You need to perform carrier synchronization to find the frequency and phase, and then use those to downcovert. – MBaz Jul 20 '16 at 16:55
  • I'm performing downconversion via sampling. The received signal has a carrier frequency of 125 kHz modulated with a 30kHz that is the signal of interest, so, I sampled the received signal with a tax rate of 62,5kHz that is the half of the frequency of the carrier. – Daniel Oct 21 '16 at 13:12