I'm working on a software defined radio project on a PIC32 MCU. I'm using a CMX 973 quadrature frontend to provide I and Q. I'm independently low passing I and Q with carefully matched analog filters to reduce the overall bandwidth to 192 kHz, then digitizing it with an audio codec.
I'm going to be receiving a couple of closely-spaced channels so I'll need to filter them separately (bandpass), mix, and downsample. I'll also need to do some filtering for pulse shaping and PLL. These operations are all on complex-valued signals (I-Q).
The trouble is the PIC32 DSP library only provides an FIR filter implementation for real-valued filters. I can write my own complex filter implementation relatively easily, but it won't come with the benefit of optimization done by Microchip - I'll have to do it myself. I can do it, but I'd like to avoid it if I can.
Mathematically, is there any way to split a complex signal into I and Q and perform filtering using several real-valued filters which would have the same response as a complex-valued filter (particularly for bandpass filtering)? If so, how, and what are the limits to this approach?