一个简单的QPSK数字通信系统

最近在学习解调模块的时候,发现原来自己对一些概念没有理清楚,如果从接收那里直接开始入手的话会对很多步骤不知道有什么用。比如下面的匹配滤波,之前都搞不清这有什么用,虽然书上说了提高信噪比,但是造成了上面影响确是不清楚的,在下列中写了一个,直接改善了不少误码率。一下子对其理解透彻一些。文章到显得像对匹配滤波的分析了。

文中就是个简单的通信系统,没有设计到模拟调制AM之类的,是对学习的知识做一个梳理,同时也为了随后学习同步知识建立模型,虽然在解调模块中最重要的同步问题也没有提及,都是最理想的情况,但同时给出了一个大致的通信系统步骤,后续学习同步问题的时候可以直接在步骤上添加。

文中表达不充分或是错误之处欢迎各位批评指正。

下文围绕这一个通信系统的流程图进行分析和实现。

图1 数字信号传输模型

1 传输数据和信源编码

首先,我们需要传输的数据为:‘hey,world! !’,一共11个字符,首先进行的信源编码就是将这十个字符编成ASCII码,通过查表我们可以查到对应的ASCII码分别为:‘104’,‘101’, ‘121’,‘44’,‘119’,‘111’,‘114’,‘108’,‘100’,‘33’,33’;然后我们将这11个ASCII码转换为7位二进制码表示。具体如下表所示:

序号

字符

ASCII1码

7位二进制码

1

h

104

1101000

2

e

101

1100101

3

y

121

1111001

4

,

44

0101100

5

w

119

1110111

6

o

111

1101111

7

r

114

1110010

8

l

108

1101100

9

d

100

1100100

10

!

33

0100001

11

!

33

0100001

例如‘104’表示为:[1,1,0,1,0,0,0]。那么这里11个ASCII码就可以转换成77个二进制码,再在结尾处补个0,将二进制bit数补成78个。

2 信道编码

这里的编码采样的是之前所写的(7,3)循环码,详细可参照我的这篇文章:

循环码的编码及循环码的matlab实现 - 知乎 (zhihu.com)

输入3 个bit码元输出7个码元,那么现在我们就将经过信源编码后的72个二进制码元编成了168个二进制码元。

3 符号映射

这里采用的是QPSK调制,所以将2bit数据映射到1个符号上进行传输,那么182个二进制数据可以映射成86个QPSK符号。这里的映射规则是,将00,01,11,10映射为:1+1i,1-1i,-1-1i,1-1i。如下图所示:

图2 符号映射关系

映射后得到的星座图如下图所示:

图3 符号映射的星座图

4 上采样和成型滤波

为什么要将信号进行成型滤波可以参考我的这篇文章:

数字调制的一些概念——码元,符号率,码元持续时间和码间干扰和成型滤波器 - 知乎 (zhihu.com)

经过这步骤后我们可以得到下图:

图4 上采样和成型滤波后的时域波形

图5 上采样和成型滤波后的频域波形

上述的成型滤波后的能量有所增加,但是频域波形的带内的波形是一样的。也可以看出经过成型滤波后,信号的带外得到了很好的压制。经过上采样和成型滤波器后的星座图如下所示(进行抽样点画图):

图6 上采样后的星座图

图7 成型滤波后的星座图

来看看成型滤波后需要发送的眼图:

图8 基带信号的眼图

眼图通常用来做通信系统的性能分析,关于眼图怎么看可以去查看相关文章。但是怎么画这个可提一下,如下图的生成可参照下列示意图:

图9 眼图的示意图

5 数字上变频和数模转换

现在我没需要将我们得基带信号调制到高频载波上面,比如调制到200KHz上的载波上,首先我们需要将我们得基带信号的采样率变换到1MHz上,然后混频到200K Hz上,采样率变换可以查看我的这两篇文章:

数字上下变频——DUC,DDC - 知乎 (zhihu.com)

采样率变换 - 知乎 (zhihu.com)

下列是数字上变频后的时域波形和频域波形:

图10 数字上变频后的信号时域波形和频域波形

这里的数模转换没做处理,但其也相当与采样率变换。

6 无线环境

这里,给系统添加特定信噪比的高斯白噪声:

图11 上图分别是添加信噪比为10dB和-10dB后的信号

从上图可以看出不同信噪比时的高斯白噪声对信号的影响不同,信噪比越高信号越好。

7 数字下变频

我们从200KHz载频上将信号搬到0频后,将采样率从1MHz降到10000Hz的过程可以称为数字下变频,经过数字下变频后的信号如图所示:

图12 数字下变频后的I路和Q路的波形(SNR=10)

再看一个信噪比为-10dB噪声情况下数字下变频的信号基带波形:

图13 数字下变频后的I路和Q路的波形(SNR=-10)

图14 数字下变频后的I路和Q路的眼图(SNR=10)

图15 数字下变频后的I路和Q路的眼图(SNR=-10)

可以看出在不同信噪比下的眼图中的眼睛的变化。

8 匹配滤波

这一部分,我还没有弄得很清楚,我现在的理解时,在成型滤波的时候用了滚降系数为0.35的根生余弦滤波器进行滤波,那么在接收的时候用相同的滤波器器进行滤波,由于滤波器是相同的,那么滤波器对于信号的影响就很低,而对于带外的噪声的压制就很高,所以可以提高接收信号的信噪比。下列是信噪比为-10dB高斯白噪声后匹配滤波器所起的效果(幅度没调节好,看波形形状就可),可以看出信号带外得到很好的压制。

图16 匹配滤波器效果

图17 匹配滤波后的I路和Q路的眼图(SNR=-10)

这里就不放10dB的了,这个-10dB都调节这么好了(和上图16做对比),10dB的估计差别不大。

9 抽样判决

下列为信噪比为-10dB的信号。

将经过匹配滤波后的基带信号经过抽样判决后,就可以得到我们的二进制符号了,抽样后得到的星座图如下所示:

图18 经过抽样后的星座图

从上图可以明显看出,经过匹配滤波后的抽样星座图更加的聚合,可以更好的判决。

经过判决后的二进制数据如下所示:

图19 经过判决后的二进制数据

从上图上看我们没有经过匹配滤波的信号有2个码元的误码,但是经过匹配滤波后的信号没有误码,这还是有点用的。

10 信道解码

这里所选用的循环冗余校验码只能检错不能纠错,所以信道解码过程我们只需要先将信息位拿出来便可,更复杂的检错纠错先不做分析。

11 信源解码

将信道解码得到的数据根据7位转换成10进制数然后转义成ASCII字符。得到下列:

图20 信噪比-10dB解码后的信息

图21 信噪比-20dB解码后的信息

可以看出不同信噪比下解码的错误情况不同。

12 补充

是不是感觉还差一根信噪比误码率曲线,为了让文章更加完整一些,下列给出:

图22 信噪比误码率曲线 图1 数字信号传输模型


  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值