А в чем собственно проблема ?
В свое время делал QPSK радиомодем.
Сейчас опять встала задачка подобная, вот в не рабочее время делаю потихоньку. Надо же и дома шарить рабочий восьми мегабитный канал

))
На 1.2ГГц диапазоне (позывной есть, диапазон пустой полосы достаточно, что еще для счастья надо)

))
Щас потихоньку пишу думаю делать OFDM вместе с турбо кодированием

XXX, вы сударь кокретнее говорите какие проблемы может и поможем.
А так ... Да что вам того FIR'f то задача на 60 секунд (и то писать больше, чем думать)
#define TAPS 32
/*FIR Filter*/
float *CoeffPtr;
float *DataPtr;
//выделяем память под CoeffPtr, DataPtr
//ну тут уже смотря где сидим под что пишем и т.д.
float fir (*DataPtr, *CoeffPtr)
{
float res;
for (int k = 0; k < TAPS; k++)
res += *(CoeffPtr+ k) * *(DataPtr+ k);
return res;
}
//вот Вам и весь FIR