Matlab Simulation of Performance of 64QAM Constellation Shaping Modulation and Demodulation Communication System Based on Autoencoder

Table of contents

1. Algorithm operation rendering preview

2. Algorithm running software version

3. Some core programs

4. Overview of algorithm theory

4.1 Constellation shaping

4.2 Autoencoders

4.3 Constellation Shaping Modulation and Demodulation Model Based on Autoencoder

4.4 Implementation process

5. Algorithm complete program engineering


1. Algorithm operation rendering preview

2. Algorithm running software version

matlab2022a

3. Some core programs

...............................................................................
      parse(p,varargin{:})
      layer.NoiseMethod = p.Results.NoiseMethod;
      layer.EbNo = p.Results.EbNo;
      layer.EsNo = p.Results.EsNo;
      layer.SNR = p.Results.SNR;
      layer.BitsPerSymbol = p.Results.BitsPerSymbol;
      layer.SignalPower = p.Results.SignalPower;
      layer.Name = p.Results.Name;
      if isempty(p.Results.Description)
        switch p.Results.NoiseMethod
          case 'EbNo'
            value = layer.EbNo;
          case 'EsNo'
            value = layer.EsNo;
          case 'SNR'
            value = layer.SNR;
        end
        layer.Description = "AWGN channel with " + p.Results.NoiseMethod ...
          + " = " + num2str(value);
      else
        layer.Description = p.Results.Description;
      end
      layer.Type = 'AWGN Channel';

      samplesPerSymbol = 1;
      if strcmp(layer.NoiseMethod, 'EbNo')
        EsNo = layer.EbNo + 10*log10(layer.BitsPerSymbol);
        layer.LocalSNR = EsNo - 10*log10(samplesPerSymbol);
      elseif strcmp(layer.NoiseMethod, 'EsNo')
        EsNo = layer.EsNo;
        layer.LocalSNR = EsNo - 10*log10(samplesPerSymbol);
      else
        layer.LocalSNR = layer.SNR;
      end
    end
    
 ....................................................
    function dLdX = ...
        backward(layer, X, Z, dLdZ,memory)
 
      
      dLdX = dLdZ;
    end
    
    function sl = saveobj(layer)
      sl.NoiseMethod = layer.NoiseMethod;
      sl.EbNo = layer.EbNo;
      sl.EsNo = layer.EsNo;
      sl.SNR = layer.SNR;
      sl.BitsPerSymbol = layer.BitsPerSymbol;
      sl.SignalPower = layer.SignalPower;
      sl.LocalEsNo = layer.LocalEsNo;
      sl.LocalSNR = layer.LocalSNR;
    end
    
    function layer = reload(layer,sl)
      layer.NoiseMethod = sl.NoiseMethod;
      layer.EbNo = sl.EbNo;
      layer.EsNo = sl.EsNo;
      layer.SNR = sl.SNR;
      layer.BitsPerSymbol = sl.BitsPerSymbol;
      layer.SignalPower = sl.SignalPower;
      layer.LocalEsNo = sl.LocalEsNo;
      layer.LocalSNR = sl.LocalSNR;
    end
  end
  
  methods (Static)
    function layer = loadobj(sl)
      if isstruct(sl)
        layer = AutoEncode_channel;
      else
        layer = sl;
      end
      layer = reload(layer,sl);
    end
  end
end
0031

4. Overview of algorithm theory

       Autoencoder is a deep learning model that can learn low-dimensional representation of data through unsupervised learning. The 64QAM constellation shaping modulation and demodulation communication system is a digital communication system that can realize high-speed data transmission under limited bandwidth resources.

       64QAM constellation diagram modulation is a modulation method based on a constellation diagram, which can map data symbols to a constellation diagram for modulation. 64QAM constellation modulation can be expressed as:

$$s_n=a_{i}+jb_{j}$$

      Among them, $a_{i}$ and $b_{j}$ are the modulation points on the constellation diagram, $i,j\in [-3,3]$. 64QAM constellation diagram modulation can realize high-speed data transmission, but because the modulation points on the constellation diagram are unevenly distributed, modulation errors are prone to occur.

4.1 Constellation shaping

      In order to solve the problem in 64QAM constellation diagram modulation, the modulation points on the constellation diagram can be adjusted through constellation diagram shaping. Constellation shaping can be expressed as:

$$s_n=f(r_n)e^{j\theta_n}$$

       Among them, $r_n$ and $\theta_n$ are the polar coordinate representation on the constellation diagram, and $f(\cdot)$ is the constellation diagram shaping function. Constellation shaping can make the modulation points on the constellation more evenly distributed, thereby reducing modulation errors.

4.2 Autoencoders

        Autoencoder is a deep learning model that can learn low-dimensional representation of data through unsupervised learning. The mathematical model of an autoencoder can be expressed as:

$$\hat{x}=f(g(x))$$

       Among them, $x$ is the input data, $\hat{x}$ is the reconstructed data, $g(\cdot)$ and $f(\cdot)$ are the encoder and decoder, and different neural networks can be used Network implementation.

4.3 Constellation Shaping Modulation and Demodulation Model Based on Autoencoder

The modulation and demodulation model of constellation diagram shaping based on Autoencoder can be expressed as:

$$\hat{s}_n=f(g(r_n)e^{j\theta_n})e^{j\theta_n}$$

        Among them, $\hat{s}_n$ is the reconstructed modulation point, $r_n$ and $\theta_n$ are the polar coordinate representation on the input constellation diagram, $g(\cdot)$ and $f(\cdot )$ is the encoder and decoder. The model can learn the mapping relationship between constellation shaping and demodulation through the Autoencoder self-encoder.

4.4 Implementation process

       First, the input constellation data needs to be preprocessed, including data format conversion, normalization, etc. The preprocessing process can improve the robustness and accuracy of the model. Next, the Autoencoder self-encoder needs to be trained using the known constellation diagram dataset. During the training process, it is necessary to choose an appropriate loss function and optimization algorithm to improve the accuracy and generalization ability of the model. After the model training is completed, the model needs to be tested with the test data set. During the testing process, it is necessary to calculate the accuracy, recall rate, precision and F1 value of the model to evaluate the performance of the model.

       In practical applications, real-time demodulation needs to be realized. This can be achieved by deploying the trained model to a real system. In the real-time demodulation process, the received signal needs to be sampled and quantized, and the quantized signal is input into the model for demodulation. The demodulated data can be decoded by a decoder to obtain the original data.

        The 64QAM constellation shaping modulation and demodulation communication system based on Autoencoder can be applied to digital communication systems, especially in high-speed data transmission scenarios. The system can realize a more accurate and robust modulation and demodulation process by learning the mapping relationship between constellation shaping and demodulation, and improve the reliability and speed of data transmission.

5. Algorithm complete program engineering

OOOOO

OOO

O

Guess you like

Origin blog.csdn.net/aycd1234/article/details/131971618