gr_ofdm

59
OFDM Implementation in GNU Radio Matt Ettus, Thomas W. Rondeau, and Robert McGwier Wireless@VT Symposium, 2007

Upload: arvind-rathod

Post on 23-Nov-2015

18 views

Category:

Documents


1 download

DESCRIPTION

ofdm gnuradio

TRANSCRIPT

  • OFDM Implementation in GNU RadioMatt Ettus, Thomas W. Rondeau, and Robert McGwier

    Wireless@VT Symposium, 2007

  • OFDM: Basic Principles

  • Transmitter Flow Graph

  • Receive Flow Graph

  • Signal Acquisition

  • Signal DetectionTwo methods implemented:Maximum LikelihoodCorrelate with cyclic prefixJ. van de Beek, M. Sandell, P. Ola. Borjesson, ML Estimation of Time and Frequency Offset in OFDM Systems, IEEE Trans. On Signal Processing, vol. 45, no. 7, pp. 18001805, July 1997.PN Sequence correlationTransmit known symbol with repetition in the time domainT. M. Schmidl and D. C. Cox, Robust Frequency and Timing Synchronization for OFDM, IEEE Trans. Communications, vol. 45, no. 12, pp. 16131621, Dec. 1997.

  • ML EstimationPeak to 0Hold angle for frequency correctionDelay to CPCorrelate to delayed CPGate symbol

  • ML PerformanceCorrelationPeaksCorrelations occur every OFDM symbol

  • ML PerformanceCorrelationPeaksPeaks should occur every FFT length + CP length

  • ML PerformanceMissing a peak inside a packet will cause a rotation in versus the other symbolsHistogram of Peak Timing

  • PN CorrelationRepeated Known Symbol in time: ABCDABCDCreate sample in frequency with 0s in every other bin:IFFT

    V 0 W 0 X 0 Y 0 Z 0

  • Synchronizer Flow GraphSignal PowerDetects edgeHold angle for frequency correctionRegenerate for each symbolDelay first halfCorrelate to preambleGate symbol

  • PN Sync PerformanceCorrelationMatch FilteredRegen. PeaksCorrelations occur every packet

  • PN Sync PerformanceRegenerating peaks by a known amountCorrelationMatch FilteredRegen. Peaks

  • PN Sync ComparisonNoise and multipath affects against a perfect signal

  • PN Sync PerformanceDifferences do not affect this method as much because the rotation is constant in the packetHistogram of Peak Timing

  • Frame DetectionUses known symbols to correlate and find beginning of frameOnce correlated, use the known symbols and receive symbols to generate a 1-tap equalizerUse the equalizer to correct phase shifts and multipath

  • Fine Frequency compensationML Frequency ambiguityFrequencyPN Frequency ambiguity-0.50.5-1.51.5-2.53.5-3.52.5

  • Coarse Frequency compensationcorrected in frame detectorFrequencyShifted full FFT bin-0.50.5-1.51.5-2.53.5-3.52.5

  • Fine Frequency Error from PN SyncFrequency error calculated once per packet; does not fix for clock offset drift throughout packet.

  • Implementation Results

  • QPSK

  • QPSKRepeated Preamble(1/13)FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKKnown Preamble 1(2/13)FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKKnown Preamble 3(3/13)FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(4/13)FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(5/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(6/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(7/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(8/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(9/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(10/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(11/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSKData(12/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QPSK Repeated Preamble (13/13) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • QAM16 Repeated Preamble (1/1) FFT length=512, Occupied Tones=200, CP Length=128

  • Profiling SupportUse OProfile

    Collects amount of processing done by each component of a process

    Used to tune performance

    Started at 100 kHz bandwidth1.5 hours of profiling increased to 600 kHz

  • Profiling Support QPSK Receiver% symbol name29.2 .loop211.5 .loop26.05 gr_fast_atan2f5.14 gr_fft_filter_ccc::work4.31 gr_single_threaded_scheduler::main_loop4.10 gr_ofdm_correlator3.80 .cleanup3.15 gr_multiply_cc::work2.44 gr_fir_ccf_simd::filter1.81 gr_fir_fff_simd::filter

  • Profiling Support QPSK Receiver1.7259 gr_divide_ff::work1.5111 gr_frequency_modulator_fc::work1.4963 gr_block_detail::input1.4815 gr_peak_detector_fb::work1.3111 gr_ofdm_correlator::coarse_freq_comp1.2667 .loop11.0593 gr_complex_to_mag_squared::work1.0222 .loop10.9556 gr_fft_vcc::work0.8963 gr_ofdm_sampler::general_work0.8593 gr_add_const_cc::work0.8593 gr_ofdm_correlator::general_work

  • GNU Radio InterfaceCommand-line options allow selection ofFFT bins (any value, odd or even)Occupied bins (must be < fft bins)Cyclic prefix length (< fft bins)Flow graphs are built at runtime

    Should tie directly in with current method to use an PHY/MAC interface card

    ./benchmark R A f 2411M --fft-length=512 \--occupied-tones=300 --cp-length=128

  • Future Work and GoalsHit 1 MHz in receiverMore modulationsImplement a variation of the PN syncImplement adaptive equalizer over the entire packetSINR calculationForward Error CorrectionPerformance tuning

  • Thank You

    Questions?