On Wed, 2012-06-13 at 09:42 +1000, David Rowe wrote: > Hello Gullik, > > The FFT is not used to differentiate between carriers. It is used to > estimate the frequency of the "down converted" pilot tone. Some other > modems (e.g. OFDM) use FFTs and inverse FFTs for the demod and mod > processes, but FDMDV modem is more like 15 parallel 50 baud PSK Modems. > > Frequency offset estimation works like this: we take the entire FDM > signal (modem tones plus pilot). This has an unknown frequency offset. > We then "mix" this with a local copy of the pilot tone signal at 1200 > Hz. The output of the mixer will contain the product of the local and > received pilot tone signal - a single frequency component near DC at the > frequency offset. We then low pass filter at 200 Hz to isolate just > this single frequency component, and fft and peak pick to estimate it's > frequency. See the octave/C code for more details. > > I think the biggest latency is in the transmit and receive filter > memories, which are currently 6 symbols long. The +/- 200 Hz frequency > offset estimation range was an arbitrary choice, not sure of the pros > and cons of changing this. It seems to work just fine. It's set by the > low pass filter. > > Thanks, > > David > I encountered fft's almost40 years ago. For the first time, I have tried to implement something useful and to learn something.
I wrote a small 64 point fft, using an existing integer math example. Resampling a fdmdv raw file to first 48k and then to 4.8 k, I can now "see" the individual carriers amplitude and phases. As David explained to me this is pretty useless as a modem, since it does not provide any signal conversion, so it cannot be used if the absolute frequencies of the signal are not exact. A merit is that 4800 s/sec and 64 points show a single bin for each subcarrier, ie they are 75 hz wide. The integer math makes it more portable to small mcu's. Another problem besides the frequency issue is that since the sample rate is assumed 4800 ks, and the size 64, the "symbol length" is 13.33 mS, corresponding to 75 hz. Could someone explain to me how to extend the "length", there must surely be some signal processing trick to do this. I have already thought of reading a smaller amount (1/2) into the samples array, and issue overlapping FFTs, and sum and filter the results, but this destroys the beauty of the concept. How would you do this? Regards, Gullik /SM6FBD ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
