我是靠谱客的博主 不安裙子,这篇文章主要介绍MATLAB中BPSK的星座图及误比特率(BER)曲线仿真,现在分享给大家,希望可以做个参考。

课设要求:
假定通信双方在单输入单输出的无线加性高斯信道上,按BPSK的调制方式进行信息传输,试在给定[-15dB.15dB]的信噪比范围,分别完成以下工作:
(1)MATLAB分别绘制信噪比为-10dB、-5dB、0dB、5dB时,1000次信道实现下的接收信号星座图,并最终将所绘制四幅图以子图的形式呈现在一幅图中.
(2)试在[-15dB.15dB]范围里每个信噪比点进行1000000次信道的实现,且接收端执行最大似然检测的条件下,绘制出通信系统的误比特率(BER)曲线图.

网上搜了一下,只有误比特率的仿真,而星座图的仿真却没有资料,所以自己写了星座图。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部