概述
课设要求:
假定通信双方在单输入单输出的无线加性高斯信道上,按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:31
i = 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中BPSK的星座图及误比特率(BER)曲线仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复