Rud: What language are you developing in? I have some software that generates and receives OFDM with 8PSK subcarriers using .wav files containing I and Q samples. The source code is about 1500 lines of Delphi (Pascal). It's fairly slow as it uses a DFT and IDFT and floating point arithmentic, but that won't matter as much for 500 Hz wide signals as it did for 1.5 MHz wide signals. It uses BICM-8 which is a variation of Ungerboek's TCM that is supposed to work better on fading channels and includes a Viterbi decoder. There is no frequency correction mechanism as one program was used to generate files for an arbitary waveform generator. The other was to test the file generated by the first program. The software and a signal generator were used to generate a signal on 6 meters and 70 cm for testing an FPGA-based decoder.
73, John KD6OZH ----- Original Message ----- From: Rud Merriam To: digitalradio@yahoogroups.com Sent: Wednesday, October 24, 2007 10:03 UTC Subject: [digitalradio] OFDM Proposal: Details For your amusement and consternation here are my latest thoughts on doing an OFDM protocol. Symbol rate: 62.5 Hz (128 samples @ 8000 Hz) Guard interval: 2, 4, 8 ms adaptive to conditions Subchannels: 8 (62.5 125 187.5 250 312.5 375 437.5 500) Bandwidth: 437.5 Hz Raw BPS: 1778, 1600, 1333 adaptive (guard band change) Base frequency: undetermined MODULATION (somewhat firm) Waveform: DQPSK with constellation at 45, 135, 225, 315 degrees Generation: 8 separate generators providing continuous waves through the guard bands Phase change: start of symbol period Shaping: post generation raised cosine over symbol and guard period DEMODULATION (somewhat speculative) FT: 128 bin every 32 samples for locating subchannels Synchronization: square of subchannels identified by FT to locate bottom subchannel by 125 Hz signal Frequency drift: subchannel selection based on output of synchronization Phase detection: phase averaged over symbol period, differential with last symbol A main goal is to keep the bandwidth within 500 Hz. The symbol rate is as suggested by John KD6OZH. First testing will probably be with his 8 ms guard band but I would like to make it adaptive to short that period if multipath conditions allow. DQPSK to get more throughput and because getting the absolute phase is a challenge. Any suggestion to use absolute phase would be appreciated since that gains a couple dB. The Fourier transform is mainly to identify the potential subchannel locations to allow adjusting for frequency drift. Once high energy bins are determined the signal is filtered at various of those frequencies and the square used to detect the doubled lowest frequency (125 Hz). That also locates the symbol period for synchronization. Actually, the possible frequency includes the guard band so it may be one of three values. By determining that value the guard band period is also determined and the actual guard band removed. Rud Merriam K5RUD ARES AEC Montgomery County, TX http://TheHamNetwork.net