天天看點

正交振幅調制(QAM)的星座圖、誤碼曲線(二)基本原理

正交振幅調制(QAM)

  • 基本原理
    • 源代碼
      • 仿真結果

基本原理

          見正交振幅調制(QAM)的星座圖、誤碼率(一)

源代碼

1、誤碼率曲線

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%           16QAM 誤碼率計算 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
close all;
clear all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%               參數設定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M =16;     % 16進制
k = log2(M);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                 信源
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
count=1e6;
x = randi([0 M-1],1,count);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                 調制
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y = qammod(x,M);
scatterplot(y);
title('16QAM調制信号星座圖');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%         信道(加入高斯白噪聲)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR=[-10:0.5:20];   % 信噪比
for m=1:length(SNR)
    y_noise = awgn(y,SNR(m));  % 加入高斯白噪聲
    y1=qamdemod(y_noise,M);      % 解調
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %                 誤碼率計算
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    sum_error(m)=0;
    for n=1:count
        if y1(n)~=x(n)
            sum_error(m)=sum_error(m)+1;
        end
    end
    mean_error(m)=sum_error(m)/count;
end


figure(1)
semilogy(SNR,mean_error); grid on;     %繪制半對數圖
xlabel('SNR/dB');ylabel('誤比特率');
title('16QAM信号的誤比特率曲線');

           

2、蒙特卡洛取誤碼率的平均

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%           16QAM 誤碼率計算+蒙特卡洛 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
close all;
clear all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%               參數設定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M =16;     % 16進制
k = log2(M);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                 信源
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
count=1e5;  % 碼元個數
x = randi([0 M-1],1,count);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                 調制
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y = qammod(x,M);
scatterplot(y);
title('16QAM調制信号星座圖');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%         信道(加入高斯白噪聲)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR=[-10:0.5:20];   % 信噪比
for m=1:length(SNR)
    s_error=zeros(1,length(SNR));
    N=100;  % 蒙特卡洛次數
    for p=1:N
        y_noise = awgn(y,SNR(m));  % 加入高斯白噪聲
        y1=qamdemod(y_noise,M);      % 解調
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %                 誤碼率計算
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        sum_error(m)=0;
        for n=1:count
            if y1(n)~=x(n)
                sum_error(m)=sum_error(m)+1;
            end
        end
        mean_error(m)=sum_error(m)/count;
        
        s_error(m)=s_error(m)+mean_error(m);% 蒙特卡洛次數下的總誤碼率
    end
    m_error(m)=s_error(m)/N;
end


figure(1)
semilogy(SNR,m_error); grid on;     %繪制半對數圖
xlabel('SNR/dB');ylabel('誤比特率');
title('16QAM信号的誤比特率曲線');

           

仿真結果

正交振幅調制(QAM)的星座圖、誤碼曲線(二)基本原理

繼續閱讀