首页 » 智能 » 通信QPSK调制为什么要对数据串并转换?_暗记_旗子

通信QPSK调制为什么要对数据串并转换?_暗记_旗子

落叶飘零 2024-12-30 16:23:36 0

扫一扫用手机浏览

文章目录 [+]

通信中的很多调制都有一个把串行数据转换为并行数据的过程,QPSK便是一个范例的例子。

实在不只QPSK,其他的调制方法都是这个模式。

通信QPSK调制为什么要对数据串并转换?_暗记_旗子 通信QPSK调制为什么要对数据串并转换?_暗记_旗子 智能

很多小伙伴最近都在问关于QPSK的问题,很多人在串并转换地方就犯糊涂了。
我之前也写过QPSK的文章:

通信QPSK调制为什么要对数据串并转换?_暗记_旗子 通信QPSK调制为什么要对数据串并转换?_暗记_旗子 智能
(图片来自网络侵删)

数字调制技能:如何优雅的学习QPSK,IQ调制与星座图?

本文将从实际Matlab仿真角度,直不雅观的阐述这个问题。

先从发送信息开始

无论如何,我们先假定我们须要发送一组信息。

为了方便,我们跳过传感器采集-采样-编码等环节,直接定义一组数据:

10位二进制数,10个比特。

0-1-0-1-1-1-0-0-1-1

data=[0 1 0 1 1 1 0 0 1 1];%准备发送的信息

通过Matlab的stem绘图函数,可以画出原始信息。
定义图形标题为“准备发送的信息”,设置坐标轴范围,横坐标0~11,纵坐标0~1.5。

figure(1)stem(data, 'linewidth',3), grid on;% 画出杆状图,线宽度设置为3号title(' 准备发送的信息 ');% 定义图形标题axis([ 0 11 0 1.5]);% 设置坐标轴范围

得出原始数据杆状图1:

图1 拟发送的数据,10个比特;来源:班长低廉甜头

再对数据大略处理

将原始信息,改成NRZ(Nonreturn - To - Zero)非归零双极性编码,便是我们最常见的编码。

根据旗子暗记是否归零,还可以划分为归零码和非归零码,归零码码元中间的旗子暗记回归到0电平,例如"1"为正电平,"0"为负电平,每个数据表示完毕后,都会回归到零电平状态,而非归零码没有回归到零电平的过程,例如"1"为高电平,"0"为低电平。

而双极性,便是用正负电平的脉冲分别表示二进制代码1和0。

图2 多种常见的编码形式;来源:网络

data_NZR=2data-1; % 将数据改成NRZ编码格式

data数据改成NRZ形成编码,在Matlab中也是大略的一句命令即可,详细波形如图3中“串”波形。

图3 QPSK的调制事理;来源:班长低廉甜头

数据流串→并转换?

很多程序中,会用reshape函数一句话,实施了数据比特的串并转换。

s_p_data=reshape(data_NZR,2,length(data)/2); % 数据串并转换

关于"A = reshape(A,m,n)"函数的浸染,便是将A的行列排列成m行n列。
它对我们输入data_NZR的浸染就如图4所示。

图4 数据的串并转换;来源:班长低廉甜头

便是把一串数据,按照m行n列重新排列。

我们为什么要把一串数据,如图4中“串”形数列转换为并行呢?

还得先从MPSK的事理提及

这里的M代表多进制,M=2,4,8...,常日取2的正整数幂。

也便是常说的2PSK,4PSK/QPSK,8PSK......

一个三角函数sk(t),我们常日用三个参数就可以唯一确定,分别为振幅A,频率f/ω,初始相位θk。

我们这里谈论的是相位调制,以是振幅A和频率f/ω不会变革。

图5 QPSK旗子暗记剖析;来源:班长低廉甜头

θk的变革,如图5所示。

如果定义θk即是π或者0两种情形,那么sk(t)就有两种唯一的波形,分别为

A cos( ωt + 0 )A cos( ωt + π )

这两种波形,恰好对应二进制的0和1,这便是2PSK/BPSK调制。

那么4PSK/QPSK调制呢?

以此类推,按照θk的公式,我们可以取0,π/2,π,3π/2四种初相位,对应4种sk(t)波形

A cos( ωt + 0 )A cos( ωt + π/2 )A cos( ωt + π )A cos( ωt + 3π/2 )

这四种波形,可以表示四种二进制组合01,00,10,11,这便是4PSK/QPSK调制。

同样是sk(t)波形,在QPSK中可以同时传输两个bit,以是理论上4/QPSK调制的数据传输速率是2PSK的两倍。

如何产生QPSK旗子暗记?

天生QPSK旗子暗记,便是上文的sk(t)旗子暗记。

sk(t)是一个三角函数,根据三角展开式,我们可以进行如下展开:

sk(t)波形被展开成两个正弦波的叠加,且初始相位均为0,二者相位差π/2(cos与sin相位差π/2)。

载波旗子暗记coswt很随意马虎得到,sinwt旗子暗记在cosωt的根本上做一个π/2移相,也可以得到。

那么根据图3所示,当数据流串并转换之后,分成2路,一起为ak,一起为bk;

分别与cos和sin相乘之后,再进行叠加,输出QPSK旗子暗记。

我们用图3中的串行数据-1 +1 -1 +1 +1 +1 -1 -1 +1 +1作为输入。

ak = -1 或者 +1bk = -1 或者 +1

当ak=-1,bk=+1,输入为(0,1)时,

sk(t)=-1cosωt+(+1)sinωt=√2 cos(ωt + 5π/4 ),θ3 = 5π/4;

当ak=+1,bk=+1,输入为(1,1)时,

sk(t)=+1cosωt+(+1)sinωt=√2 cos(ωt + 3π/4 ),θ4 = 7π/4;

当ak=-1,bk=-1,输入为(0,0)时,

sk(t)=-1cosωt+(-1)sinωt=√2 cos(ωt + 7π/4 ),θ2 = 3π/4;

当ak=+1,bk=-1,输入为(1,0)时,

sk(t)=+1cosωt+(-1)sinωt=√2 cos(ωt + π/4 ),θ1 = π/4;

嘿嘿,这也是四个相位,那么这也是QPSK。

图6 QPSK的四种相位旗子暗记;来源:班长低廉甜头

自此,我们创造之以是要串行转换为并行,便是为了方便调制cos和sin载波,然后叠加,形成QPSK旗子暗记。

那么,我们可以生产QPSK旗子暗记如下图7所示。
同相信号Inphase和正交Quadrature旗子暗记叠加,形成终极QPSK旗子暗记。

图7 QPSK旗子暗记仿真图;来源:班长低廉甜头

for(i=1:length(data)/2) y1=s_p_data(1,i)cos(2pifpt); % 同相分量 y2=s_p_data(2,i)sin(2pifpt) ;% 正交分量 y_in=[y_in y1]; % 同相信号向量 y_qd=[y_qd y2]; % 正交旗子暗记向量 y=[y y1+y2]; % 调制旗子暗记end总结

文中的仿真实在还是有改进之处的,班长在此抛出3个思考,大家可以思考下,会加深对QPSK的理解。

QPSK可是4G、5G中的主要调制技能,尤其在旗子暗记覆盖较差的时候,一点也不过时啊。

思考1:为什么一样平常的程序中要用NRZ编码这种形式,用其他的编码形式可以吗?

思考2:图7中末了赤色的QPSK旗子暗记,在"0.4"位置处,涌现了不连续,或者说是突变?这对旗子暗记传输有影响吗?能否改进?

思考3:图6中的对应办法,即

θ1→(1,0)θ2→(0,0)θ3→(0,1)θ4→(1,1)

为什么要这么排列,可以打乱顺序么?格雷码是什么?

看到这里,帮文章点个赞吧!

欢迎您在评论区留言谈论!

标签:

相关文章