Matlab 仿真BPSK调制下传输的误码率

BPSK (Binary Phase Shift Keying),把模拟信号转换成数据值的转换方式之一,利用偏离相位的复数波浪组合来表现信息键控移相方式。

我们可以用Matlab仿真其传输误码率,m文件内容如下:


% 传输1000000个码,随机+1/-1

N = 1000000;
for i=1:N
    if rand <.5
        s(i)=-1;
    else
        s(i)=1;
    end
end

% 产生白噪声
Variance = 1;
b=randn(1,N); 

% enery per bit to noise spectral density ratio
EbNo=[-3:1:10];

% 针对上条指令有14种情况
for j = 1:14
%加入白噪声   
    sigma(j) = power(10,(-EbNo(j)/20))/ sqrt (2);
    for i = 1:N       
        n(i)=sigma(j)*b(i);
        y(i)=s(i)+n(i);
    end
    
% 解码
   Nombreerreur(j) = 0;
    for i=1:N
        if y(i) > 0
            Demo(i) = 1;
        else
            Demo(i) = -1;     
        end
        
% 统计误码数和误码率                
        if Demo(i) ~= s(i)
            Nombreerreur(j) = Nombreerreur(j) + 1;
        end
    end     
    Tauxderreur(j) = Nombreerreur(j) / N;
    TauxderreurTheorique(j) = erfc(sqrt(power(10,EbNo(j)/10)))/2;   
end

%比较实际误码率和理论误码率曲线 
figure  

semilogy(EbNo,Tauxderreur,EbNo,TauxderreurTheorique);


仿真结果如下:

Matlab 仿真BPSK调制下传输的误码率_第1张图片

可以看到理论值和仿真值是很接近的。

希望该程序能对大家有所帮助

你可能感兴趣的:(Matlab)