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

Reply via email to