
第5章·通信—帧同步相位同步位同步
文章平均质量分 89
专栏包括帧同步,相位同步,位同步完整的FPGA开发流程,完整程序,视频解说。使用matlab和FPGA对经典的帧同步,相位同步,位同步进行详细的探讨和讲解。
优惠券已抵扣
余额抵扣
还需支付
¥159.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
fpga和matlab
专业即算法,算法即数学,数学即万物。从事MATLAB算法仿真工作15年,从事FPGA系统开发工作12多年。擅长解决各种算法仿真、建模、通信、图像处理、AI、智能控制等各专业问题。
展开
-
【教程4>第5章>第29节】本章整体思维导图与学习总结
目录1.本章节目录2.本章节思维导图3.本章节内容主要功能5.1 帧同步,相位同步,位同步概述 ~免费试读5.2 基于PN序列的帧同步系统理论概述和FPGA设计构架 ~免费试读5.3 通过MATLAB分析不同长度PN序列的自相关性能 (包含完整程序)~免费试读5.4 通过FPGA实现数据帧插入PN序列组帧 (包含完整程序)5.5 通过FPGA实现组帧数据的QPSK调制 (包含完整程序)5.6 通过FPGA实现组帧数据的QPSK解调 (包含完整程序)5.7 通过FPGA实现基带帧数据与本地PN序列做相关运算得原创 2025-02-11 19:06:06 · 229 阅读 · 0 评论 -
【教程4>第5章>第28节】基于帧同步+相位同步+位同步的QPSK调制解调通信系统整体性能分析
综上所述:1.SNR<10db时,整体性能下降,当SNR=0db时,系统无法正常工作。2.gardner环性能达到2.5e-5时偏可以正常工作,增加之后无法正常工作。3.当相位偏差大于pi/4的时候,对最后的性能会有一定影响。原创 2025-02-11 18:50:53 · 303 阅读 · 0 评论 -
【教程4>第5章>第27节】基于帧同步+相位同步+位同步的QPSK调制解调通信系统FPGA整体实现
其中,上述是红色方框的几个子函数,和前面的课程内容基本一样。其中,find_pkmax.v中,阈值参数修改为50000,如下,其他文件不变。在课程26中,我们通过了MATLAB实现了上述结构的发射端功能。这个部分的几个子函数内和以下几个课程的内容相同。这个部分的几个子函数内和以下几个课程的内容相同。这个部分的几个子函数内和以下几个课程的内容相同。根据上一个课程25的理论可知,下面,我们对接收端的FPGA部分进行实现。原创 2025-02-11 05:17:42 · 225 阅读 · 0 评论 -
【教程4>第5章>第26节】带相位偏差,时偏,噪声干扰的帧数据matlab模拟
后续课程,我们将I,Q两个文件复制到FPGA工程后就可以进行FPGA部分的开发了。相关原理,我们复习下以下三个章节的理论知识。此时,本地会产生保存后的数据文件。原创 2025-02-07 16:03:06 · 192 阅读 · 0 评论 -
【教程4>第5章>第25节】基于帧同步+相位同步+位同步的QPSK调制解调通信系统理论概述和FPGA设计构架
在现代通信系统中,QPSK调制解调技术因其较高的频谱利用率和抗干扰能力被广泛应用。而要实现可靠的QPSK通信,帧同步、相位同步和位同步起着关键作用。根据本章前面几个章节的学习,我们初步对帧同步、相位同步和位同步有了一定程度的了解。下面就三个算法的整合做一个系统性的学习。在完整的QPSK调制解调通信系统中,帧同步、相位同步和位同步相互关联、缺一不可。首先要实现相位同步,为后续处理提供准确的载波相位基准;位同步基于已同步的载波(本系统不考虑载波同步环节),准确确定码元采样时刻;原创 2025-02-07 15:32:23 · 599 阅读 · 1 评论 -
【教程4>第5章>第24节】基于FPGA的Gardner环位同步整体性能分析
当设置5*10-6次方时,当数据量较少的时候,时偏影响有限(左图星座点分布呈现方形,右图同步之后,星座图是标准的圆形),因此gardner环起到了位同步作用。当设置10-6次方时,当数据量较少的时候,时偏影响有限(左图星座点分布呈现方形,右图同步之后,星座图是标准的圆形),因此gardner环起到了位同步作用。当设置10-5次方时,时偏影响较大(左图星座点存在干扰现象,右图同步之后,星座图是标准的圆形),因此gardner环起到了位同步作用。例如,±15ppm的晶振在25MHz下,每周期偏差约0.6ps。原创 2025-02-05 14:10:18 · 185 阅读 · 0 评论 -
【教程4>第5章>第23节】基于FPGA的Gardner环实现——环路滤波器模块和Gardner环整体测试
1]黄凌.基于FPGA的QPSK全数字调制解调系统的设计与实现[D].南京航空航天大学[2025-02-02].DOI:10.7666/d.d166927.注意,这里包括一个NCO模块,一个内插模块,一个时偏误差检测模块,一个环路滤波器模块,在gardner环中,wk的反馈输入,变量为ww,从而构成了闭环。[4]李司.基于FPGA的数字接收机同步技术的研究与实现[D].北京交通大学[2025-02-02].DOI:10.7666/d.y1082455.:调整NCO的相位步长,控制采样时刻。原创 2025-02-02 22:36:27 · 451 阅读 · 0 评论 -
【教程4>第5章>第22节】基于FPGA的Gardner环实现——时偏误差检测模块
Gardner算法中的每个符号需要两个采样点,一个为符号的最佳观察点,一个为两个最佳观察点之间的采样点。注意,这里包括一个NCO模块,一个内插模块,一个时偏误差检测模块,在gardner环中,wk的反馈输入,我们定义为8192,对应实际数据的0.5。如上图所示,MATLAB,我们设置了多个周期,可以看到误差呈现周期性的变化,红色方框对应的就是FPGA里面的误差部分。在上述matlab程序中,误差检测模块,其主要通过:利用相邻符号的采样值差异估计定时误差。:下一个符号的起始采样(索引为。原创 2025-02-02 20:15:32 · 322 阅读 · 0 评论 -
【教程4>第5章>第21节】基于FPGA的Gardner环实现——内插滤波器模块
上述程序中,o_I_base_insert和o_Q_base_insert是gardner环的差值输出,当然,这里还没有构成gardner环的闭环反馈,所以上述仿真结果中o_I_base_insert和o_Q_base_insert不发生波形采样的变化。作为Gardner环的关键模块,负责根据数控振荡器(NCO)提供的相位信息,从过采样的基带信号中恢复出最佳采样点的信号值。注意,这里包括一个NCO模块,一个内插模块,在gardner环中,wk的反馈输入,我们定义为8192,对应实际数据的0.5。原创 2025-02-02 19:58:42 · 181 阅读 · 0 评论 -
【教程4>第5章>第20节】基于FPGA的Gardner环实现——NCO插值控制模块
在上述程序中,数据的位宽为16bit,假设实际数据1,对应FPGA里面的16384,因此就有了14745这个数字,对应实际数据0.9。注意,这里只有一个NCO模块,所以gardner环中,wk的反馈输入,我们定义为8192,对应实际数据的0.5。有两个位置有路径的设置,这个路径需要设置为和我一样的路径,或者修改为你自己的路径。上面0.5,即对应FPGA中的输入8192.此时,运行matlab,得到。这里,uk的输出为13106,对应的uk实际数值为:0.8,我们将。存储权重:uu(j) = uk。原创 2025-02-02 19:41:17 · 67 阅读 · 0 评论 -
【教程4>第5章>第19节】基于Gardner环的位同步系统MATLAB仿真与带时偏基带数据导出
由于在FPGA中,时偏的影响主要是由系统收发两端晶振的不同步带来的,所以在仿真测试阶段,很难直接通过FPGA来模拟这个因素,所以我们采用MATLAB模拟带时偏的基带输入信号,并将其导出,由FPGA调用作为测试信号源。可以看到,同步之后(图3)相对于带时偏的基带信号(图2),其更接近标准的数据(图1),且抖动较小。订阅过的朋友可以复习下这个课程,没有订阅的朋友,也可以直接复制如下的程序进行仿真测试。上述程序中,加入时偏的基带信号,通过子函数。同步之后,可以恢复出标准的QPSK星座图。原创 2025-01-29 21:54:32 · 197 阅读 · 0 评论 -
【教程4>第5章>第18节】基于Gardner环的位同步系统理论概述和FPGA设计构架
在通信系统中,位同步(也称为码元同步)是指在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列,使接收端能够准确地对每一个码元进行采样和判决,从而正确地恢复出原始发送的数据。原理:发送端按照一定的时钟节拍将数据编码成一个个码元进行发送,接收端必须有一个与发送端时钟严格同步的时钟信号,才能准确地确定每个码元的起始和结束位置。若接收端时钟与发送端时钟不同步,会导致接收端对码元的采样时刻出现偏差,可能将一个码元的部分信息误判为其他码元的信息,从而产生误码。实现方式:位同步的实现方法主要有外同步法和自同步法。原创 2025-01-26 19:55:38 · 118 阅读 · 1 评论 -
【教程4>第5章>第17节】基于V&V算法的相位补偿系统整体性能分析
发射端,资源占用如下:相位偏差的设置,在系统的发射端里面:这个参数的设置计算过程如下:假设相位偏差为pi/8,那么对应的cos和sin分别是0.9239,0.3827,然后进行量化,量化之后整数分别是:7568,3135,然后替换上面程序中65和66两行程序就可以了。下面我们对该系统的相位偏差估计性能进行仿真分析。原创 2025-01-21 14:49:50 · 56 阅读 · 1 评论 -
【教程4>第5章>第16节】基于V&V算法的相位补偿系统整体FPGA实现
1]贺军,郭伟.一种新的消除VV算法载波相位模糊的方法[J].电子与信息学报, 2006, 28(5):4.DOI:CNKI:SUN:DZYX.0.2006-05-015.[2]龚超.一种改进型V&V算法[J].现代电子技术, 2008, 31(9):73-75.DOI:10.3969/j.issn.1004-373X.2008.09.025.可以看到,通过相位补偿之后,得到了标准的基带信号。所以,只需要使用一个DDS核,就可以完成相位的补偿。也就是通过VV算法,我们获得了相位估计值,然后通过。原创 2025-01-20 23:27:50 · 197 阅读 · 0 评论 -
【教程4>第5章>第15节】基带数据延迟模块FPGA实现
从仿真结果可以看到,相位估计结果o_Pest和两路基带数据有着一定的延迟,这个延迟长度大概为2048左右。如果直接将基带信号o_Ifilterr和o_Qfilterr与估计得到的相位进行补偿,会出现相位估计值和基带数据错位的问题。因此在进行相位补偿之前,我们首先需要通过延迟处理,将基带信号o_Ifilterr和o_Qfilterr与o_Pest同步。可以看到,延迟后,相位估计值和基带数据同步。在此基础上,我们就可以进行相位补偿了。原创 2025-01-20 23:26:17 · 51 阅读 · 0 评论 -
【教程4>第5章>第14节】数据累加和基于cordic核的相位估计模块FPGA实现
目录1.软件版本2.数据累加和基于cordic核的相位估计理论简介3.数据累加和基于cordic核的相位估计FPGA实现3.1累加部分3.2cordic核设置3.3相位转换输出4.QPSK解调顶层修改和测试vivado2019.2在完成复数乘法之后,由于单个符号在运算之后,存在较大的抖动。因此,我们需要对复数乘法之后的结果做累加,然后再对累积后的结果进行cordic算法相位估计。其原理如下:cordic算法是一种用于计算三角函数、双曲函数、平方根等复杂数学函数的迭代算法。其原创 2025-01-18 23:40:27 · 178 阅读 · 0 评论 -
【教程4>第5章>第13节】复数乘法模块FPGA实现
在verilog中,多次的复数乘法运算,我们采用的是类似树状结构的方式去实现。在上述程序中,我们通过三个always语句,完成了树状结构的4次复数乘法器过程。这里,需要注意的是,在复数乘法过程中,需要对每一个数据加上。因此,在进行相位估计之前,我们首先需要对两路基带数据做四次复数乘法。其中I和Q分别是QPSK解调之后两路基带数据。表示当前乘法运算是有符号乘法过程。原创 2025-01-18 22:47:56 · 48 阅读 · 0 评论 -
【教程4>第5章>第12节】QPSK解调模块FPGA实现
I、Q两路和对应的载波相乘,然后经过低通滤波器后进行抽样判决,相当于作两路的BPSK解调。判决之后的I、Q路码元进行合并,I路为最终码元序列的奇数位置码元,Q路为最终码元序列的偶数位置码元,恢复出原始的码元序列。原创 2025-01-17 21:42:36 · 351 阅读 · 0 评论 -
【教程4>第5章>第11节】QPSK调制与相位偏差模拟FPGA实现
【教1]刘晓明,汪梦柔,吴皓威,等.SOQPSK信号的定时相位联合估计算法[J].计算机工程, 2012, 38(4):103-106.DOI:10.3969/j.issn.1000-3428.2012.21.028.这里,相位偏差的设置范围要在pi/4之内,然后xsin和xcos这两个变量,需要满足。QPSK信号的调制过程,其原理在前面小节已经介绍过,本小节不再赘述。我们根据上述公式,在QPSK基础上,加入模拟的相位偏差。可以看到,我们成功的模拟了带相位偏差的QPSK信号。而s(t)的复数形式可以表示为。原创 2025-01-16 16:41:33 · 313 阅读 · 0 评论 -
【教程4>第5章>第10节】基于VV(Viterbi-Viterbi)算法的相位同步系统理论概述和FPGA设计构架
在接收端,如果本地载波的相位与发送端的载波相位不一致,就会产生相位偏差,这种相位偏差会导致接收信号的星座图发生旋转。当相位偏差不等于0时,原本位于星座图四个正确位置的点会围绕原点旋转角度。这会导致判决错误,降低系统的误码率性能。假设接收信号r(t)的同相和正交分量分别为rI(t)和rQ(t),在存在相位偏差的情况下,因此,相位同步的主要目标是估计并补偿接收信号与本地载波之间的相位偏差,使得接收信号能够正确地进行解调。原创 2025-01-14 05:29:48 · 207 阅读 · 0 评论 -
【教程4>第5章>第9节】基于FPGA的帧同步系统整体性能测试和评估
而且,FPGA 的可重构特性使得系统能够适应不同的无线通信标准,如通过软件更新或重新配置 FPGA,可以使终端支持新的频段、调制方式等,同时保持帧同步功能的准确性。例如,基于固定阈值的帧头检测算法,在噪声较大或者信号质量较差的环境下,可能会将噪声峰值误判为帧头,或者无法正确检测到帧头。这在通信系统中会导致数据的错误接收和处理,在视频系统中会引起视频画面的异常显示,如画面闪烁、花屏等问题。采用长度为63bit的PN序列,其在SNR大于0时,可以获得较为明显的相关峰,而当SNR原创 2025-01-14 04:28:04 · 70 阅读 · 0 评论 -
【教程4>第5章>第8节】帧同步后提取帧结构中的数据部分
一般情况下,我们可以通过定义一个计数器来实现上述功能,当峰值最大值被定位之后,计数器开始启动,当计数器技术完PN序列长度之后,后续的计数器值,即数据帧对应的位置索引值。因为PN序列位于帧头,当本地PN序列在基带帧数据上滑动到峰值最大值所在的这个位置时,与帧头中的PN序列匹配得最好。此时表明,帧同步模块完成了帧头的搜索。一旦确定了帧起始位置,如果已知帧结构中数据部分紧跟在PN 序列(帧头)之后,且知道数据部分的长度N,那么数据部分在基带帧数据序列中的位置范围就是从到“原创 2025-01-10 23:21:26 · 411 阅读 · 0 评论 -
【教程4>第5章>第7节】通过FPGA实现基带帧数据与本地PN序列做相关运算得到相关峰
基带数据和本地的PN序列做相关运算,也称之为伪码匹配滤波。可以理解为本地的PN序列为滤波器的系数,然后对输入的基带数据做滤波。通过伪码匹配滤波,我们可以利用本地 PN 序列和基带帧数据进行相关运算。原创 2025-01-10 21:49:30 · 570 阅读 · 2 评论 -
【教程4>第5章>第6节】通过FPGA实现组帧数据的QPSK解调
QPSK(Quadrature Phase Shift Keying,四相相移键控)的解调原理是将接收到的已调制信号恢复为原始的二进制数据序列。QPSK信号在传输过程中携带了相位信息,这些相位信息与二进制数据序列中的双比特码元相对应。QPSK的解调原理如下图所示:从上图可知,解调过程主要包括以下几个关键步骤:I、Q两路和对应的载波相乘,然后经过低通滤波器后进行抽样判决,相当于作两路的BPSK解调。原创 2025-01-10 21:18:51 · 222 阅读 · 0 评论 -
【教程4>第5章>第5节】通过FPGA实现组帧数据的QPSK调制
正交相移键控(Quadrature Phase Shift Keying,QPSK)也称为四进制相移键控,是多相相移键控(MPSK)中常用的一种,它是利用载波四个不同的相位来表征数字信息的调制方式。和BPSK类似,原理如下图所示,具体的一些细节步骤,如果订阅过第二章的朋友,可以复习回顾(具体细节本章和第二章有所不同,程序内容以本章的结果为准)。如果没有订阅过,那么直接复制如下的程序和步骤,来完成QPSK调制过程。注意,这里QPSK两路信号,可以按相加输出,也可以相减,其原理是相似的。原创 2025-01-02 23:39:59 · 94 阅读 · 0 评论 -
【教程4>第5章>第4节】通过FPGA实现数据帧插入PN序列组帧
首先,我们要对输入的数据进行组帧,每一帧数据的结构如下图所示:其中,63bit的PN序列可以作为一种帧的识别码。不同的通信系统可以采用不同的 PN 序列作为帧头,通过识别这个 PN 序列,接收端可以判断出数据是否来自正确的发送源或者是否属于正确的通信流程。1024bit 的数据部分是用于承载实际要传输的信息的。在发送端,首先生成 63bit 的 PN 序列作为帧头,然后将 1024bit 的数据部分紧跟在帧头后面,从而组成一帧完整的数据。原创 2025-01-02 23:39:23 · 92 阅读 · 0 评论 -
【教程4>第5章>第3节】通过MATLAB分析不同长度PN序列的自相关性能
PN序列即伪随机序列,是一种由近似随机但实际有一定规律的周期性二进制序列组成的常用地址码。其具有类似于随机序列的基本特性,貌似随机但实际上是可通过特定的规则或算法生成和复现。PN 序列具有近似于白噪声的自相关特性,即除了在零时延处自相关函数有一个尖锐的峰值外,在其他时延处的自相关值都接近于零。同时,PN 序列是周期序列,这是它与真正随机序列的重要区别之一。原创 2025-01-02 23:38:34 · 148 阅读 · 0 评论 -
【教程4>第5章>第2节】基于PN序列的帧同步系统理论概述和FPGA设计构架
在本课程中,我们以QPSK信号为例进行学习。在QPSK发射端,对基带数据加入PN序列,和数据组成帧结构,然后通过成型滤波得到QPSK映射数据。接收端则对QPSK信号进行解调,然后对恢复的基带数据做PN伪码匹配滤波得到相关峰,最后对相关峰进行峰值检测,从而完成帧同步。本小节,我们就帧同步的具体原理和FPGA设计构架做一个整体学习。原创 2025-01-02 23:38:03 · 170 阅读 · 4 评论 -
【教程4>第5章>第1节】帧同步,相位同步,位同步概述
在通信中,除了载波同步,常用的同步技术还包括等。在数字通信系统中,用于确定数据帧的起始和结束位置,接收端只有正确识别出帧的边界,才能将接收到的比特流正确地划分成一个个完整的帧,进而提取出其中包含的信息。对于采用相干解调的通信系统,是至关重要的。在相移键控(PSK)和正交幅度调制(QAM)等调制方式中,接收端需要本地产生的载波与接收到的信号载波同频同相,才能正确地解调信号。如果相位不同步,会导致解调后的数据出现错误,严重影响信息的正确接收。原创 2025-01-02 23:35:20 · 717 阅读 · 0 评论