MATLAB中BPSK的星座图及误比特率(BER)曲线仿真
课设要求:
假定通信双方在单输入单输出的无线加性高斯信道上,按BPSK的调制方式进行信息传输,试在给定[-15dB.15dB]的信噪比范围,分别完成以下工作:
(1)MATLAB分别绘制信噪比为-10dB、-5dB、0dB、5dB时,1000次信道实现下的接收信号星座图,并最终将所绘制四幅图以子图的形式呈现在一幅图中.
(2)试在[-15dB.15dB]范围里每个信噪比点进行1000000次信道的实现,且接收端执行最大似然检测的条件下,绘制出通信系统的误比特率(BER)曲线图.
网上搜了一下,只有误比特率的仿真,而星座图的仿真却没有资料,所以自己写了星座图。
clear;
Maxbit = 1000;
Eb = 1;
% fs = 0.01:0.01:Maxbit;
% f = cos(fs*2*pi+pi/2);
% fs = sin(fs*2*pi+pi/2);
for j=1:4 i = j*5-15;b = rand(1,Maxbit); b_bin = round(b); b2 = sign(b_bin - 0.5);% b3 = repmat(b2,Maxbit,1);% b4 = reshape(b3,1,[]);% z = f.*b4;% plot(z);SNR = 10 ^( 0.1 * i); N0 = Eb/SNR;Sigma = sqrt(N0/2);Noise = Sigma*randn(1,Maxbit);Noises = Sigma*randn(1,Maxbit);% % Noise2 = repmat(Noise,Maxbit,1);% Noise3 = reshape(Noise2,1,[]);% % Noises2 = repmat(Noises,Maxbit,1);% Noises3 = reshape(Noises2,1,[]);% zn = Noise3.*f + Noises3.*fs;Snt = b2 + Noise;subplot(2,2,j);scatter(Snt,Noises,'+');hold on;scatter(-1,0,'red');hold on;scatter(1,0,'red');axis([-5 5,-5 5])end
Maxbit = 1000000;
for j=1:31i = j-16;b = rand(1,Maxbit); b_bin = round(b); b2 = sign(b_bin - 0.5);SNR = 10 ^( 0.1 * i); N0 = Eb/SNR;Sigma = sqrt(N0/2);Noise = Sigma*randn(1,Maxbit);Snt = b2 + Noise;res(Snt<0) = -1;res(Snt>=0) = 1;St = res .* b2;err(j) = length(find(St<=0));Pb(j) = err(j)/Maxbit*100;end
figure(2);
semilogy(-15:1:15,Pb);
grid on;
xlabel('信噪比(dB)');
ylabel('误码率Pe')
仿真结果:
星座图:
误比特率曲线:
注释掉的那部分代码是BPSK的调制过程,写完了以后发现,在绘制星座图的过程中,并不需要真正的进行调制就可以画出来,实际上,星座图中的实轴是信号的同向分量,虚轴是其正交分量,而只有噪声中含有正交分量。
MATLAB中BPSK的星座图及误比特率(BER)曲线仿真相关推荐
- 星座图matlab是什么意思,matalb中画星座图 matlab中怎么绘制星座图
看看这个程序是否符合你的要求:按下鼠标左键开始绘制一个星座图,点击右键结束当前星座 function xingzuo figure('WindowButtonDownFcn',@wbdcb) ah = ...
- matlab序列负轴,MATLAB中雷达信号回波图为什么会有负半轴
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:MATLAB中雷达信号回波图为什么会有负半轴?哪条产生 问题详情:re, plot(0:ts:(16*N-1)*ts,s_pc), ...
- qpsk相点 matlab,QPSK误码率和星座图MATLAB仿真
一.数字调制便是把数字基带信号的频谱搬移到高频处,构成适宜在信道中传输的带通讯号.根柢的数字调制办法有振幅键控(ASK).频移键控(FSK).必定相移键控(PSK).相对(差分)相移键控(DPSK). ...
- MATLAB中使用magnify做图中图
网上一般有三种方法在MATLAB中做图中图,但是我感觉使用magnify是magnify是个动态放大镜,固化后可以用tools>edit plot移动小图,能选取多个局部图.下面详细讲解其使用方 ...
- matlab中如何转动三维图_MATLAB小技巧之:绕任意空间轴旋转三维图形
x=1:0.1:10; y=sin(x); c=cosd(15); s=sind(15); X=x*c-y*s; Y=x*s+y*c; plot(x,y) hold on plot(X,Y) 这就是新 ...
- matlab中如何转动三维图_matlab中的三维坐标系与旋转
1. matlab中的三维坐标系 matlab中的三维坐标系是使用的右手坐标系: 输入以下代码: >> plot3(0,0,0) >> xlabel('axis X') > ...
- 基于Matlab中Simulink生成FPGA-Verilog语言及联合Vivado的仿真(以卡尔曼-Kalman滤波器为例)
目录 一.简介 二.在Simulink中生成Verilog语言 1.在Simulink中建立Kalman滤波器仿真 2.将Kalman滤波器部分打包 3.生成Verilog程序 3.1.参数配置 3. ...
- matlab频响优化,MATLAB中关于频响图函数最优化的程序问题
我是一名大四的学生,现在正在做毕业设计,因MATLAB从未学过,也是边学边做,我需要求出IGv函数的频率响应图,因IGv的表达式很复杂,这里我没列出,在下面的程序中有的,以下是我的程序,请高手帮我看看 ...
- matlab中如何转动三维图_matlab如何画三维图
展开全部 1.plot3三维曲线图.e69da5e887aa62616964757a686964616f31333431343665 启动MATLAB,新建脚本(.m文件),在脚本编辑区输入以下代码, ...
最新文章
- 不等距双杆模型_气体中的变质量模型
- Silverlight 置于悬浮层之下 背景透明的方法
- 解方程 2014NOIP提高组 (数学)
- java获取接口数据类型_java中调用第三方接口获取数据的方式
- 快手文档 - www.kuaishou.net
- 深度学习(9)TensorFlow基础操作五: Broadcasting
- fabric 转账_Fabric 学习笔记-架构初探
- html实现 左图右文_让CSS flex布局最后一行左对齐的N种方法
- mysql中的删除语法错误_mysql – EXPLAIN中的SQL语法错误
- 《大数据》2015年第3期“研究”——大数据流式计算:应用特征和技术挑战
- 软件工程课设迭代开发第二天
- 效率源希捷硬盘远程维修案例-K9盘卡死引起的F级处理
- 力扣剑指 Offer 17. 打印从1到最大的n位数
- 形式多样!APP引导页设计灵感
- DES, TripleDES and BlowFish in Silverlight
- Unity3D基础19:Tag标签
- 读《scikiit-learn机器学习》黄永昌第二章
- 利用com.googlecode.libphonenumber解析手机号归属地
- 服务器状态显示异常,进lol显示服务器异常请稍后再试
- 学python千万别想当然