赞
踩
在simulink中使用自带的QPSK发送接收模型进行仿真,更好地去理解整个QPSK通信系统的简单模型。
作者的matlab版本是2024a,大家可以看下搜出来的说明是否是simulink的模型。
打开之后是这样的:
双击Transmitter,可以查看子模块设计。
由图可知,首先有一个bit产生模块用来产生数据源。产生的数据经过QPSK调制,之后进入根余弦滤波器进行脉冲成形,再进入信道。
然后点击Bits Generation 模块:
每个数据帧包含26位报头(用于同步目的)和1120位数据位包含“Hello world ###”消息。扰频器是用来改善数据的过渡密度和频偏估计。
1.巴克码模块:用来生成一帧的帧头(用来检测一帧的开始),这里是13位巴克码。
2.有效消息生成:这里生成的是“Hello world ###”消息,其中###是帧的序列,比如001 002 003等
3.叠加模块:将13位巴克码叠加生成26位的帧头。
4.扰频器:是用来改善数据的过渡密度和频偏估计。
最后将3和4输出的数据组合成一帧信号。
从数据结构可以看出,一条数据是长度是16个ASCII码。一个是7bit,一条消息就是112bits,一次发了20个,所以输出是2240bits。
看输入1,首先经过一个频率/相位偏移模块,接着经过一个可变延迟模块,可变延迟由下面的Delay Generator模块生成。
经过可变延迟之后,经过一个AWGN通道。
信道传输过来的信号,首先经过一个ADC(Auto Gain Controller)增益控制器,接着通过一个接收端的匹配滤波器,然后是粗频率校正模块,符号同步模块,载波同步模块,帧同步模块。
粗频率校正模块,符号同步模块,载波同步模块这几个模块上一篇帖子解释了作用,这里就不再多说。
说一下帧同步模块。
作用:将得到的结果进行数据帧的对齐,转化为固定大小的帧,并且给出一个valid信号,让下游模块判断此帧是否有效。
最后同步帧进入到数据解码模块(BER Data Decoing)。
仿真结果:
接着我们来看仿真结果:
上面的3个星座图由左到右分别是:
1.经过接收端的匹配滤波器(升余弦滤波器)的星座图
2.经过符号同步之后的星座图
3.经过载波同步之后的星座图
可以看到经过同步之后,星座图上的点已经很好地分布在理想点(参考点)附近了。
然后我们在诊断日志中,可以看到接收到地信息。
从这里打开:
打印的信息:
可以看到,一开始打印的是乱码,因为此时接收机还没有完成同步。完成同步之后,就能正确解调出信息了。
更多嵌入式,FPGA的资料可以参考:天津大学四川院FPGA实训 www.sxfpga.cn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。