I'm trying to demodulate FreeDV as a learning exercise. Without much experience in DSP I'm afraid I'm lost in the source code :(
The modulation consists of 15 subcarriers each with a symbol rate of 50 per second, spaced 75 Hz apart. The center subcarrier is BPSK and alternates phase every symbol (to help with synchronization) and the rest are QPSK with the encoded data. I'm having trouble wrapping my head around how to demodulate this. I've gone through the PSK demodulation tutorial and I'm trying to apply it to this problem. I've started by using the polyphase channelizer with a root raised cosine filter to extract each subcarrier, and that much seems to work. I'm not sure then how to proceed with timing recovery. The tutorial uses the polyphase clock sync for this, but since the signal has already gone through the RRC filter in the channelizer, going through another RRC does not seem correct. And it seems rather inefficient to decimate each channel, only to effectively interpolate it again for timing recovery. How can I approach this? Furthermore, it seems relevant all the channels share a clock: I'd think I can use that somehow. Also the center subcarrier is sending a known sequence of symbols and that should be worth something. Some pointers to algorithms I should consider, and hopefully relevant blocks would be very much appreciated. _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio