matlab怎么生成星座图,关于16QAM生成星座图的程序问题
%16QAM系统的调制、解调的仿真,信源为单极性不归零码(NRZ)
clear all %清空工作空间的变量
close all %关闭所有图形窗口
global dt df t f N T %定义全局变量
k=13;
N=2^k; %总的取样点数
L=32; %L为每个码元的取样点数
M=N/L; %M码元总数
Rb=3; %码元速率Rb=2Mb/s
Ts=1/Rb; %码元宽度Ts
dt=Ts/L; %时域取样间隔
df=1/(N*dt);%频域取样间隔
T=N*dt; %时间截断长度
Bs=N*df/2; %带宽
Na=4; %示波器扫描宽度
alpha=0.5; %升余弦滚降系数
t=linspace(-T/2,T/2,N); %频域横坐标
f=linspace(-Bs,Bs,N)+eps;%时域横坐标
%升余弦
hr1=sin(pi*t/Ts)./(pi*t/Ts);
hr2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2);
hr=hr1.*hr2;
HR=abs(t2f(hr));
GT=sqrt(HR);
GR=GT;
figure(1)
set(1,'Position',[10,250,500,400])
%设定窗口位置及大小
figure(2)
set(2,'Position',[515,250,500,400])
%设定窗口位置及大小
figure(3)
set(3,'Position',[50,10,500,200])
%设定窗口位置及大小
figure(4)
set(4,'Position',[600,10,400,300])
%设定窗口位置及大小
A=1;
fc=1/Ts;
m=A*cos(2*pi*fc*t); % 载波
n=-A*sin(2*pi*fc*t);
EP=zeros(size(f)); %输入信号功率谱
EPa=zeros(size(f)); %调制后信号功率谱
EPo=zeros(size(f)); %输出信号功率谱
for loop1=1:15 %误码率曲线
Eb_N0(loop1)=2*(loop1-1); %Eb/N0 in dB
eb_n0(loop1)=10^(Eb_N0(loop1)/10);
Eb=0.5;
n0=Eb/(eb_n0(loop1)); %信道的噪声谱密度
sita=n0*Bs; %信道中噪声功率
n_err=0; %误码计数
for loop2=1:5
a=round(rand(1,M)); %产生随机码
for i0=1:L;
s(i0+[0:M-1]*L)=a; %将输出信号变成单极性不归零码
end
S=t2f(s);
P=S.*conj(S)/Ts;
EP=(EP*(loop1-1)+P)/loop1; %输入信号功率谱
i=zeros(1,M/2); %串并转换
q=zeros(1,M/2);
I=zeros(1,N); %串并转换
Q=zeros(1,N);
i=a(1:2:M-1);
q=a(2:2:M);
ii=zeros(1,M/4); %串并转换
qq=zeros(1,M/4);
yii=zeros(1,M/2); %串并转换
yqq=zeros(1,M/2);
y=zeros(1,M);
for l1=1:2:(M/2-1);
if i(l1)-i(l1+1)==1,
ii((l1+1)/2)=1;
elseif i(l1)-i(l1+1)==-1
ii((l1+1)/2)=-1;
elseif i(l1)==0
ii((l1+1)/2)=-3;
else ii((l1+1)/2)=3;
end
if q(l1)-q(l1+1)==1,
qq((l1+1)/2)=1;
elseif q(l1)-q(l1+1)==-1
qq((l1+1)/2)=-1;
elseif q(l1)==0
qq((l1+1)/2)=-3;
else qq((l1+1)/2)=3;
end
end
for l2=1:4*Ts/dt;
I(l2+[0:M/4-1]*4*L)=ii;
Q(l2+[0:M/4-1]*4*L)=qq;
end;
Ia=I.*m; %两路分别调制
Qa=Q.*n;
st=Ia+Qa; %并串转换--矩形星座
ST=t2f(st); %调制后信号的傅氏变换
Pp=abs(ST);
Pa=ST.*conj(ST)/T;
EPa=(EP*(loop1-1)+Pa)/loop1; %调制后信号功率谱
n_ch=sqrt(sita)*randn(size(t)); %信道噪声
st=st+n_ch; %加噪声
Iaa=st.*m; %对两路信号分别解调
Qaa=st.*n;
Ir=real(f2t(t2f(Iaa).*GR)); %分别通过接收滤波器
Qr=real(f2t(t2f(Qaa).*GR));
yi=Ir(2*L:4*L:N); %抽样判决
yq=Qr(2*L:4*L:N);
for l2=1:2:M/2-1
k1=abs(yi((l2+1)/2)+1);
k2=abs(yi((l2+1)/2)+0.5);
k3=abs(yi((l2+1)/2)-0.5);
k4=abs(yi((l2+1)/2)-1);
k=[k1,k2,k3,k4];
p1=abs(yq((l2+1)/2)+1);
p2=abs(yq((l2+1)/2)+0.5);
p3=abs(yq((l2+1)/2)-0.5);
p4=abs(yq((l2+1)/2)-1);
p=[p1,p2,p3,p4];
if k1==min(k)
yii(l2)=0;yii(l2+1)=0;
elseif k2==min(k)
yii(l2)=0;yii(l2+1)=1;
elseif k3==min(k)
yii(l2)=1;yii(l2+1)=0;
elseif k4==min(k)
yii(l2)=1;yii(l2+1)=1;
end
if p1==min(p)
yqq(l2)=0;yqq(l2+1)=0;
elseif p2==min(p)
yqq(l2)=0;yqq(l2+1)=1;
elseif p3==min(p)
yqq(l2)=1;yqq(l2+1)=0;
elseif p4==min(p)
yqq(l2)=1;yqq(l2+1)=1;
end
end
y(1:2:M-1)=yii; %并串转换
y(2:2:M)=yqq;
for l4=1:L;
e(l4+[0:M-1]*L)=y; %将输出信号变成双极性不归零码
end
Se=t2f(e);
Po=Se.*conj(Se)/T;
EPo=(EPo*(loop1-1)+Po)/loop1; %输出信号功率谱
n_err=n_err+length(find(y~=a));
end
Pe(loop1)=n_err/(M*loop2);
end
figure(1)
subplot(2,2,1)
plot(t,s,'r');
axis([-T/64,T/64,min(s)-0.5,max(s)+0.5])
xlabel('t (ms)');
ylabel('s (V/KHz)');
title('输入单极性不归零码信号波形');
subplot(2,2,2)
bb=30+10*log10(EP+eps);
plot(f,bb,'g')
axis([-20,20,-20,max(bb)+0.5])
grid
xlabel('f(Mhz)');
ylabel('P(f) (dBm/MHz)');
title('输入信号功率谱密度图');
subplot(2,2,3)
plot(t,e,'b');
axis([-T/64,T/64,min(e)-0.5,max(e)+0.5])
xlabel('t (ms)');
ylabel('e (V/KHz)');
title('输出信号波形');
subplot(2,2,4)
bb=30+10*log10(EPo+eps);
plot(f,bb,'g')
axis([-20,20,-20,max(bb)+0.5])
grid
xlabel('f(Mhz)');
ylabel('Po(f) (dBm/MHz)');
title('输出信号功率谱密度图');
figure(2)
subplot(2,3,1)
plot(t,I,'r');
axis([-T/16,T/16,min(I)-0.5,max(I)+0.5])
xlabel('t (ms)');
ylabel('I (V/KHz)');
title('I路信号波形');
subplot(2,3,2)
plot(t,st,'b');
axis([-T/16,T/16,min(st)-0.5,max(st)+0.5])
xlabel('t (ms)');
ylabel('st (V/KHz)');
title('调制后信号波形');
subplot(2,3,3)
plot(t,Iaa,'b');
axis([-T/16,T/16,min(Iaa)-0.5,max(Iaa)+0.5])
xlabel('t (ms)');
ylabel('Iaa (V/KHz)');
title('I路解调后信号波形');
subplot(2,3,4)
plot(t,Q,'b');
axis([-T/16,T/16,min(Q)-0.5,max(Q)+0.5])
xlabel('t (ms)');
ylabel('Q (V/KHz)');
title('Q路信号波形');
subplot(2,3,5)
bb=30+10*log10(EPa+eps);
plot(f,bb,'g')
axis([-20,20,-20,max(bb)+0.5])
grid
xlabel('f(Mhz)');
ylabel('Pa(f) (dBm/MHz)');
title('调制后信号功率谱密度图');
subplot(2,3,6)
plot(t,Ir,'b');
axis([-T/16,T/16,min(Ir)-0.5,max(Ir)+0.5])
xlabel('t (ms)');
ylabel('Ir (V/KHz)');
title('I路解调并滤波后信号波形');
figure(3)
subplot(1,2,1)
tt=[0:dt:Na*L*dt];
hold on
for jj=1:Na*L:N-Na*L
plot(tt,Ir(jj:jj+Na*L));
end
title('I路解调并滤波后信号波形眼图');
subplot(1,2,2)
semilogy(Eb_N0,Pe,'g');
eb_n0=10.^(Eb_N0/10);
hold on
plot(Eb_N0,0.5*erfc(sqrt(eb_n0/2)));
axis([0,14,1e-4,1])
xlabel('Eb/N0')
ylabel('Pe')
title('误码率曲线')
figure(4)
plot(I,Q,'.');
axis([-4,4,-4,4])
xlabel('I ');
ylabel('Q ');
title('16QAM星座图');
figure(5)
plot(f,Pp);
xlabel('w');
ylabel('V/HZ');
title('已调制信号频谱图');
matlab怎么生成星座图,关于16QAM生成星座图的程序问题相关推荐
- 【MATLAB】进阶绘图 ( colormap 颜色图矩阵分析 | 自定义 colormap 颜色图 | 生成 64 x 3 的 colormap 颜色图矩阵 )
文章目录 一.colormap 矩阵分析 二.自定义 colormap 颜色图 1.生成 colormap 矩阵 2.代码示例 一.colormap 矩阵分析 imagesc 函数参考文档 : htt ...
- 在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和
在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和 先创建一个新的脚本,并保存,在编辑器中进行编辑.具体如图,以5阶方阵为例: a=zeros(5,5): for i=(1 ...
- matlab 编程波形图,实验一MATLAB编程环境及其常用信号的生成及其波形仿真.doc
word格式精心整理版 范文范例 学习指导 实验一 MATLAB编程环境及常用信号的生成及波形仿真 一.实验目的 1.学会运用Matlab表示常用连续时间信号的方法 2.观察并熟悉这些信号的波形和特性 ...
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图. 实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程 ...
- 通过.obj生成2d图像_自动生成 凹凸法线灯贴图 插件
CrazyBump疯狂凹凸自动生成凹凸法线灯贴图 CrazyBump是一款专业的法线贴图制作软件,人们一般称之为超级法线凹凸生成软件,用来做材质中贴图中的凹凸和法线贴图是非常不错的,CrazyBump ...
- MATLAB之简谐信号声音的生成及其调制性
文章目录 MATLAB之简谐信号声音的生成和保存 MATLAB之声音的调制特性 MATLAB之简谐信号声音的生成和保存 clc; clear all; clear out; dFs = 2^14; f ...
- pytorch制作CNN的类印象图 class impression(类别生成图)及生成对抗攻击样本
本文给出完整代码实现CNN模型的类别可视化输入图像--类印象图,并基于此生成对抗样本图像. 1,完整代码 在上一篇文章中,我给出了CNN特征可视化的代码,在此基础上稍加修改就可以得到根据各类别 ...
- u-tools图床便捷生成markdown图片
u-tools 图床 上传图片生成markdown图片非常便捷. 支持的图片服务器有几种,其中搜狗.网易和掘金的加载速度更快些: 也可以用阿里与和腾讯云的OSS; 其中网易生成图片不是原图尺寸好像被改 ...
- 序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成
本文使用 Zhihu On VSCode 创作并发布 Paper | Code 本文一作实在是太大佬了,让我和小伙伴焦虑了好一阵子.作者主页送你们,将这份焦虑传递下去. Introduction 图生 ...
最新文章
- JS获取字符串实际长度!
- 200801一阶段1函数封装
- BZOJ 2045 容斥原理
- Linux c 进程名 pid,Linux C已知进程名字得到其PID号
- 关于jquery find 获取不到 input标签问题
- 解决nginx下connect() to 127.0.0.1:3000 failed
- sql server序列_SQL Server中的序列对象功能
- java实现系统参数的存储_基于ZooKeeper,Spring设计实现的参数系统
- ExtJS学习------Ext.define的继承extend,用javascript实现相似Ext的继承
- 计算机硬件驱动备份,WinXp系统下该怎样备份电脑硬件驱动?【图文教程】
- Wannacry蠕虫勒索软件“永恒之蓝”3种修复方案
- 【端午安康SXY】Python正则表达式进阶用法(以批量修改Markdown英文字体为例)
- Python 处理表格进行成绩排序的操作代码
- 洛谷P1200你的飞船在这
- 修复树莓派鼠标移动缓慢迟滞问题
- 逻辑与和逻辑或的执行顺序
- mysql无法执行二进制文件_kail系统64,mysql64,出现-bash: bin/mysqld: 无法执行二进制文...
- 笔记本cpu温度多少算正常
- 优秀 python 开源项目
- androidstudio窗口不显示
热门文章
- 计算机应用专业可以考哪些证,计算机应用技术专业学生需要考取哪些证书?
- 人为何有指纹【转自生物谷】
- 台式电脑win7计算机无法启动,台式机无法开机怎么重装win7系统
- POJ 2305大数求余
- bim计算机工程师考试,bim工程师考试报名条件是什么?bim工程师考试怎么报名?...
- 大数据相关总结(待续)
- zblog php 点赞,文章点赞开发版
- win2012 加域_Windows Server 2012 域设置及客户端加入
- 软考高级,考网规还是考项管?
- 多普达830玩友玩祖玛的时候要小心啊