The link employs 16-QAM modulation
in the presence of AWGN and uses a High Power Amplifier (HPA) to overcome the
losses associated with satellite communications. The HPA introduces nonlinear
behavior that, when combined with other RF impairments, requires the use of
mitigation techniques.
Keywords: QAM, RF impairments, I/Q imbalance, nonlinearity, RF
correction.
The simulation allows you to
configure the parameters shown in the GUI.
Open the GUI to:
- Modify the parameters
- Run the simulation with MATLAB
- Visualize signal constellations and spectra
- View the underlying MATLAB code
- Generate C code and run the simulation (with a valid MATLAB Coder™ license)
QAMwithRFImpairmentsExample
The Simulate button simulates
the configured link using interpreted MATLAB code. Some parameters can be
modified while the simulation is running, while others are disbled. This is
shown on the GUI, where the locked parameters are grayed out. For these
parameters, changes cannot be made until the simulation is stopped. For the
parameters that can be modified during execution, the impact of the changes is
immediately observable on the Results panel or on the plots.
The View MATLAB Code button
opens the simulator code in the editor allowing for visual inspection and
further exploration of the underlying functions used in the simulation.
The Run Generated Code button
compiles the MATLAB function into an executable MEX-file and runs the
simulation once the compiling process is complete. The MEX version of the
simulation runs much faster though there is a time penalty from the compiling
process itself. You can modify the same parameters when running from either
interpreted mode or from the MEX-file.
The Stop Simulation button
stops the simulation during execution. This works for both interpreted MATLAB
and the MEX-file. The button is active only when a simulation is running.
The Help button brings up
this HTML page.
The simulation executes the
following steps:
- Generate random integers
- Modulate with 16-QAM
- Root raised cosine (RRC) transmit filter
- Pass through an HPA
- Apply transmit antenna gain
- Pass the signal through an AWGN channel with RF impairments
- Apply receive antenna gain
- Remove DC offset
- Apply automatic gain control
- Compensate for I/Q amplitude and phase imbalance
- Correct for the Doppler shift
- RRC receive filter
- Demodulate 16-QAM
- Calculate the bit error rate
You can specify the following signal
impairments:
- Receiver noise temperature in the range [0, 600] K
- Doppler error in the range [-3, 3] Hz
- DC offset, expressed as a percentage of the maximum signal voltage, in the range [0, 20] %
- Phase noise in the range [-100, -48] dBc/Hz
- I/Q amplitude imbalance in the range [-5, 5] dB
- I/Q phase imbalance in the range [-30, 30] degrees
- HPA backoff level in the range [1, 30] dB
An HPA backoff of 30 dB corresponds
to negligible distortion because the amplifier is operating in its linear
region, while 1 dB corresponds to severe distortion. A Saleh model used to
simulate the behavior of the HPA. Further information is available on the memoryless
nonlinearity page.
The GUI provides the ability to
enable or disable corrections for Doppler error, I/Q imbalance, and DC offset.
These corrections are provided by three System objects. The carrier
synchronizer compensates for the frequency offset due to Doppler, the I/Q imbalance
compensator corrects the amplitude and phase imbalance, and the DC blocker compensates for
the DC offset.
Results and Displays
The simulation can display the spectrum of the transmitted and received signals, where the transmitted signal is measured at the output of the transmit RRC filter and the received signal is measured at the input of the receive RRC filter. A constellation diagram of the received signal is also available. Lastly, constellation diagrams of the HPA input and output signals can be displayed. Use the GUI to control the display of these plots.A typical spectrum plot, using the default parameters, is shown. The effects of AWGN are most easily seen in the out-of-band signal spectrum, where the noise floor of the received signal is 20 dB higher than the transmitted signal spectrum.
A plot of the contellation diagram is shown for the case in
which the I/Q imbalance correction is disabled. The red + symbols denote the 16-QAM reference constellation.
The constellation is scaled and rotated by the uncorrected imbalance.
The effects of nonlinear HPA behavior are shown in the HPA
In and HPA Out constellation diagrams. The diagrams show the effects
of AM/AM and AM/PM distortion when the amplifier operates 7 dB below
saturation. The 'rounded' appearance of the HPA output signal constellation is
due to AM/AM distortion, while AM/PM causes the constellation to rotate.
The bit error rate, number of errors, total number of
transmitted symbols, and the Eb/No are displayed directly on the results panel
of the GUI.
Use the GUI to change the parameters
listed below.
- Link gains and losses: Vary the noise temperature between 0 to 290 K (typical) to view the effects on the received signal spectrum analyzer plot. Likewise, change the link distance and carrier frequency to view the impact on the received signal spectrum. Changes in the link margin are also reflected in the calculated Eb/No.
- HPA AM-to-AM and AM-to-PM conversion: Vary the HPA Backoff between 30 dB (negligible nonlinearity) to 1 dB (severe nonlinearity). A value of 7 dB corresponds to moderate nonlinearity. View the effects on the the spectrum plot, the HPA output constellation, the received signal constellation diagram, and on the bit error rate. Increasing nonlinearity increases spectral regrowth and causes the HPA output constellation to become 'rounder' and rotate. The HPA Backoff parameter can be adjusted while the simulation is executing.
- Phase noise: Set the Phase Noise to -48 dBc/Hz (high) and observe the increased variance in the tangential direction in the received signal constellation diagram. This level of phase noise is sufficient to cause errors in an otherwise error-free channel. Set the Phase Noise to -55 dBc/Hz (low) and observe that the variance in the tangential direction has decreased. This level of phase noise does not significantly increase the error rate. Now, set the HPA Backoff level parameter to 7 dB (moderate nonlinearity). Note that even though the moderate HPA nonlinearity and the moderate phase noise do not cause many bit errors when applied individually, they do cause significantly more bit errors when applied together. The Phase Noise parameter can be adjusted only when the simulation is stopped.
- DC offset and DC offset correction: Set the DC offset to 10 and disable the DC offset correction by unchecking the DC Offset checkbox. The constellation diagram changes significantly. Re-enable the DC Offset correction and view the received signal constellation diagram and signal spectrum to verify that the DC offset is removed. Both the DC offset and the DC offset correction parameters can be modified during simulation execution.
- I/Q imbalance: Disable the Amplitude and phase imbalance box to view the effects of an I/Q imbalance on the received constellation diagram. Modify the amplitude and phase imbalance fields to observe the effects of different values on the received signal constellation diagram. Re-enable the I/Q Imbalance correction to to verify that the receive constellation aligns with its reference points. These parameters can be modified during execution.
- Doppler and Doppler compensation: Set Doppler error to 0.7 Hz and disable the Doppler error correction to show the effect of uncorrected Doppler on the received signal. Note that the BER is close to 0.5. Re-enable the Doppler error correction to correct for the Doppler error. Verify that the BER decreases. These parameters are available only when the simulation is stopped.
- Code Generation: Run the simulation by clicking the Run Generated Code button. The first time this is done, the simulation compiles before executing, which makes the process take longer than it does when simulating with interpreted MATLAB. Change the HPA backoff level and rerun the simulation. Note that the results panel updates very quickly. Now, change the Phase noise and click the Run Generated Code button. The code is recompiled because the phase noise is a nontunable parameter. Enable the Rx constellation option and rerun the simulation. You can see that when the scope is activated, the bit error results accumulate more slowly but the scope updates much faster than it does when running with interpolated MATLAB.
- BER estimation: By default, the Number of bit errors parameter is set to Inf so that the effects of the impairments and corrections can be easily visualized on the scopes. For BER estimation, it is typically sufficient to collect 50 to 200 errors; consequently, disable the scopes and change the Number of bit errors parameter from Inf to 100. It is important to leave the modifiable parameters unchanged when the simulation is running to obtain a valid BER estimate.
Sign up here with your email
ConversionConversion EmoticonEmoticon