16QAM bit error rate performance simulation based on matlab, output bit error rate curve and constellation diagram under different signal-to-noise ratios

Table of contents

1. Algorithm description

2. Simulation effect preview

3. MATLAB core program

4. Complete MATLAB


1. Algorithm description

       Quadrature Amplitude Modulation (QAM, Quadrature Amplitude Modulation) is a modulation method that performs amplitude modulation on two orthogonal carrier waves. These two carriers are usually sine waves out of phase by 90 degrees (π/2), and are therefore called quadrature carriers. Hence the name of this modulation. Similar to other modulation methods, QAM transmits information by changing some parameters of the carrier. In QAM, a data signal is represented by the amplitude variation of two carriers that are orthogonal to each other.
       The phase modulation of the analog signal and the PSK of the digital signal can be considered as a special quadrature amplitude modulation with constant amplitude and only phase change. Therefore, analog signal frequency modulation and digital signal FSK can also be considered as special cases of QAM, because they are phase modulation in essence. The QAM of digital signals is mainly discussed here, although QAM of analog signals also has many applications, such as NTSC and PAL TV systems, which use orthogonal carriers to transmit different color components.
      Similar to other digital modulation methods, the QAM transmitted signal set can be conveniently represented by a constellation diagram. Each constellation point on the constellation diagram corresponds to a signal in the transmitted signal set. Let the size of the transmitted signal set of quadrature amplitude modulation be N, which is called N-QAM. Constellation points are often configured in a square grid with equal intervals in the horizontal and vertical directions, although other configurations are also possible. Data in digital communication is often expressed in binary, and in this case the number of constellation points is generally a power of 2. Common QAM forms include 16-QAM, 64-QAM, 256-QAM and so on. The more constellation points, the greater the amount of information that can be transmitted per symbol. However, if the constellation points are added while the average energy of the constellation diagram remains unchanged, the distance between the constellation points will be reduced, which will lead to an increase in the bit error rate. Therefore, the reliability of high-order constellation diagrams is worse than that of low-order constellations.
       When the requirement on the data transmission rate is higher than the upper limit that 8-PSK can provide, the QAM modulation method is generally adopted. Because the constellation points of QAM are more scattered than those of PSK, the distance between the constellation points is larger, so it can provide better transmission performance. However, the amplitudes of QAM constellation points are not exactly the same, so its demodulator needs to be able to detect phase and amplitude correctly at the same time, unlike PSK demodulation, which only needs to detect phase, which increases the complexity of QAM demodulator.


      The full name of 16QAM is the abbreviation of Quadrature Amplitude Modulation in English, which means quadrature amplitude modulation and is a digital modulation method. The generated methods are quadrature amplitude modulation method and composite phase shift method.

16QAM refers to the QAM modulation method including 16 symbols.
The block diagram of the 16QAM modulation and demodulation principle is shown in Figure 1 on the right:
      16QAM is formed by superimposing two independent orthogonal 4ASK signals, and 4ASK is a signal obtained by using multi-level signals to key the carrier. It is a generalization of 2ASK modulation. Compared with 2ASK, this modulation has the advantage of high information transmission rate.
Quadrature amplitude modulation is generated by combining multiple amplitude amplitude keying (MASK) and quadrature carrier modulation.
The hexadecimal quadrature amplitude modulation is an amplitude-phase joint keying signal. There are two ways to produce 16QAM:
(1) quadrature amplitude modulation method, which is formed by superimposing two quadrature four-level amplitude keying signals;
(2) composite phase shift method: it uses two independent The four-phase phase-shift keying signal is superimposed.
The quadrature amplitude modulation method is used here.
        The serial/parallel converter divides the binary symbol sequence with a rate of Rb into two paths, and the binary symbol sequence with a rate of Rb/2.2-4 level conversion into Rb/2 becomes 4 with a rate of RS=Rb/log216 Level signal, the 4-level signal is multiplied by the quadrature carrier to complete the quadrature modulation, and the two signals are superimposed to generate a 16QAM signal. In the two-way binary symbol sequence with a rate of Rb/2, the 2-4 level The output of the converter is a 4-level signal, that is, M=16. After 4-level quadrature amplitude modulation and superposition, it outputs 16 signal states, that is, 16QAM. RS=
Rb/log216=RB/4.
2. 16QAM demodulation principle
       The 16QAM signal is demodulated by means of quadrature coherent demodulation. The demodulator first performs quadrature coherent demodulation on the received 16QAM signal, and multiplies one path with cos ω ct and one path with sin ω ct . Then through a low-pass filter, the low-pass filter LPF filters out the high-frequency components generated by the multiplier to obtain a useful signal, and the output of the low-pass filter LPF can be sampled and judged to restore the level signal.


          QAM can also be used for digital modulation. Digital QAM has 4QAM, 8QAM, 16QAM, 32QAM and other modulation methods. Among them, 16QAM and 32QAM are widely used in digital cable television systems . Take 16QAM as an example to introduce its principle.

       16QAM modulator block diagram and constellation diagram. As a modulation signal, the input binary data stream becomes four parallel data streams after serial-to-parallel conversion. These four channels of data are combined in pairs and enter two level converters respectively to convert them into two channels of 4-level data. For example, 00 is converted to –3, 01 is converted to –1, 10 is converted to 1, and 11 is converted to 3. These two 4-level data g1(t) and g2(t) modulate the carrier cos2πfct and sin2πfct respectively, and then add them together to obtain a 16QAM signal.

       QAM has high modulation efficiency and requires a high signal-to-noise ratio in the transmission path, which is suitable for cable TV cable transmission. In the United States, quadrature amplitude modulation is usually used in terrestrial microwave links and is not used in domestic satellites. European cable digital TV uses QAM modulation, while Canadian satellites use quadrature amplitude modulation. QAM is a technology of amplitude and phase joint modulation. It uses the amplitude and phase of the carrier to transmit information bits at the same time. Therefore, under the same minimum distance, the QAM constellation diagram can accommodate more constellation points, which can achieve higher The frequency band utilization rate, the current QAM constellation point can reach up to 256QAM.

2. Simulation effect preview

The matlab2022a simulation results are as follows:

 

3. MATLAB core program

bit_count = 4*1000;

% Range of SNR over which to simulate 
Eb_No = -6: 1: 10;


SNR = Eb_No + 10*log10(4);

% Start the main calculation loop
for aa = 1: 1: length(SNR)
    
    % Initiate variables
    T_Errors = 0;
    T_bits = 0;
    
    % Keep going until you get 100 errors
    while T_Errors < 100
    
        % Generate some random bits
        uncoded_bits  = round(rand(1,bit_count));

        % Split the stream into 4 substreams
        B = reshape(uncoded_bits,4,length(uncoded_bits)/4);
        B1 = B(1,:);
        B2 = B(2,:);
        B3 = B(3,:);
        B4 = B(4,:);
        
        % 16-QAM modulator
        % normalizing factor
        a = sqrt(1/10);

        % bit mapping
        tx = a*(-2*(B3-0.5).*(3-2*B4)-j*2*(B1-0.5).*(3-2*B2));
        
        % Noise variance
        N0 = 1/10^(SNR(aa)/10);

        % Send over Gaussian Link to the receiver
        rx = tx + sqrt(N0/2)*(randn(1,length(tx))+i*randn(1,length(tx)));
        
%---------------------------------------------------------------
        
        % Merge into single stream again
        temp = [B5;B6;B7;B8];
        B_hat = reshape(temp,1,4*length(temp));
    
        % Calculate Bit Errors
        diff =  uncoded_bits - B_hat ;
        T_Errors = T_Errors + sum(abs(diff));
        T_bits = T_bits + length(uncoded_bits);
        
    end
    % Calculate Bit Error Rate
    BER(aa) = T_Errors / T_bits;
    disp(sprintf('bit error probability = %f',BER(aa)));
    
    % Plot the received Symbol Constellation
    figure;
    grid on;
    plot(rx,'x');
    xlabel('Inphase Component');
    ylabel('Quadrature Component');
    title('Constellation of Transmitted Symbols');


end
A215

4. Complete MATLAB

V

Guess you like

Origin blog.csdn.net/hlayumi1234567/article/details/128648380