概述
第一个学习笔记。。。学习一下星座图的概念,之前都是直接映射,没有想更具体的东西。
代码只能在最后么?还没太摸清怎么搞的。
下面和我代码中的不一样主要是使用了格雷码,格雷码指每相邻位数之间只有一位是相同的,以降低误码判决。
norm()指的是向量范数和矩阵范数,norm([a b c])指计算元素的模,norm(x,1)指的是一维范式,元素绝对值之和(不太懂有什么物理意义)
qfunc()求矩阵的逆,矩阵的逆(AB=I)
semilogy 将使用 y 轴的对数刻度绘制数据。
semilogy(Y) 使用 y 轴的以 10 为基数的对数刻度和 x 轴的线性刻度创建一个绘图。它绘制 Y 的列对其索引的图。如果 Y 包含复数值,则 semilogy(Y) 等同于 semilogy(real(Y),imag(Y))。semilogy 函数在此函数的其他所有用法中将忽略虚部。
semilogy(X1,Y1,…) 绘制所有 Yn 与 Xn 对组。如果只有 Xn 或 Yn 之一为矩阵,semilogy 绘制向量变量、矩阵的行及列,以及长度与向量长度一致的矩阵的维度。如果矩阵是方阵,当矩阵长度与向量长度一致时,将绘制矩阵的列对该向量的图。Xn 的值可以是数值、日期时间、持续时间或分类值。Yn 中的值必须为数值。
semilogy(X1,Y1,LineSpec,…) 绘制由 Xn,Yn,LineSpec 三重线定义的所有线条。LineSpec 确定线型、标记符号及绘制的线条的颜色。
semilogy(…,‘PropertyName’,PropertyValue,…) 为 semilogy 创建的所有制图线条设置属性值。有关属性列表,请参阅 Line 属性。
semilogy(ax,…) 将在由 ax 指定的坐标区中,而不是在当前坐标区 (gca) 中创建线条。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
h = semilogy(…) 返回由图形线条对象组成的向量。
————————————————
版权声明:本文为CSDN博主「左手の明天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ywsydwsbn/article/details/106162324
clear all;clc
nsymbol= 100000;
M=16;
graycode=[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10 ];
%graycode=[0:32]
EsN0=5:20;
snr1=10.^(EsN0/10);
msg=randi([0,M-1],1,nsymbol);
msg1=graycode(msg+1);
msgmod=qammod(msg1,M);
scatterplot(msgmod);
spow=norm(msgmod).^ 2/nsymbol;
for i=1:length(EsN0)
sigma=sqrt(spow/(2*snr1(i)));
rx=msgmod+sigma*(randn(1,length(msgmod))+1i*randn(1,length(msgmod)));
y=qamdemod(rx,M);
decmsg=graycode(y+1);
[err1,ber(i)]= biterr(msg,decmsg,log2(M));
[err2,ser(i)]=symerr(msg,decmsg);
end
p4=2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));
ser1=1-(1-p4).^2;
ber1=1/log2(M)*ser1;
figure()
semilogy(EsN0,ber,'o',EsN0,ser,'*' ,EsN0,ser1, EsN0,ber1,'-');
title('64QAM-AWGN')
xlabel('Es/N0');ylabel('SER AND BER');
legend('ber simulation' ,'ser simulation','ser theory' ,'ber theory');`
最后
以上就是烂漫丝袜为你收集整理的matlab星座图调制的全部内容,希望文章能够帮你解决matlab星座图调制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复