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 On Tue, 2012-06-12 at 22:23 +0200, Gullik Webjörn wrote: > Sorry about mailbombing.. > > I have tried to refresh my math understanding...and... > > Since we only need to differentiate between 15 carriers > spaced 75 Hz apart, I dont understand why we need > a 256 point FFT, would not something slightly larger > suffice? My simple understanding says 16 spaced exactly > on the carriers. I can accept for various reasons twice > or even four times that, but dont we get into problems > then that we have to consider adjacent bins since the signal > will not fall entirely int one bin? > > I.e. signal + sidebands must fall within the "bin", and > preferably not into the next. > > Reducing the "points" AND the samples would lower latency, > reduce processing requirements, and having "more" bins than > required to "fit" the spectrum, the almost empty ones > are simply wasted. Am I out on a limb here??? > > I can see from the source that the FFT size is 256, > (MPILOTFFT) that is later placed in fft_pilot_cfg. > > I also see that you want to find the pilot within 200 hz, > (tuning error?) to be able to downconvert the whole package > with reasonable accuracy, and this size seems a bit to generous to me. > > Now, I DONT claim to understand this, I am just seeking a discussion, > which will help me understand this better. > > On a separate thought branch: > > IF we do a 256 point FFT, are we not really done then? > We would have ALL frequency and phase info? > > 3500 Hz div by 75 Hz bandwidth is only 46. So, only 15 out of > the 46 bins would contain anything (significant). Or, > > > With an 8 khz clock, a 256 point will give us 30 hz per bin, > but a full psk modulated carrier will not be guaranteed to > fit a single bin. So, reducing the number of points, would > fit each carrier better. > > As for alias filtering, sample rate could be n*clock, and > a n decimation performed, which would give an easy input filter. > But, maybe clocking should be matched to the signal (spacing) > > Enough rambling, I don't expect an immediate reply, but would > appreciate one eventually. > > 73 de SM6FBD (Gullik) > ------------------------------------------------------------------------------ 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
