I have a 32MHz MCU (Atmel XMEGA A4) and I need to recover a digital signal coming from a GPS front end chip which is outputting SIGN and MAGNITUDE data at 16.368MHz. Clearly this is a hell of a task for the XMEGA running at only 32MHz. Is there any way that this is possible?
I ultimately want to save the data in a compressed form to some memory. I'd like to convert the 16.368MHz data stream to I/Q samples at baseband (0Hz IF). Using some DSP techniques this is quite feasible, I could filter the incoming data and then downsample (keep every M'th sample and discard all others). This could be done in a reasonable number of clock cycles although it does seem like a bit of a task for the 32MHz XMEGA.
So is an MCU even the right tool for this job? I've chosen this one because the final application is a battery powered device and every nanoCoulomb needs to be conserved. With this in mind, if there's no good way to accomplish this with the XMEGA, should I maybe be looking at some kind of DSP chip? Or possibly a low power FPGA?