[dsp] AFSK demodulator code for ARM7TDMI?
John B. Stephensen kd6ozh at verizon.netSat Feb 12 00:42:21 UTC 2005
- Previous message: [dsp] AFSK demodulator code for ARM7TDMI?
- Next message: [dsp] AFSK demodulator code for ARM7TDMI?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I haven't implemented FSK demodulation yet, but an FFT should be
unnecessary. If you have in-phase (I) and quadrature (Q) samples, the
algorithm:
I[1] * (Q[1] - Q[0]) - Q[1] * (I[1] - I[0])
-------------------------------------------
I[1] * I[1] + Q[1] * Q[1]
where [1] is the current sample and [0] is the previous sample is supposed
to implement a frequency discriminator. It's no good for audio as there is
lots of distortion, but it should be good for data. I'm working on 100 kbps
to 4 Mbps data links so the filtering and demodulation is done in an FPGA
and the ARM MCU is used for Reed-Solomon encoding and decoding. For lower
speeds the ARM7 should be able to do it all.
The portable RTOS's are usually written in C and the efficiency depends on
the compiler used. They usually run in user mode and don't make use of
system and other modes for task switching and error recovery. I wrote a very
simple non-preemtive OS in ARM assembly language that does a task switch in
less than a microsecond.
If the PDC can handle the CODEC it will mean a lot less overhead. Another
approach is to use the fast interrupt and the dedicated registers associated
with it.
73,
John
KD6OZH
----- Original Message -----
From: "Scott Miller" <scott at opentrac.org>
To: "TAPR DSP Mailing List" <dsp at lists.tapr.org>
Sent: Friday, February 11, 2005 22:16 UTC
Subject: Re: [dsp] AFSK demodulator code for ARM7TDMI?
> > If you purchase the ARM developers guide there are examples of FIR
filters
> > and a radix-4 FFT implementation. The speed is adequate for any
> application
> > processing data from an audio CODEC.
>
> Thanks, I'll have to look into that. That brings up another question...
> what's best for decoding AFSK - Goertzel algorithm, FFT, quadrature
> demodulator, etc? From the description I read, the Goertzel algorithm
> sounded less CPU-intensive than a regular FFT for a small number of
> frequencies, but I think it might take too long a sample period to be very
> useful. The quadrature demodulator I'm still learning about - seems like
it
> needs a certain amount of low-pass filtering. I understand some of the
> basic concepts, but the reality of their implementation is another matter.
>
> > Since I couldn't find a fast real-time OS for the ARM7, I ended up
writing
> > one. If anyone wants a copy for amateur radio applications, send me an
> > email.
>
> Define 'fast'. I'm using FreeRTOS. Works so far, but then I'm not doing
> any signal processing yet! I'm hoping that the peripheral data controller
> functions will help keep my interrupt processing overhead low - if I can
> load sizeable blocks of data from the codec without an interrupt each
byte,
> it'll mean a lot less interrupts.
>
> Scott
> N1VG
>
>
> _______________________________________________
> dsp mailing list
> dsp at lists.tapr.org
> https://lists.tapr.org/cgi-bin/mailman/listinfo/dsp
>
- Previous message: [dsp] AFSK demodulator code for ARM7TDMI?
- Next message: [dsp] AFSK demodulator code for ARM7TDMI?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the dsp mailing list
