Channel Simulator - Callbox
This tutorial is about how to configure channel simulator for callbox and verify it using UEsim and Spectrum Analyzer(sdr_spectrum). Channel Simulator and sdr_spectrum is not a separate hardware, they are all software feature that comes with Callbox and UEsim. The Channel Simulator feature in Amarisoft Callbox support following features :
- 3GPP defined Fading Profile for LTE and NR (
NOTE : Amarisoft support TDL model only, does not support CDL) - User defined profile for AWGN, Rician, Reyleigh channel
- Multi Path profile with the mixture of AWGN, Rician, Reyleigh components
Table of Contents
- Channel Simulator - Callbox
- Test Setup
- Key Configuration Parameters
- Configuration
- Perform the Test
- Test 1 : AWGN
- Test 2 : Single Path - Rayleigh
- freq_doppler = 50
- freq_doppler = 100
- freq_doppler = 200
- freq_doppler = 300
- freq_doppler = 400
- freq_doppler = 500
- freq_doppler = 1000
- Test 3 : Multi Path - Rayleigh
- Test 4 : 3GPP Profile
Test Setup
Test setup for this tutorial is as shown below. This is just for low layer testing, you may not need any complicated IP layer setup.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- rf_ports
- channel_dl
- type
- freq_doppler
- delay_spread
- mimo_correlation
- paths . In this link, you will get the descriptions for all the items listed below
- type
- gain
- delay
- channel_matrix
- freq_shift
- freq_doppler
- mimo_correlation
- noise_level
Configuration
I have used enb-chan-sim-ref.cfg that is copied and modified from enb.default.cfg. I will use the same file for all the test in this tutorial and just modify the parameters in the file without creating a new file.
I am using the default mme, ims config as shown below.
I used ue-enb-chan-sim-ref.cfg which is copied and modifed from ue.default.cfg on UEsim.
Following is the basic configuration in enb-chan-sim-ref.cfg and only channel_dl:{ } part will be changed for each of the test and all other parts would remain same.
I configured physical layer scheduler parameters so that I can schedule PDSCH and PUSCH continuously with specific modulation scheme and the number of PRBs that I like without injecting any IP layer data. This is not mandatory to enable channel simulation, but I applied these configuration just to create the same signals with constant modulation scheme to better visualize the effect of channel simulation.
Following is the basic configuration in ue-enb-chan-sim-ref.cfg .cfg. The configuration here should match the configuration of Callbox(gNB). The only thing to be set independantly are tx_gain and rx_gain that should be adjusted depending on test setup.
Perform the Test
I will follow the same procedure as shown here for all the test in this tutorial.
Check if the cell is configured as intended by checking the output of 'cell phy'
Power on UE (UEsim in this tutorial) and make it sure that the connection is established.
Analysis of Constellation
For constellation check, run WebGUI on UEsim with the following logging option('singal' checked). This option is to capture I/Q data in the log.
Run Constellation as shown below. You can check on the constellation visually and by checking per value.
Analysis on Spectrum Analyzer
For the verification with spectrum analyzer (sdr_spectrum), you can run sdr_spectrum on a sdr which is not used for the test. I am using an sdr card on callbox since all the test is being done with antenna, but you can use the sdr_spectrum/sdr card on UEsim as well. (
This is the command line command that I used to run the sdr (NOTE : Exact command parameters should be changed based on the specific test case and sdr card availability on your system)
./sdr_spectrum -arg="dev0=/dev/sdr2", -rx_freq 2680e6
This is frequency domain waveform (we normall call this 'Frequency Spectrum')
Following shows the time vs power plot (in some cases we call this as 'Zero Span plot').
Test 1 : AWGN
In this test, I will show you how to inject AWGN to do downlink signal of gNB and change the level of AWGN. There would be users who wants to change SNR for the transmitted signal from gNB and we don't have any explicit configuration parameter to set SNR. But using this awgn injection capability, you can simulate varying SNR of the transmitted signal.
In this test, I will set the channel simulator type to "awgn" and see the constellation / spectrum at various noise_level
noise_level = -30
This test shows the case where adding -30dB AWGN to the signal carrying QAM data.
In terms of the constellation, -30dB AWGN shows almost no negative impact on the signal decoding since per shows 0.0%. This is the signal capture and analysis from the reciever (in this case Amarisoft UEsim) using WebGUI.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
Following shows time domain plot. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal and the amlitude is represnted in log scale. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
noise_level = -20
This test shows the case where adding -20dB AWGN to the signal carrying QAM data.
In terms of the constellation, -20dB AWGN shows almost no negative impact on the signal decoding since per shows 0.0%. This is the signal capture and analysis from the reciever (in this case Amarisoft UEsim) using WebGUI.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
Following shows time domain plot. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal and the amlitude is represnted in log scale. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
noise_level = -10
This test shows the case where adding -30dB AWGN to the signal carrying QAM data.
In terms of the constellation, -30dB AWGN shows almost no negative impact on the signal decoding since per shows 0.0%. This is the signal capture and analysis from the reciever (in this case Amarisoft UEsim) using WebGUI.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
Following shows time domain plot. Usually it would not get much of noticiable changes in frequency spectrum with AWGN because the level of AWGN is much smaller comparing to the signal and the amlitude is represnted in log scale. If the AWGN is so high to be noticiable on spectrum, it would be highly likely that the connection would be broken and call drop would happen).
Test 2 : Single Path - Rayleigh
In this test, I want to show you how to apply fading to the transmit signal from callbox (eNB or gNB). For the simplicity and to better visualize the effect of each of the fading components, I applied only one Rayleigh channel(one tab) to the signal. In this test, I am trying to show the effect of doppler shift on the configured fading channel, but you may try changing other parameters as per your necessity.
In short, I wanted to share the intution as shown below.
Following is the basic configuration in enb-chan-sim-ref.cfg and only channel_dl:{ } part will be changed for each of the test and all other parts would remain same.
freq_doppler = 50
This test shows the case where 50Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot.
freq_doppler = 100
This test shows the case where 100Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
freq_doppler = 200
This test shows the case where 200Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
freq_doppler = 300
This test shows the case where 300Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
freq_doppler = 400
This test shows the case where 400Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
freq_doppler = 500
This test shows the case where 500Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
freq_doppler = 1000
This test shows the case where 1000Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively.
Test 3 : Multi Path - Rayleigh
In this test, I want to show you how to apply fading to the transmit signal from callbox (eNB or gNB). Basically the usage is similar to the previous test, but in this test I will add more tabs in fading profile. In this way, you may apply the faiding profile similar to what is defined in 3GPP specification. In this test, I am trying to show the effect of doppler shift on the configured fading channel, but you may try changing other parameters as per your necessity.
Following is the basic configuration in enb-chan-sim-ref.cfg and only channel_dl:{ } part will be changed for each of the test and all other parts would remain same.
{ type: "constant", gain: 0.0 , delay: 0, channel_matrix: [[ 1,0 ],[0,1]] },
freq_doppler = 100
This test shows the case where 100Hz doppler shift is applied. I applied the same doppler shift (i.e, freq_doppler) to every rayleigh component.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot.
freq_doppler = 1000
This test shows the case where 1000Hz doppler shift is applied. I applied the same doppler shift (i.e, freq_doppler) to every rayleigh component.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively
Test 4 : 3GPP Profile
Basically this test is similar to previous test trying to apply complicated channel profile, something like the profile defined in 3GPP specification. But in case of 3GPP profile, we provide a configuration parameter to allow you to apply the profile in very simple way.
Following is the basic configuration in enb-chan-sim-ref.cfg and only channel_dl:{ } part will be changed for each of the test and all other parts would remain same.
EVA, freq_doppler = 1000
This test shows the case where EVA profile and 1000Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively
EPA, freq_doppler = 1000
This test shows the case where EPA profile and 1000Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively
ETU, freq_doppler = 1000
This test shows the case where EPA profile and 1000Hz doppler shift is applied.
In terms of the constellation shown in WebGUI, you may not see the noticiable fading effect because this constellation is obtained after equalization. In this case, considerable part of random amplitude variation due to the fading would be reflected on the constellation but frequency drift due to doppler shift would not appear clearly since those impacts get corrected (compensated) by equalizer.
This is the capture of the signal using the built-in spectrum analyzer (called sdr_spectrum) as explained here.
Following shows frequency spectrum. You would see a little bit of larger variation in the amplitude, but not an huge variation in frequency spectrum.
Following shows time domain plot. You would get more noticiable difference (effect) of fading in time domain plot. Compare this with the result of the previous test and you would notice the effect of doppler shift more intuitively