• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-08-17
  • 语言: Matlab
  • 标签: matlab  

资源简介

本资源包含对16QAM、32QAM、128QAM的误码率分析,并作出误码率比较的仿真图。

资源截图

代码片段和文件信息

clc
clear all
close all
m=4;
M =2^m; %M进制
SNRin=-10:1:20;
linSNRin=10.^(SNRin/10);
x = randi(M50001)-1;%信源
y=modulate(modem.qammod(M)x);   %调制  modem.qammod(M)确定调制方式
rt=zeros(131);
e1=mean(abs(y).^2);
e2=e1/m;
N0=e2./linSNRin;
for i=1:length(SNRin)
    z=zeros(1100);
    z1=0;
    for n=1:100       %蒙特卡罗仿真
    noisy=sqrt(N0(i)/2)*(randn(15000)+j*randn(15000));
    ynoisy=y+noisy‘;
    z2=demodulate(modem.qamdemod(M)ynoisy);
    [numz(n)]= biterr(xz2);
    z1=z(n)+z1;
    end
    rt(i)=z1/100;
end
semilogy(SNRinrt‘linewidth‘2);%也可以用plot(semilogy画图时纵坐标取对数了)
axis([-10 13 0.000001 1]);
title(‘误比特率曲线‘);
%xlabel(‘信噪比‘);
ylabel(‘误比特率‘);
grid on;
hold on;
m=6;
M =2^m; %M进制
SNRin=-10:1:20;
linSNRin=10.^(SNRin/10);
x = randi(M50001)-1;%信源
y=modulate(modem.qammod(M)x);   %调制  modem.qammod(M)确定调制方式
rt=zeros(131);
e1=mean(abs(y).^2);
e2=e1/m;
N0=e2./linSNRin;
for i=1:length(SNRin)
    z=zeros(1100);
    z1=0;
    for n=1:100       %蒙特卡罗仿真
    noisy=sqrt(N0(i)/2)*(randn(15000)+j*randn(15000));
    ynoisy=y+

评论

共有 条评论