基于FPGA的DPSK编码解码系统设计与实现
扫描二维码
随时随地手机看文章
0引言
当前社会,随着科技的飞速发展,通信系统逐渐向高效化、智能化过渡,通信技术的应用也 日趋广泛。
通信系统可以分为模拟通信系统和数字通信系统,模拟通信系统传输连续变化的信号,而数字通信系统传输离散的数字信号。
数字信号抗干扰能力强、传输效率高且易于处理,因此其应用的通信技术也在向数字系统靠拢。
差分相移键控(DPSK)是一种常见的数字调制技术,其通过改变相位来传输数字信号。
DPSK技术在光通信、卫星通信和无线通信等领域有着重要的应用。
1整体设计方案
由于系统基于FPGA平台设计,因此采用自顶向下的设计架构,通过对整体系统功能的需求分析确定输入、输出,并在总体功能的基础上划分子模块,分别完成设计。
DPSK,中文叫差分相移键控,与最简单的BPSK 调相系统很像,只不过DPSK把数字信号源做了一个差分处理,用载波的相位变化来承载信号信息[1]。
1.1 DPSK的信号生成及恢复
1.1.1DPSK的信号生成
以二进制相移键控为例,其信号的产生类似于一个双极性脉冲序列和载波的混合。
式中 :edpsk(t)为调制后的DPSK信号 ;S (t)为原始信号 ;cos(wct)为 正 弦 波 调 制 信 号 ,cos(wct)=sin(wct)/wc,其中wc为角频率,t为时间;P为概率,0<P<1。
DPSK信号生成示意图如图1所示,原始信号S(t)通过码元变换,从绝对码变换为相对码。变换后对码元进行载波调制,通过延时、相乘的方法得到DPSK 信号。这样就完成了简单的DPSK信号调制。
1.1.2DPSK的信号恢复
DPSK的调制和解调可以看成是单独的两部分,但是在本设计中,为了验证通信算法的正确性,DPSK 信号的解调是基于调制,当恢复出来的信号与原始信号一致时,即表示解调算法是正确的。DPSK信号的解调可以采用相干解调的方法,经过乘法器、提取载波后,再由相对码变换为绝对码,最后通过低通滤波进行码元判决[2]。
解调过程示意图如图2所示,调制后的DPSK信号处理后得到信号a,通过不同相位的载波提取相应的信号c,再通过低通滤波得到信号d,根据阈值大小恢复原始信号e。
1.2 DPSK的信号变化过程
了解了DPSK的调制解调过程后,基本可以得出这个过程的信号变化情况。整体信号变化过程如图3所示。
基于图3的信号变化情况,在不考虑噪声和其他影响的情况下[3],首先将原始信号做差分运算,将绝对码转换为相对码,然后进行载波调制,并对当前调制信号进行演示处理,再两两相乘,经过低通滤波后,得到不规则的数字信号,最后对这些数字信号进行电平判决,恢复原始信号。这样就完成了整个调制解调过程。
1.3整体方案设计
根据系统功能需求,设计中首先需要生成原始信号,作为输出1;再将原始信号经过编码后生成DPSK信号,作为输出2;然后处理输出2,完成解码工作,将恢复出来的信号作为输出3。目的是看到调制结果—输出1、输出2、输出3并进行对比,验证设计的正确性。
基于上述设计思路,可以在FPGA中对上述流程完成设计,其实现框图如图4所示。
在图4中,从“原始信号”到“DPSK调制信号”再到“恢复信号”,信号变化过程以图3为标准,在调制、解调时都需要进行码元变化,下面分别对调制和解调的实现进行阐述。
1.3.1调制部分
DPSK的调制:FPGA信号模型中输入时钟clk和复位rst为系统提供主要时序,计数器用于对外部clk 时钟信号进行分频计数[4],产生相应时钟信号,与此同时,FPGA内部需要生成两路不同相位的正弦波信号,即相位0和相位π。在开始信号START触发后,DPSK通过计数和二选一开关电路选择两路载波信号,完成相位的调制,从而生成DPSK调制信号[5]。
其生成相对码的过程如图5所示。图中,原始信号即绝对码,需要通过异或的方式变换成相对码。将当前得到的码元存储在寄存器中,其初始值为0,与原始信号进行异或后得到新的相对码,并存储在寄存器中。
1.3.2解调部分
DPSK的解调:FPGA信号模型中输入时钟clk和复位rst为系统提供主要时序来源,将DPSK信号作为信号源,参与解调部分,将DPSK信号通过滤波后与计数器输出的0相载波和π相载波进行对比、判决,从而实现DPSK信号解调,生成原始码元。
解调部分的信号流如图6所示。DPSK调制信号需要在延迟一个处理周期后,与未处理的调制信号两两相乘,然后通过低通滤波器过滤掉高频信号,再通过阈值比较的方法判决出原始信号。值得注意的是,解调时的码元转换也是采用异或的方式将相对码转换成绝对码。
2DPSK调制解调的FPGA实现
根据整体方案, 自顶向下划分子模块。从编码、解码过程将整体划分为载波生成模块、时钟生成模块、信号源生成模块、差分处理模块、数据选择模块、 延时与相乘模块、低通滤波器模块等子模块。
2.1载波生成模块
载波生成即正弦载波信号的生成,通常使用DDS(DirectDigitalSynthesizer,直接数字合成技术)或者NCO(NumericallyControlledOscillator,数字控制震荡器)完成正弦信号的输出。在课题设计中使用NCO实现正弦信号输出,通过控制其时钟、相位等参数完成符合设计要求的载波输出。
参数设计部分,由于FPGA硬件板卡的主时钟为50MHz,这里将NCO的驱动时钟设计为clk10m=10MHz,载波输出频率为fsin—o=100kHz,需要输出2个不同相位的载波,其相位分别为0、π。数据位宽精度为14bit。2.2 时钟生成模块
时钟模块作为一般FPGA项 目中必不可少的模块,贯穿于整个FPGA设计,涉及各个模块的信号交互,大部分数字信号都需要时钟来控制,时钟是时序电路设计中的触发点。
参数设计要求:根据整体设计方案,需要生成NCO的控制时钟10 MHz和数据控制时钟100 kHz,整体控制时钟采用外部输入时钟50 MHz,通过PLL进行时钟锁相,从而达到稳频的效果。
2.3信号源生成模块
对于信号源的生成,可以使用固定信号或者随机信号,而固定的信号源对于整体设计的正确性验证存在一定的局限性,因此使用随机信号作为信号源。又由于码元定时信号不准确,信号源采用闭环码元伪随机序列PN码。PN码,也叫m序列,用来生成数字信号源。此模块的参数设计要求如下:
数字信号源的控制速率:clk=100 kbits/s;
PN码为5阶本原多项式:f(x)=x5+x2+1;
PN码的寄存器初始值:reg—state=[1 0 1 1 0]。
5阶PN码的原理如图7所示,用图7的移位寄存器方式便能源源不断地生成周期为25的PN码。
将此模块输出的PN码作为原始信号,传递到其他模块完成DPsK的信号调制。
2.4差分处理模块
差分处理模块的主要作用就是把原始信号的绝对码变换为相对码,相对码又叫差分码。这里的差分不是指把信号源取反的差分,而是指把信号源看作绝对码,给定一个初始值然后输出相对码的过程。由于取了信号源的差分,所以在调制时相当于用载波相位的变化来承载信号,相干解调时只需把载波做个延时,然后与未延时的载波相乘,就可以得到解调信号。所以,这个模块输出信号源的相对码即可。
2.5数据选择模块
数据选择模块类似一个模拟的数字开关,即当数据源为1时,输出相位为0的正弦载波;当数据源为0时,输出相位为π的正弦载波。在原理上等同于信号的相位调制部分。不考虑其他复杂的处理的话,输出的信号就能够发射并经过信道,然后被接收处理。
代码部分相对简单,可以简化表示为:
always@(p0sedgeclK)
if(difpn==1)
sine—m0d1<=sine1;
else
sine—m0d1<=sine2;
2.6延时与相乘模块
延时与相乘模块的设计采用的是先将差分码延时,再利用相位选择法调制的方式。其中延时部分可以根据PN码的生成时钟来设计,因为PN码的每一个码都是在时钟上升沿产生的,所以,在100 KHz的分频时钟下降沿到达时将信号存储起来,置于寄存器中,在下一个分频时钟信号上升沿到达时输出存储的信号,便得到了延时一个码元长度的PN码。经过数据选择器后,相应的输出波形也延时相同长度。
2.7低通滤波器模块
在进行最终的信号判决恢复之前,由于信号中夹杂着部分噪声、干扰,因此还需对解调信号进行低通滤波。从图3可以看出,经过相乘模块之后的信号从“上下上下”这种正弦型振荡变成了“上上下下”这种类似全波整流的振荡信号,但这还不足以让系统恢复原始的PN码信号源,于是使用低通滤波器滤去高频,使得信号更平滑,正区和负区分得更为明显一些。
进入Quartus Ⅱ的EditC0efficientset界面,选择低通滤波器类型, 目的是滤去解调输出的高频信号,恢复基带信号;在滤波器采样频率方面,由于在正弦载波生成模块使用的输入时钟信号为10 MHz,于是对数据进行采样输入滤波器中时,也设置相同的频率10 MHz;选择矩形窗口类型。在滤波器截止频率设置时,考虑基带PN码生成时钟频率为100 KHz,所以滤波器截止频率设置为50 KHz。此时,滤波后能正确地恢复原始信号。
3系统仿真及运行验证
在完成RTL级的FPGA设计后,添加仿真激励,进行Quartus—M0delsim的联合时序仿真,验证代码在理论上的正确性。接下来下载到FPGA硬件板卡中,验证运行结果是否符合设计要求,并通过长时间的运行结果来证明系统的稳定性。
3.1 Quartu5—ModeIsim联合仿真
编写整体工程仿真的激励文件,使用QuartusⅡ和M0delsim联合仿真。激励文件中首先定义该模块的时间单位和时间精度—、timescale1ps/1ps。然后设置系统时钟clK为50 MHz。
其仿真波形如图8所示。
图8中,pn是生成的随机原始信号,sine1为相位0 的正弦载波信号,sine2为相位π的正弦载波信号,sine—mod是调制后的DPSK信号,sine—recover是判决恢复后的信号。
对比pn和sine—recover这两个信号,可以发现信号一致,只是存在一定的延迟。处理信号100 KHz的时钟信号为clK100K,从波形上可以看出,恢复的信号与原始信号刚好延时1个100 KHz的周期,说明解调过程完全符合设计要求。
3.2 FPGA验证程序下载及运行
在功能仿真、时序仿真完成后,根据硬件分配输入、输出管脚。连接硬件FPGA开发板和PC机。在Quartus的signaltab(逻辑分析仪)中加入相关观测信号。下载工程生成的soF文件,运行程序,观测相关信号。运行波形图如图9所示,图9中信号说明与图8一致。
观测信号pn、sine—mod、sine—recover,其波形与仿真结果图8基本一致,恢复出来的信号sine—recover与原始随机信号pn一致,只是存在一定的延迟。经过长时间(24 h)运行后,系统采样依旧正确,因此系统有着很好的稳定性。
4结束语
FPGA作为一种高灵敏度的可编程逻辑器件,近些年来在各个领域得到了广泛应用。此设计采用FPGA作为设计平台,在DPSK原理的基础上,充分利用了FPGA的并行处理能力和可重构特性。
DPSK调制通过差分编码将绝对相位信息转换为相对相位变化,避免了载波同步问题。在FPGA中,可以通过查找表(LUT)实现相位映射,并结合数字振荡器(NCO)生成调制信号。DPSK解调通常采用差分相干解调或延迟解调方法。FPGA中可以通过延迟线和乘法器实现相位差分的计算,并结合低通滤波器和判决电路恢复原始数据。
[参考文献]
[1] 郝晓冉,张有志.基于FPGA的2DPSK/QDPSK数字调制系统的设计方案[J].电子科技,2005(7):50-52.
[2] 张平平.DPSK解调系统的FPGA实现[D].西安:西安电子科技大学,2015.
[3] 陈卫标,岳朝磊,孙建锋,等.基于90度光学桥接器多速率兼 容 非 标 准 DPSK 接收装置:CN201910034447.3 [P].2025-02-23.
[4] 王丽娟,程明,周学礼.2DPSK解调的两种模型及System view仿真[J].河南科学,2005,23(1):100-102
[5]袁泉,王振永.基于FPGA的2DPSK解调技术全数字实现[J].黑龙江大学自然科学学报,2016,33(2):267-271.
《机电信息》2025年第12期第12篇





