Changes between Version 24 and Version 25 of WARPLab/Examples/OFDM


Ignore:
Timestamp:
Nov 3, 2015, 10:40:21 AM (9 years ago)
Author:
chunter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WARPLab/Examples/OFDM

    v24 v25  
    9090
    9191 * [https://en.wikipedia.org/wiki/Carrier_frequency_offset Carrier Frequency Offset (CFO)] - The center frequency of the transmitter will not perfectly match the center frequency of the receiver. Unless corrected, this will de-orthogonalize the OFDM subcarriers and cause inter-carrier interference (ICI). CFO is typically corrected in the time domain via multiplication with a digital carrier whose frequency negates the CFO estimate. This example uses a technique that compares two sequential preamble training symbols to estimate the CFO [#cite1 [1]].
    92  * Phase Error - Even after CFO is corrected in the time domain, there is typically a residual phase error component that must be corrected in the frequency domain and tracked over time. OFDM systems employ multiple pilot subcarriers to enable this recovery system. All data subcarriers in each OFDM symbol are phase-rotated to match any residual rotation observed in the known pilots.
     92 * Phase Error - Even after CFO is corrected in the time domain, there is typically a residual phase error component that must be corrected in the frequency domain and tracked over time. OFDM systems employ multiple pilot subcarriers to enable this correction system. All data subcarriers in each OFDM symbol are phase-rotated to match any residual rotation observed in the known pilots.
    9393 * Sampling Frequency Offset (SFO) - The temporal duration of a sample is slightly different at the receiver and transmitter due to different sampling clocks. Over the course of a reception, the relative sample periods will drift apart from one another. This manifests as larger phase error for the outer subcarriers [#cite2 [2]]. Each data subcarrier in each OFDM symbol is phase-rotated differently according to its subcarrier index.
    9494
    95 At the [https://warpproject.org/trac/browser/ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Examples/wl_example_siso_ofdm_txrx.m#L27 top of the script], there are three control variables that toggle three different recovery systems: {{{DO_APPLY_CFO_CORRECTION}}}, {{{DO_APPLY_PHASE_ERR_CORRECTION}}}, {{{DO_APPLY_SFO_CORRECTION}}}. In this section, we will explore what happens when different combinations of these recovery systems are enabled or disabled.
     95At the [https://warpproject.org/trac/browser/ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Examples/wl_example_siso_ofdm_txrx.m#L27 top of the script], there are three control variables that toggle three different correction systems: {{{DO_APPLY_CFO_CORRECTION}}}, {{{DO_APPLY_PHASE_ERR_CORRECTION}}}, {{{DO_APPLY_SFO_CORRECTION}}}. In this section, we will explore what happens when different combinations of these correction systems are enabled or disabled.
    9696
    97 === CFO Recovery: Enabled, Phase Error Recovery: Enabled, SFO Recovery: Enabled ===
     97=== Scenario A === #scenA
     98{{{
     99CFO Correction:         Enabled
     100Phase Error Correction: Enabled
     101SFO Correction:         Enabled
     102}}}
    98103
    99 ||  [[Image(Cy_PEy_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Recovery Matrix  ||  [[Image(Cy_PEy_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cy_PEy_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
     104||  [[Image(Cy_PEy_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Correction Matrix  ||  [[Image(Cy_PEy_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cy_PEy_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
    100105
    101 The above plots are provided for reference. They show an example of how the receiver performs when all three recovery systems are enabled.
     106The above plots are provided for reference. They show an example of how the receiver performs when all three correction systems are enabled.
    102107
    103 1. The "Phase Error Estimates" plot shows a nominal phase twist for each OFDM symbol over the course of the reception. The "SFO Recovery Matrix" shows a phase correction that increases for outer subcarriers over the course of the reception.
     1081. The "Phase Error Estimates" plot shows a nominal phase twist for each OFDM symbol over the course of the reception. The "SFO Correction Matrix" shows a phase correction that increases for outer subcarriers over the course of the reception.
    1041092. The "Rx Constellation" plot shows each received symbol overlaid on each transmitted symbol.
    1051103. The "EVM and SNR" plot shows that EVM is small and has little dependence on OFDM symbol index or subcarrier index. Furthermore, the red line shows the effective SNR of the reception (calculated from the EVM values themselves).
    106111
    107 === CFO Recovery: Disabled, Phase Error Recovery: Enabled, SFO Recovery: Enabled ===
     112=== Scenario B === #scenB
     113{{{
     114CFO Correction:         Disabled
     115Phase Error Correction: Enabled
     116SFO Correction:         Enabled
     117}}}
    108118
    109 ||  [[Image(Cn_PEy_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Recovery Matrix  ||  [[Image(Cn_PEy_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cn_PEy_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
     119||  [[Image(Cn_PEy_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Correction Matrix  ||  [[Image(Cn_PEy_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cn_PEy_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
    110120
    111 By disabling time-domain CFO correction, we have increased the burden on the phase error recovery system. In effect, the residual CFO to be corrected is now considerably larger. This can be observed in the "Phase Error Estimates" plot in the first figure above. The number of 2π wraps is considerably larger than the previous scenario where time-domain CFO correction was enabled. Ultimately, however, phase error recovery can only go so far. By the time the system is applying phase corrections in the frequency domain, ICI has already occurred. This can be observed in the "EVM and SNR" plots where the effective SNR is a couple of dB worse than the previous case.
     121By disabling time-domain CFO correction, we have increased the burden on the phase error correction system. In effect, the residual CFO to be corrected is now considerably larger. This can be observed by comparing "Phase Error Estimates" plot in this section with the equivalent plot presented in [#scenA Scenario A]. The number of 2π wraps is considerably larger than the previous scenario where time-domain CFO correction was enabled. Ultimately, however, phase error recovery can only go so far. By the time the system is applying phase corrections in the frequency domain, ICI has already occurred because the transmitter's IFFT operation is not aligned to the receiver's FFT operation. This can be observed in the "EVM and SNR" plots where the effective SNR is a couple of dB worse than the previous case.
    112122
    113 === CFO Recovery: Disabled, Phase Error Recovery: Enabled, SFO Recovery: Enabled ===
     123=== Scenario C === #scenC
     124{{{
     125CFO Correction:         Disabled
     126Phase Error Correction: Disabled
     127SFO Correction:         Enabled
     128}}}
    114129
    115 ||  [[Image(Cn_PEn_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Recovery Matrix  ||  [[Image(Cn_PEn_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cn_PEn_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
     130||  [[Image(Cn_PEn_Sy_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Correction Matrix  ||  [[Image(Cn_PEn_Sy_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cn_PEn_Sy_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
    116131
    117 When both CFO recovery and Phase Error Recovery are disabled, there is nothing to counteract the differing center frequencies of the transmitter and receiver. The result is a received constellation that "spins" around the complex plane. The speed of this spin is CFO. The "beat patterns" of high and low EVM are caused by receive constellation to periodically align to the transmitted constellation as it rotates around the complex plane.
     132When both CFO recovery and Phase Error Recovery are disabled, there is nothing to counteract the differing center frequencies of the transmitter and receiver. The result is a received constellation that "spins" around the complex plane. The speed of this spin is CFO. The "beat patterns" of high and low EVM are caused by the receive constellation periodically aligning to the transmitted constellation as it rotates around the complex plane.
    118133
    119 === CFO Recovery: Enabled, Phase Error Recovery: Enabled, SFO Recovery: Disabled ===
     134=== Scenario D === #scenD
     135{{{
     136CFO Correction:         Enabled
     137Phase Error Correction: Enabled
     138SFO Correction:         Disabled
     139}}}
    120140
    121 ||  [[Image(Cy_PEy_Sn_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Recovery Matrix  ||  [[Image(Cy_PEy_Sn_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cy_PEy_Sn_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
     141||  [[Image(Cy_PEy_Sn_phaseError.png,width=400)]][[BR]]1. Phase Error Estimates and SFO Correction Matrix  ||  [[Image(Cy_PEy_Sn_constellations.png,width=400)]] [[BR]]2. Rx Constellation  ||  [[Image(Cy_PEy_Sn_evm.png,width=400)]] [[BR]]3. Error Vector Magnitude (EVM)[[BR]] and effective SNR  ||
    122142
    123143Finally, we have re-enabled both time-domain CFO recovery and phase error recovery. We have disabled SFO recovery. As the sample clocks drift over the duration of the reception, EVM begins to increase on the outer subcarriers.