通信调制体制设计之64QAM性能分析MATLAB仿真及代码
通信调制体制设计之64QAM性能分析MATLAB仿真及代码
任务背景
弗雷泽岛旅游经理在审查您之前建立无线链路任务的解决方案时,正在研究使用无线链路传输实时安全视频源的可能性。由于来自岛周围的多个安全摄像机的视频信号在传输之前被多路复用,因此无线信道的数据速率是不同的。弗雷泽岛旅游局能够从澳大利亚通信和媒体管理局(ACMA)获得约700 MHz范围的5.25 MHz频谱。在本任务中,您需要选择适当的调制方案,以便使用分配的无线电频谱(5.25 MHz)以给定的数据速率传输视频源。
5.25MHz 带宽,中频700MHz
方案设计及分析
问题:请选择合适的M-QAM方案以给定速率传输数据,绘制相应的星座图(constellation diagram),并使用适当的位序列标记星座点。证明您的选择和星座点标记合理。
中频带宽
B
=
5.25
B = 5.25
B=5.25MHz,数据速率(比特速率)为
R
b
=
20
{R_b} = 20
Rb?=20Mb/s;滚降系数
α
=
0.1
\alpha = 0.1
α=0.1。调制方式为MQAM,假设
R
B
{R_B}
RB?为符号速率,则根据奈奎斯特准则,必须满足
R
B
(
1
+
α
)
=
R
b
log
?
2
M
(
1
+
α
)
?
5.25MHz
{R_B}(1 + \alpha ) = \frac{{{R_b}}}{{{{\log }_2}M}}(1 + \alpha ) \leqslant {\text{5}}{\text{.25MHz}}
RB?(1+α)=log2?MRb??(1+α)?5.25MHz
当
M
=
4
M = 4
M=4时,
R
b
log
?
2
M
(
1
+
α
)
=
11
\frac{{{R_b}}}{{{{\log }_2}M}}(1 + \alpha ){\text{ = }}11
log2?MRb??(1+α) = 11
当
M
=
16
M = 16
M=16时,
R
b
log
?
2
M
(
1
+
α
)
=
5.5
\frac{{{R_b}}}{{{{\log }_2}M}}(1 + \alpha ){\text{ = }}5.5
log2?MRb??(1+α) = 5.5
当
M
=
64
M = 64
M=64时,
R
b
log
?
2
M
(
1
+
α
)
=
3.667
\frac{{{R_b}}}{{{{\log }_2}M}}(1 + \alpha ){\text{ = }}3.667
log2?MRb??(1+α) = 3.667
对于MQAM调制,M越大,信号抗噪能力越差,M=4和16时均不满足,故选择M=64,即采用64QAM调制方案进行数据传输。
星座图如下图所示,采用格雷码映射,图中每个星座点用二进制的6比特表示,即每个码元包含6比特;采用格雷码映射的星座中相邻码组仅有1bit差别。
采用格雷码映射的优点:对于一个固定的星座图,在接收端任何一个星座点被错误解码成相邻星座的概率大于解码成距离它比较远的星座点,因为星座点之间的间距代表了噪声容限,噪声越大距离最近的两个星座点更容易模糊在一起。尽量让相邻最近的两个星座点的比特差最小,两个星座点只相差一位为最佳,因为这样的话即便符号误判,但是按照错误符号解码仅有1个bit错误,其他bit全部解码正确。
问题:使用此调制方案和升余弦脉冲整形传输给定视频数据所需的实际带宽是多少
根据第一问的分析,所需的实际带宽为
R
b
log
?
2
M
(
1
+
α
)
=
3.667
\frac{{{R_b}}}{{{{\log }_2}M}}(1 + \alpha ){\text{ = }}3.667
log2?MRb??(1+α) = 3.667MHz。
问题:仿真并画出调制方案的误码率性能,Eb/N0的范围选择要能观察到误比特率达到
1
0
?
6
{10^{ - 6}}
10?6。提示:可以使用无载波的基带信号进行仿真,对于基带的仿真,NumPts=1。
误码率曲线如下图所示
问题:将模拟性能与理论误差概率进行比较,并对结果进行解释。
由3中误码率曲线图可以看出,在高斯信道下,64QAM调制仿真得到的误码率曲线与理论误码率曲线基本一致,当Eb/N0≥18dB时,64QAM的误码率可达
1
0
?
6
{10^{ - 6}}
10?6;在仿真中,要到上述结果,信号的符号数必须满足一定的数量,本次实验中采用了20000个符号,即12000个比特。
问题:绘制0dB、5dB、15dB、25dB和35dB的Eb/No值的接收噪声信号星座图,并对您的观察结果进行解释。
星座图如下
分析:由上述5幅图可以看出,当Eb/N0为0dB和5dB时,噪声已远远超过了64QAM能够正确解调的噪声容限,星座点已经杂乱无章,结合误码率曲线图,此时解调误码率大于
1
0
?
1
{10^{ - 1}}
10?1;
当Eb/N0为15dB时,从星座图已经可以明显地看出是64QAM调制这一特征,但星座点聚合的半径相对Eb/N0为25dB时较大,还有部分符号位于两个星座点交界处,此时误码率可达
1
0
?
4
{10^{ - 4}}
10?4,若再加上信道编码纠错,此时能够满足大部分数据传输的要求;
当Eb/N0为35dB时,信号质量可以说是非常好了,星座图与不含噪声时相近。
问题:如果接收机的可接受的最大误比特率为10?5,则计算弗雷泽岛发射站所需的最小发射功率。使用无线链路的以下参数
发射天线增益=5 dB,接收天线增益=5 dB
发射机电缆损耗=2 dB,接收机电缆损耗=2 dB
无线链路的路径损耗=80 dB
接收机的噪声功率频谱密度= 10-12W / Hz
接收功率Prx与发射功率Ptx之间的关系为:Prx[dB] = Ptx[dB] + Gains [dB] ? Losses [dB]
提示:首先根据您选择的调制方案,使用达到10-5的误码率所需的最小Eb/N0计算Prx。
根据文献[1],由64QAM的解调误比特率公式,得
P
b
?
M
?
1
M
log
?
2
M
erfc
?
[
3
log
?
2
M
?
γ
2
(
M
?
1
)
]
=
7
24
erfc
?
(
4
21
r
)
=
1
0
?
5
{P_b} \cong \frac{{\sqrt M - 1}}{{\sqrt M {{\log }_2}\sqrt M }}\operatorname{erfc} \left[ {\sqrt {\frac{{3{{\log }_2}M \cdot \gamma }}{{2(M - 1)}}} } \right] = \frac{7}{{24}}\operatorname{erfc} (\sqrt {\frac{4}{{21}}r} ) = {10^{ - 5}}
Pb??M
?log2?M
?M
??1?erfc[2(M?1)3log2?M?γ?
?]=247?erfc(214?r
?)=10?5
可得接收机输入信噪比最低为(通过MATLAB中erfcinv函数计算:(erfcinv(24/71e-5))^221/4)
γ
=
S
N
=
45.1
\gamma = \frac{S}{N} = 45.1
γ=NS?=45.1
又因接收机输入端的噪声功率为
N
=
N
0
B
=
1
0
?
12
×
3.6667
×
1
0
6
=
3.6667
×
1
0
?
6
(
W
)
N = {N_0}B = {10^{ - 12}} \times 3.6667 \times {10^6} = 3.6667 \times {10^{ - 6}}({\text{W}})
N=N0?B=10?12×3.6667×106=3.6667×10?6(W)
所以,接收机的输入信号功率最低为
S
=
45.1
×
N
=
45.1
×
3.6667
×
1
0
?
6
=
1.65
×
1
0
?
4
(
W
)
S = 45.1 \times N = 45.1 \times 3.6667 \times {10^{ - 6}} = 1.65 \times {10^{ - 4}}({\text{W}})
S=45.1×N=45.1×3.6667×10?6=1.65×10?4(W)
即接收功率Prx为
P
r
x
=
10
log
?
10
(
S
)
=
?
37.8
dB
{P_{rx}} = 10{\log _{10}}(S) = - 37.8{\text{dB}}
Prx?=10log10?(S)=?37.8dB
根据接收功率与发射功率的关系
P
r
x
=
P
t
x
+
5
+
5
?
2
?
2
?
80
{P_{rx}} = {P_{tx}} + 5 + 5 - 2 - 2 - 80
Prx?=Ptx?+5+5?2?2?80
得发射站最小发射功率为
P
t
x
=
36.2
(
dB)
{P_{tx}} = 36.2({\text{dB)}}
Ptx?=36.2(dB)
问题:描述高阶调制方案的优缺点。
高阶调制的优点:
QAM调制中,信号的振幅和相位作为两个独立的参量同时受到调制,一个符号同时拥有相位和幅度两个维度的信息,因此它与PSK、ASK相比能够获得更高的频谱效率。
QAM调制相对于PSK调制,噪声容限更大。在平均功率相等条件下,16QAM比16PSK信号的噪声容限打4.12dB。
QAM高阶调制速率高、占用频带窄, 适用于频带资源有限的场合。比如电话信道的带宽通常限制在话音频带内,若希望在此频带中提高通过调制解调器传输信号的速率,则高阶QAM是非常适用的
高阶调制的缺点:
由于高阶调制方式会导致星座图中相邻符号间的间距 ,从而使其更容易受干扰的影响,抵抗衰落的能力更差,要达到规定的误码率所需要的信噪比更高。因此高阶调制方式只能在信道条件较好的地方才能被使用,比如卫星信道,信道衰落小、时变性弱,很适合采用高阶QAM调制,目前甚至存在1024QAM等更高阶的调制方式。
[1] Cho, K., and Yoon, D., “On the general BER expression of one- and two-dimensional amplitude modulations”, IEEE Trans. Commun., vol. 50, no. 7, July 2002, pp. 1074-1080.
clear;close all;clc;
M = 64; % QAM调制阶数
Ns = 20000; % 符号数
sym = randi([0 M-1],1,Ns); % 500个符号
%生成64QAM基带信号,格雷码映射,画出星座图
Nb = Ns*log2(M); % 比特数
sbit = randi([0 1],Nb,1);
figure;sbas = qammod(sbit,M,'InputType','bit','PlotConstellation',true);
Fs = 1;
Rb = 20e6;
RB = Rb/log2(M);
EbN0=0:20;
ber_theo = berawgn(EbN0,'qam',M);
Eb=sum(abs(sbas(:)).^2)/Nb; % 比特能量
N0 = Eb./10.^(EbN0/10);
for i=1:length(EbN0)
rng('shuffle');
sigma_n2=N0(i); % 噪声功率
noise = sqrt(sigma_n2/2)* (randn(size(sbas)) + 1i*randn(size(sbas))); % 生成复高斯噪声
sbas_n = sbas+noise;
sdbit = qamdemod(sbas_n,M,'OutputType','bit');
bit_err_rate(i) = sum(sbit~=sdbit)/Nb;
end
figure;semilogy(EbN0,ber_theo,'o-r');hold on;
semilogy(EbN0,bit_err_rate,'s-b');
legend('64QAM理论误码率','64QAM实际误码率');
xlabel('Eb/N0(dB)');ylabel('BER');
EbN0=[0 5 15 25 35];
N0 = Eb./10.^(EbN0/10);
for i=1:length(EbN0)
rng('shuffle');
sigma_n2=N0(i);
noise = sqrt(sigma_n2/2)* (randn(size(sbas)) + 1i*randn(size(sbas))); % 生成复高斯噪声
sbas_n = sbas+noise;
scatterplot(sbas_n);title(['Eb/N0 = ' num2str(EbN0(i)) ' dB']);
end
通信调制体制设计之64QAM性能分析MATLAB仿真及代码相关教程
网络协议之通信协议综述
网络协议之通信协议综述 文章目录 协议三要素 无类型域间选路(CIDR) MAC 地址 网络设备的状态标识 DHCP 协议三要素 协议的三要素 语法 ,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。 语义 ,就是这一段内容要代表某种意
MATLAB与Robotstudio建立socket通信
MATLAB与Robotstudio建立socket通信 MATLAB与Robotstudio建立socket通信 哈哈,本人人生中的第一篇博客,也算是向博客大佬们看齐的第一个步伐啦,话不多说,直奔主题,这篇写的是这两天做的MATLAB与RobotStudio建立socket通讯的一个实例,机器人可以发位置数
Maix Bit(K210) 与上位机串口通信
Maix Bit(K210) 与上位机串口通信 串口通信 1、K210 UART 1.1 、串口通信函数 1.2 、常用函数 3、代码 4、效果展示 准备工具 K210开发板 USB转TTL串口 (俗称ISP烧录器) 串口助手 附图USB转TTL(类似这种就可以): ??实现Maix Bit 与上位机串口通信,在串口助手
网络中进程通信-----socket
网络中进程通信-----socket 一、什么是socket? socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open – 读写write/read – 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些s
进程通信 (命名管道 单向通信)
进程通信 (命名管道 单向通信) client.c:1#includestdio.h2#includestdlib.h3#includestring.h4#includesys/stat.h5#includesys/types.h6#includeunistd.h7#includefcntl.h8#define_PATH_./tmp9#defineSIZE10010intmain()11{12if(mkfifo(_PATH_,0666|S_IFIF
Linux进程间的通信(4)--------信号通信
Linux进程间的通信(4)--------信号通信 现在为大家介绍与之前的管道通信完全不同的通信方式-------信号通信 示意图如下,在用户空间是不可以发送信号量的,只能通过内核来发送 而信号是分很多种的,我们通过命令kill -l可以看到Linux内核中有64中信号 我们
Flutter StreamController 异步通信、Streamr 流异步通信
Flutter StreamController 异步通信、Streamr 流异步通信 题记 —— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精。 Flutter是谷歌推出的最新的移动开发框架。 【x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 【x2】各种系列的视频教程 免费
不同交换机不同VLAN之间的通信实验报告
不同交换机、不同VLAN之间的通信,实验报告 S0: 第一步设置VTP、打开Trunk口: S0(vlan)#vtp domain 123 //建域 Changing VTP domain name from NULL to 123 S0(vlan)#vtp server //配置为服务器模式 Device mode already VTP SERVER. S0(vlan)# S0(config)#