clc
clear all
snr=-10:1:35; %snr是信噪比
PsPn=10.^(0.1*snr); %Ps/Pn是信号功率比噪声功率,也是信号和噪声的能量比
Capacity=[]; %信道容量
log2py=[]; %信道容量公式第一项
signal_space=[]; %信号空间
sample=66666; %样本个数
%QPSK 8PSK 16PSK调制的信道容量曲线
for k=2:4
M=2.^k;
if k==2 %QPSK信号星座图
signal_space(1) = complex(1,1);
signal_space(2) = complex(-1,1);
signal_space(3) = complex(-1,-1);
signal_space(4) = complex(1,-1);
end
if k==3 %8PSK信号星座图
signal_space(1) = complex(1,0);
signal_space(2) = complex(cos(pi/4),sin(pi/4));
signal_space(3) = complex(0,1);
signal_space(4) = complex(cos(3*pi/4),sin(3*pi/4));
signal_space(5) = complex(-1,0);
signal_space(6) = complex(cos(5*pi/4),sin(5*pi/4));
signal_space(7) = complex(0,-1);
signal_space(8) = complex(cos(-pi/4),sin(-pi/4));
end
if k==4 %16PSK信号星座图
signal_space(1) = complex(1,0);
signal_space(2) = complex(cos(pi/8),sin(pi/8));
signal_space(3) = complex(cos(pi/4),sin(pi/4));
signal_space(4) = complex(cos(3*pi/8),sin(3*pi/8));
signal_space(5) = complex(0,1);
signal_space(6) = complex(cos(5*pi/8),sin(5*pi/8));
signal_space(7) = complex(cos(3*pi/4),sin(3*pi/4));
signal_space(8) = complex(cos(7*pi/8),sin(7*pi/8));
signal_space(9) = complex(-1,0);
signal_space(10) = complex(cos(7*pi/8),sin(-7*pi/8));
signal_space(11) = complex(cos(3*pi/4),sin(-3*pi/4));
signal_space(12) = complex(cos(5*pi/8),sin(-5*pi/8));
signal_space(13) = complex(0,-1);
signal_space(14) = complex(cos(3*pi/8),sin(-3*pi/8));
signal_space(15) = complex(cos(pi/4),sin(-pi/4));
signal_space(16) = complex(cos(pi/8),sin(-pi/8));
end
Es=sum((abs(signal_space)).^2)/M; %调制信号能量Es
for i=1:1:length(snr)
No=Es/PsPn(i); %能量比等于功率比
for j=1:1:sample
x(j)=signal_space(floor(rand*M)+1); %输入随机信号
end
y=x+sqrt(No./2)*complex(randn(1,sample),randn(1,sample)); %信号叠加噪声
for j=1:1:sample
pysm=0;
for b=1:1:M
pysm=pysm+exp(-(abs(y(j)-signal_space(b))).^2/No);
end
log2py(j)=log2(1/M/(pi*No)*pysm); %信道容量公式第一项的和
end
Capacity(i)=-mean(log2py)-log2(pi*exp(1)*No); %mean函数可以直接得出矩阵的均值
end
EbNo=10*log10(PsPn./Capacity);
if k==2
plot(EbNo,Capacity,'b--'); %QPSK调制信道容量曲线
end
hold on;
if k==3
plot(EbNo,Capacity,'r-.'); %8PSK调制信道容量曲线
end
hold on;
if k==4
plot(EbNo,Capacity,'k:'); %16PSK调制信道容量曲线
end
hold on;
end
%16QAM调制的信道容量曲线
k=4;
M=2.^k;
signal_space(1) = complex(1,1);
signal_space(2) = complex(1,3);
signal_space(3) = complex(3,1);
signal_space(4) = complex(3,3);
signal_space(5) = complex(-1,1);
signal_space(6) = complex(-1,3);
signal_space(7) = complex(-3,1);
signal_space(8) = complex(-3,3);
signal_space(9) = complex(-1,-1);
signal_space(10) = complex(-1,-3);
signal_space(11) = complex(-3,-1);
signal_space(12) = complex(-3,-3);
signal_space(13) = complex(1,-1);
signal_space(14) = complex(1,-3);
signal_space(15) = complex(3,-1);
signal_space(16) = complex(3,-3);
Es=sum((abs(signal_space)).^2)/M; %调制信号能量Es
for i=1:1:length(snr)
No=Es/PsPn(i); %能量比等于功率比
for j=1:1:sample
x(j)=signal_space(floor(rand*M)+1); %输入随机信号
end
y=x+sqrt(No./2)*complex(randn(1,sample),randn(1,sample)); %信号叠加噪声
for j=1:1:sample
pysm=0;
for b=1:1:M
pysm=pysm+exp(-(abs(y(j)-signal_space(b))).^2/No);
end
log2py(j)=log2(1/M/(pi*No)*pysm); %信道容量公式第一项的和
end
Capacity(i)=-mean(log2py)-log2(pi*exp(1)*No); %mean函数可以直接得出矩阵的值
end
EbNo=10*log10(PsPn./Capacity);
plot(EbNo,Capacity,'c-');
xlabel('Eb/No(dB)');
ylabel('Capacity(比特每信道容量)');
axis([-2,20,0,5]);
grid on;
text(18,2.2,'QPSK') ;
text(18,3.2,'8PSK') ;
text(18,3.8,'16PSK' ) ;
text(18,4.2,'16QAM') ;
没有合适的资源?快使用搜索试试~ 我知道了~
【信道容量】 QPSK+8PSK+16PSK+16QAM数字信号调制信道容量仿真【含Matlab源码 2784期】.zip
共2个文件
m:1个
jpg:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 132 浏览量
2024-06-22
11:41:33
上传
评论
收藏 27KB ZIP 举报
温馨提示
Matlab领域上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信
资源推荐
资源详情
资源评论
收起资源包目录
【信道容量】 QPSK+8PSK+16PSK+16QAM数字信号调制信道容量仿真【含Matlab源码 2784期】.zip (2个子文件)
【信道容量】基于matlab QPSK+8PSK+16PSK+16QAM数字信号调制信道容量仿真【含Matlab源码 2784期】
运行结果.jpg 35KB
quxian.m 4KB
共 2 条
- 1
资源评论
Matlab领域
- 粉丝: 3w+
- 资源: 3233
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功