最近在学习解调模块的时候,发现原来自己对一些概念没有理清楚,如果从接收那里直接开始入手的话会对很多步骤不知道有什么用。比如下面的匹配滤波,之前都搞不清这有什么用,虽然书上说了提高信噪比,但是造成了上面影响确是不清楚的,在下列中写了一个,直接改善了不少误码率。一下子对其理解透彻一些。文章到显得像对匹配滤波的分析了。
文中就是个简单的通信系统,没有设计到模拟调制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)
下列是数字上变频后的时域波形和频域波形:
图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 数字信号传输模型