Upload
arvind-rathod
View
18
Download
1
Tags:
Embed Size (px)
DESCRIPTION
ofdm gnuradio
Citation preview
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?