CN105915483B - 基于fpga的非递归cpm调制器及解调器 - Google Patents
基于fpga的非递归cpm调制器及解调器 Download PDFInfo
- Publication number
- CN105915483B CN105915483B CN201610394874.9A CN201610394874A CN105915483B CN 105915483 B CN105915483 B CN 105915483B CN 201610394874 A CN201610394874 A CN 201610394874A CN 105915483 B CN105915483 B CN 105915483B
- Authority
- CN
- China
- Prior art keywords
- module
- onrecurrent
- cpm
- road
- moment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/18—Phase-modulated carrier systems, i.e. using phase-shift keying
- H04L27/20—Modulator circuits; Transmitter circuits
- H04L27/2003—Modulator circuits; Transmitter circuits for continuous phase modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/18—Phase-modulated carrier systems, i.e. using phase-shift keying
- H04L27/22—Demodulator circuits; Receiver circuits
- H04L27/233—Demodulator circuits; Receiver circuits using non-coherent demodulation
- H04L27/2332—Demodulator circuits; Receiver circuits using non-coherent demodulation using a non-coherent carrier
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
Abstract
本发明公开了一种基于FPGA的非递归CPM调制器及解调器的实现方法,主要解决已有技术时延较大、硬件资源消耗较多、复杂度较大的问题。其技术方案是:在基于FPGA的非递归CPM调制器的实现中,通过非递归转换模块,将递归CPM转换为非递归CPM,并生成两路查找表,通过查找表存***形采样值实现非递归CPM的调制;在基于FPGA的非递归CPM解调器的实现中,将信道接收的复基带信号直接送入复共轭乘积模块进行运算,并基于非相干软输入软输出算法,通过不同的计算模块实现非递归CPM的解调,本发明的实现复杂度低,并减少了解调时延、节省了硬件资源,可用于移动通信、卫星通信及深空通信。
Description
技术领域
本发明属于电路技术领域,更进一步涉及一种非递归连续相位调制CPM***的调制器及解调器,可用于移动通信、卫星通信及深空通信。
背景技术
在无线通信领域,连续相位调制CPM是一类具有高功率效率和高频谱效率的编码调制技术,其包络恒定、载波相位连续。包络恒定使CPM对放大器的非线性不敏感,所以CPM可以在采用非线性放大器的信道中使用。载波相位连续使CPM信号避免了相位在相邻码元间的跳变,从而消除了高频分量。同时,相位连续的记忆特性使得CPM信号具有相位网格结构,从而可以将连续相位调制看作是一种融合了编码与调制特性的网格编码调制,可以像卷积码一样,CPM信号可以利用这种网格图来表示可能的传输信号,这种网格结构使CPM具有错误纠正的能力,从而获得一定的编码增益。
传统的CPM调制器的设计中,一般采用FIR滤波器、相位累加器、正余弦查找表进行实现,由于连续相位无法确定,所以正余弦查找表中需要存储大量的数据。这就使得传统CPM调制器的硬件设计实现较复杂、硬件资源消耗较多。
在对CPM研究中,Rimoldi已经证明,CPM的调制器可以分解为一个连续相位编码器CPE和一个无记忆调制器MM。进行这样的分解有两个优点。第一,编码与调制分开来研究,因而可以采用对应于不同形式CPM信号的不同形式编码器以及不同形式最优解码算法。第二,CPM的分解使得MM分离出来,可以将MM、波形信道和在一个符号间隔上工作的解调器的级联看成一个离散无记忆信道。因而离散无记忆信道的许多理论可以应用到CPM的研究当中。所以将CPM的调制器进行分解之后,会提升整个调制解调***的性能。直接对CPM的调制器进行分解得到的是递归CPM,又可以通过转换矩阵得到等价的非递归CPM,而非递归CPM可以降低错误传播、提高检测性能。
在接收端,对于CPM信号可以采用相干和非相干检测方法。维特比解调方法是最佳的相干检测,但是该方法要求收发载波完全同步,并且检测试验和复杂度非常高,不容易实现。非相干检测不需要接收机载波同步,并且可以克服相位模糊问题,但相比于非相干检测,性能有损失。目前最常用的非相干检测有两种,一种是D.Divsalar和M.K.Simon二人提出的多符号差分检测方法,另一种方法是Giulio Colavolpe和Gianluigi Ferrrai提出的非相干BCJR检测方法。但是这两种方法的实现复杂度都很高。在传统的CPM解调器的硬件设计中,常用的非相干解调算法是1bit差分解调、2bit差分解调,设计复杂度较低,但是性能较差。还有一种非相干软输入软输出算法,既能接近相干解调性能,又能降低复杂度,但是实现的时延较大。
非递归CPM具有比传统CPM更好的性能,但缺少硬件上的设计与实现。
发明内容
本发明的目的在于提出一种基于FPGA的非递归CPM调制器及解调器,以解决上述已有技术时延较大、硬件资源消耗较多、复杂度较大的问题。
为实现上述目的,本发明的技术方案如下:
一,基于FPGA的非递归CPM调制器,其特征在于,包括:
连续相位编码模块1,用于将基带二进制数据流转换为M进制递归数据序列{ck},其中ck表示第k时刻的M进制数据符号;用L+1个log2(M)比特位宽的寄存器存储该递归数据序列,则k时刻移位寄存器的内容为ck,…,ck-i,…ck-L,将其送入非递归转换模块2,其中0≤i≤L,L表示调制记忆长度;
非递归转换模块2,用于将连续相位编码模块1中输出的M进制递归数据序列ck,…,ck-i,…ck-L,转换为等价的M进制非递归数据序列并将该非递归数据序列送入查找表地址产生模块3中,其中0≤i≤L,1≤l≤L+1;
查找表地址产生模块3,用于将非递归转换模块2输出的序列分别送入Q路波形输出模块8中的Q路查找表及Y路波形输出模块9中的Y路查找表,作为各自的查找表地址,其可寻址范围为0~ML+1-1;
正弦C语言仿真模块4,用于根据非递归CPM的参数得到非递归CPM的NML+1个正弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条正弦波形,并对每条正弦波形进行N次采样,得到非递归CPM的NML+1个正弦波形采样值,其中非递归CPM的参数包括调制指数h、采样数N、调制脉冲类型以及调制记忆长度L;
余弦C语言仿真模块5,用于根据非递归CPM的参数得到非递归CPM的NML+1个余弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条余弦波形,并对每条余弦波形进行N次采样,得到非递归CPM的NML+1个余弦波形采样值;
Q路查找表生成模块6,用于根据正弦C语言仿真模块4输出的正弦波形采样值生成Q路查找表,即先在FPGA芯片中创建一个ROM查找表,再将正弦波形采样值进行T比特量化并存储在该ROM查找表中,即生成Q路查找表;将该Q路查找表送入Q路波形输出模块8;
Y路查找表生成模块7,用于根据余弦C语言仿真模块5输出的余弦波形采样值生成Y路查找表,即先在FPGA芯片中创建一个ROM查找表,再将余弦波形采样值进行T比特量化并存储在该ROM查找表中,即生成Y路查找表;将该Y路查找表送入Y路波形输出模块9;
Q路波形输出模块8,用于根据查找表地址读取Q路查找表中存储的非递归CPM的正弦波形采样值,输出与非递归数据序列对应的非递归CPM的Q路基带波形;
Y路波形输出模块9,用于根据查找表地址读取Y路查找表中存储的非递归CPM的余弦波形采样值,输出与非递归数据序列对应的非递归CPM的Y路基带波形。
二、一种基于FPGA的非递归CPM解调器,其特征在于,包括:
本地复信号模块10,用于生成非递归CPM的ML+1种本地复信号s,并将本地复信号s送入复共轭乘积模块11;
复共轭乘积模块11,用于将信道接收到的k时刻的复基带信号rk与ML+1种本地复信号s的复数共轭sH进行相乘操作,并将乘积结果rksH送入复共轭存储模块12;
复共轭存储模块12,用于将复共轭乘积模块11输出的乘积结果进行存储,并将该乘积结果送入Gama计算模块13;
Gama计算模块13,用于根据复共轭存储模块12传输的乘积结果rksH计算出ML+1个分支度量值γk(Sk,Sk+1),并将该分支度量值送入Gama存储模块14及Alpha计算模块16,其中γk(Sk,Sk+1)表示k时刻网格状态Sk转移到k+1时刻网格状态Sk+1的分支度量值,每个时刻有ML个网格状态;
Gama存储模块14,用于对Gama计算模块13传输的分支度量值进行存储,并将该分支度量值送入Beta计算模块19及求和软信息模块21;
Alpha初始值模块15,用于存储k时刻前向度量初始值ak(Sk),并在k+1时刻将该前向度量初始值送入Alpha计算模块16,其中,k=0时,网格状态S0=[0,0,...,0]的前向度量初始值为常数m,其他网格状态的前向度量初始值为0;
Alpha计算模块16,用于根据分支度量γk(Sk,Sk+1)和前向度量初始值ak(Sk),计算出k+1时刻的ML个前向度量值ak+1(Sk+1),并将该前向度量值分别送入Alpha初始值模块15及Alpha存储模块17;
Alpha存储模块17,用于将Alpha计算模块16传输的前向度量值进行存储,并将该前向度量值送入求和软信息模块21;
Beta初始值模块18,用于存储k+1时刻后向度量初始值βk+1(Sk+1),并在k时刻将该后向度量初始值送入Beta计算模块19,其中,k=R时,网格状态SR=[0,0,...,0]的后向度量初始值为常数m,其他网格状态的后向度量初始值为0,R表示最后一个符号的传输时刻;
Beta计算模块19,用于根据分支度量γk(Sk,Sk+1)和后向度量初始值βk+1(Sk+1),计算出k时刻的ML个后向度量值βk(Sk),并将该后向度量值送入Beta初始值模块18及Beta存储模块20;
Beta存储模块20,用于将Beta计算模块19传输的后向度量值进行存储,并将该后向度量值送入求和软信息模块21;
求和软信息模块21,用于根据分支度量值γk(Sk,Sk+1)、前向度量值ak(Sk)及后向度量值βk+1(Sk+1),计算出k时刻符号的软输出信息
本发明具有如下优点:
1.本发明在基于FPGA的非递归CPM的调制器的实现中,通过生成Q路查找表、Y路查找表,避免了复杂的滤波器设计与实现,只需要存储有限的正弦波形采样值、余弦波形采样值就可以实现非递归CPM的调制,并且可以产生具有任何特性的基带脉冲波形,降低了调制实现的复杂度,节省了硬件资源。
2.本发明在基于FPGA的非递归CPM的解调器的实现中,用改进的非相干软输入软输出算法实现,避免了累积相位的计算,从而降低了解调的实现复杂度,并且从信道接收的复基带信号可以直接进行处理,不需要等待和存储复基带信号,减少了解调时延,节省了硬件资源。
附图说明
图1为本发明基于FPGA的非递归CPM调制器的***框图;
图2为本发明基于FPGA的非递归CPM解调器的***框图;
图3是递归CPM分解模型图;
图4是非递归CPM分解模型图。
具体实施方式
以下参照附图对本发明作进一步详细描述。
参照图1,本发明基于FPGA的非递归CPM调制器,包括:
连续相位编码模块1、非递归转换模块2、查找表地址产生模块3、正弦C语言仿真模块4、余弦C语言仿真模块5、Q路查找表生成模块6、Y路查找表生成模块7、Q路波形输出模块8和Y路波形输出模块9。其中,连续相位编码模块1、非递归转换模块2和查找表地址产生模块3依次连接;查找表地址产生模块3输出分为两路,一路与Q路波形输出模块8连接,另一路与Y路波形输出模块9连接;正弦C语言仿真模块4、Q路查找表生成模块6和Q路波形输出模块8依次连接;余弦C语言仿真模块5、Y路查找表生成模块7和Y路波形输出模块9依次连接。
各模块的功能及整个调制器的工作原理如下:
连续相位编码模块1,用于将基带二进制数据流b转换为M进制递归数据序列{ck},其中ck表示第k时刻的M进制数据符号;用L+1个log2(M)比特位宽的寄存器存储该递归数据序列,则k时刻移位寄存器的内容为ck,…,ck-i,…ck-L,将其送入非递归转换模块2,其中0≤i≤L,L表示调制记忆长度;
非递归转换模块2,将连续相位编码模块1中输出的M进制递归数据序列ck,…,ck-i,…ck-L,转换为等价的M进制非递归数据序列并将该非递归数据序列送入查找表地址产生模块3中;
所述将连续相位编码模块1中输出的M进制递归数据序列ck,…,ck-i,…ck-L,转换为等价的M进制非递归数据序列其原理描述如下:
参照图3,将递归CPM分解为一个递归连续相位编码器CPE和一个无记忆调制器MM,递归连续相位编码器CPE将输入数据序列c编码为输出序列再送入无记忆调制器MM进行调制,其中输入数据序列与输出序列之间的关系为:
解得递归CPM的生成矩阵GR=[1,D,D2…,DL/1-D],其中0≤j≤L-1;
参照图4,将非递归CPM分解为非递归连续相位编码器CPE和一个无记忆调制器MM,非递归连续相位编码器CPE将输入数据序列c编码为递归数据序列ck,…,ck-i,…ck-L,并将该递归数据序列通过转换矩阵GZ转换为非递归数据序列再送入无记忆调制器MM进行调制,其中输入数据序列与递归数据序列之间的关系为:
c·GNR=[ck,…,ck-i,…ck-L]
递归数据序列与非递归数据序列之间的关系为:
解得非递归CPM的生成矩阵GNR=[1,D,D2…,DL],而递归数据序列与非递归数据序列之间的转换矩阵GZ需要用GR和GNR求解;
递归数据序列与非递归数据序列之间的转换矩阵GZ求解原理如下:
为了使递归连续相位编码器CPE和非递归连续相位编码器CPE送入无记忆调制器MM进行调制的数据序列等价,需要满足:(1-D)GR=GNRGZ,从而解得L+1行、L+1列的转换矩阵GZ:
求解得到转换矩阵GZ之后,即得递归数据序列与非递归数据序列的转换关系:
将上述转换关系展开,得到递归数据序列与非递归数据序列的对应关系为:
其中0≤i≤L,1≤l≤L+1,D是延迟算子,是加法操作,是延迟操作,用该对应关系在FPGA中实现递归数据序列转换成非递归数据序列,即用递归数据序列得到非递归数据序列,送给查找表地址产生模块3。
查找表地址产生模块3,将非递归转换模块2输出的序列分别送入Q路波形输出模块8中的Q路查找表及Y路波形输出模块9中的Y路查找表,作为各自的查找表地址,该查找表地址可寻址范围为0~ML+1-1;其中,Q路查找表在Q路查找表生成模块6中生成,Y路查找表在Y路查找表生成模块7中生成。
正弦C语言仿真模块4,根据非递归CPM的参数得到非递归CPM的NML+1个正弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条正弦波形,并对每条正弦波形进行N次采样,得到非递归CPM的NML+1个正弦波形采样值,其中非递归CPM的参数包括调制指数h、采样数N、调制脉冲类型以及调制记忆长度L。
余弦C语言仿真模块5,根据非递归CPM的参数得到非递归CPM的NML+1个余弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条余弦波形,并对每条余弦波形进行N次采样,得到非递归CPM的NML+1个余弦波形采样值。
Q路查找表生成模块6,根据正弦C语言仿真模块4输出的正弦波形采样值生成Q路查找表,并将该Q路查找表送入Q路波形输出模块8;生成Q路查找表的方法如下:
先在FPGA芯片中创建一个ROM查找表,再将正弦波形采样值进行T比特量化,将量化之后的正弦波形采样值存储在该ROM查找表中,即生成Q路查找表。
Y路查找表生成模块7,根据余弦C语言仿真模块5输出的余弦波形采样值生成Y路查找表,并将该Y路查找表送入Y路波形输出模块9;生成Y路查找表的方法如下:
先在FPGA芯片中创建一个ROM查找表,再将余弦波形采样值进行T比特量化,将量化之后的余弦波形采样值并存储在该ROM查找表中,即生成Y路查找表。
Q路波形输出模块8,根据查找表地址读取Q路查找表中存储的非递归CPM的正弦波形采样值,读取出来的非递归CPM的正弦波形采样值,即为非递归数据序列对应的非递归CPM的Q路基带波形,最后将非递归CPM的Q路基带波形输出。
Y路波形输出模块9,根据查找表地址读取Y路查找表中存储的非递归CPM的余弦波形采样值,读取出来的非递归CPM的正弦波形采样值,即为非递归数据序列对应的非递归CPM的Y路基带波形,最后将非递归CPM的Y路基带波形输出。
参照图2,本发明基于FPGA的非递归CPM解调器,包括:
本地复信号模块10、复共轭乘积模块11、复共轭存储模块12、Gama计算模块13、Gama存储模块14、Alpha初始值模块15、Alpha计算模块16、Alpha存储模块17、Beta初始值模块18、Beta计算模块19、Beta存储模块20、求和软信息模块21,其中,本地复信号模块10和复共轭乘积模块11依次连接;复共轭乘积模块11、复共轭存储模块12、Gama计算模块13依次连接;Gama计算模块13的输入分为两路,一路与Alpha计算模块16连接,另一路与Gama存储模块14连接;Alpha计算模块16的输出分为两路,一路与Alpha初始值模块15连接,另一路与Alpha存储模块17连接;Alpha存储模块17和求和软信息模块21依次连接;Gama存储模块14的输出分为两路,一路与Beta计算模块19连接,另一路与求和软信息模块21连接;Beta计算模块19的输出分为两路,一路与Beta初始值模块18连接,另一路与Beta存储模块20连接;Beta存储模块20和求和软信息模块21依次连接;Alpha初始值模块15和Alpha计算模块16相互连接;Beta初始值模块18和Beta计算模块19相互连接。
各模块的功能及整个解调器的工作原理如下:
本地复信号模块10,生成非递归CPM的ML+1种本地复信号s,并将本地复信号s送入复共轭乘积模块11,其中本地复信号s包括实部和虚部两部分,实部是非递归CPM余弦波形采样值进行H比特量化之后的值,虚部是将非递归CPM正弦波形采样值进行H比特量化之后的值。
复共轭乘积模块11,将信道接收到的k时刻的复基带信号rk与ML+1种本地复信号s的复数共轭sH进行相乘操作,并将乘积结果rksH送入复共轭存储模块12。
复共轭存储模块12,将复共轭乘积模块11输出的乘积结果进行存储,并将该乘积结果送入Gama计算模块13,其中对乘积结果的存储,需要存储R个时刻,每个时刻包括ML+1个乘积结果。
Gama计算模块13,根据复共轭存储模块12传输的乘积结果rksH计算出ML+1个分支度量值γk(Sk,Sk+1),并将该分支度量值送入Gama存储模块14及Alpha计算模块16;
所述分支度量γk(Sk,Sk+1)的计算原理描述如下:
由于本地复信号s有ML+1种可能的取值,所以每接收一个符号都需要计算出ML+1个分支度量值,γk(Sk,Sk+1)表示k时刻网格状态Sk转移到k+1时刻网格状态Sk+1的分支度量值,网格状态每个时刻有ML个,分支度量γk(Sk,Sk+1)的计算公式为:
γk(Sk,Sk+1)=|pk(Sk)+rksH|-|pk(Sk)|
其中,pk(Sk)反映了前k个符号与接收到的基带复信号之间的相关性,k=0时,p0(S0)=0,其它k时刻,pk(Sk)的计算公式为:
pk(Sk)=α·pk-1(Sk-1)+rk-1sH
α是用来简化运算的遗忘因子,pk-1(Sk-1)反映了前k-1个符号与接收到的基带复信号之间的相关性,rk-1sH是k-1时刻的乘积结果。
Gama存储模块14,对Gama计算模块13传输的分支度量值进行存储,并将该分支度量值送入Beta计算模块19及求和软信息模块21,其中对分支度量值的存储,需要存储R个时刻,每个时刻包括ML+1个分支度量值。
Alpha初始值模块15,存储k时刻前向度量初始值ak(Sk),并在k+1时刻将该前向度量初始值送入Alpha计算模块16,其中,k=0时,网格状态S0=[0,0,...,0]的前向度量初始值为常数m,其他网格状态的前向度量初始值为0。
Alpha计算模块16,根据分支度量γk(Sk,Sk+1)和前向度量初始值ak(Sk),计算出k+1时刻的ML个前向度量值ak+1(Sk+1),并将该前向度量值分别送入Alpha初始值模块15及Alpha存储模块17;
所述前向度量值的计算原理描述如下:
k时刻网格状态有ML个,每个状态下有M个可能的输入符号,状态转移中到达的网格状态也有ML个,将每个状态的初始前向度量值和ML+1个分支度量值求和,选择出M个输入符号中该求和结果最大的输入符号,该输入符号所对应的求和结果即是k+1时刻的前向度量值,即前向度量的计算公式为:
Alpha存储模块17,将Alpha计算模块16传输的前向度量值进行存储,并将该前向度量值送入求和软信息模块21,其中对前向度量值的存储,需要存储R个时刻,每个时刻包括ML个前向度量值。
Beta初始值模块18,存储k+1时刻后向度量初始值βk+1(Sk+1),并在k时刻将该后向度量初始值送入Beta计算模块19,其中,k=R时,网格状态SR=[0,0,...,0]的后向度量初始值为常数m,其他网格状态的后向度量初始值为0,R表示最后一个符号的传输时刻。
Beta计算模块19,根据分支度量γk(Sk,Sk+1)和后向度量初始值βk+1(Sk+1),计算出k时刻的ML个后向度量值βk(Sk),并将该后向度量值送入Beta初始值模块18及Beta存储模块20;
所述后向度量值的计算原理描述如下:
由后往前计算后向度量值,即从接收的最后一个符号开始计算后向度量值,计算到接收的第一个符号为止。即后向度量值βk(Sk)的计算公式为:
Beta存储模块20,将Beta计算模块19传输的后向度量值进行存储,并将该后向度量值送入求和软信息模块21,其中对后向度量值的存储,需要存储R个时刻,每个时刻包括ML个后向度量值。
求和软信息模块21,根据分支度量值γk(Sk,Sk+1)、前向度量值ak(Sk)及后向度量值βk+1(Sk+1),计算出k时刻符号的软输出信息
所述软输出信息的计算原理描述如下:
首先将k时刻每个网格状态下的M个输入符号所对应的分支度量值、前向度量值及后向度量值求和;再选择出每个符号的ML-1个求和结果中最大的一个值,即为该符号的软输出信息即软输出信息计算公式为:
Claims (10)
1.一种基于FPGA的非递归CPM调制器,其特征在于,包括:
连续相位编码模块(1),用于将基带二进制数据流转换为M进制递归数据序列{ck},其中ck表示第k时刻的M进制数据符号;用L+1个log2(M)比特位宽的寄存器存储该递归数据序列,则k时刻移位寄存器的内容为ck,…,ck-i,…ck-L,将其送入非递归转换模块(2),其中0≤i≤L,L表示调制记忆长度;
非递归转换模块(2),用于将连续相位编码模块(1)中输出的M进制递归数据序列ck,…,ck-i,…ck-L,转换为等价的M进制非递归数据序列并将该非递归数据序列送入查找表地址产生模块(3)中,其中0≤i≤L,1≤l≤L+1;
查找表地址产生模块(3),用于将非递归转换模块(2)输出的序列分别送入Q路波形输出模块(8)中的Q路查找表及Y路波形输出模块(9)中的Y路查找表,作为各自的查找表地址,其可寻址范围为0~ML+1-1;
正弦C语言仿真模块(4),用于根据非递归CPM的参数得到非递归CPM的NML+1个正弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条正弦波形,并对每条正弦波形进行N次采样,得到非递归CPM的NML+1个正弦波形采样值,其中非递归CPM的参数包括调制指数h、采样数N、调制脉冲类型以及调制记忆长度L;
余弦C语言仿真模块(5),用于根据非递归CPM的参数得到非递归CPM的NML+1个余弦波形采样值,即在C语言仿真环境下先设置非递归CPM的参数,再仿真出非递归CPM的ML+1条余弦波形,并对每条余弦波形进行N次采样,得到非递归CPM的NML+1个余弦波形采样值;
Q路查找表生成模块(6),用于根据正弦C语言仿真模块(4)输出的正弦波形采样值生成Q路查找表,即先在FPGA芯片中创建一个ROM查找表,再将正弦波形采样值进行T比特量化并存储在该ROM查找表中,即生成Q路查找表;将该Q路查找表送入Q路波形输出模块(8);
Y路查找表生成模块(7),用于根据余弦C语言仿真模块(5)输出的余弦波形采样值生成Y路查找表,即先在FPGA芯片中创建一个ROM查找表,再将余弦波形采样值进行T比特量化并存储在该ROM查找表中,即生成Y路查找表;将该Y路查找表送入Y路波形输出模块(9);
Q路波形输出模块(8),用于根据Q路查找表地址读取Q路查找表中存储的非递归CPM的正弦波形采样值,输出与非递归数据序列对应的非递归CPM的Q路基带波形;
Y路波形输出模块(9),用于根据Y路查找表地址读取Y路查找表中存储的非递归CPM的余弦波形采样值,输出与非递归数据序列对应的非递归CPM的Y路基带波形。
2.根据权利要求1所述的基于FPGA的非递归CPM调制器,其中非递归转换模块(2)将连续相位编码模块(1)中输出的M进制递归数据序列ck,…,ck-i,…ck-L,转换为等价的M进制非递归数据序列按如下转换关系公式进行:
将上述转换关系展开,得到递归数据序列与非递归数据序列的对应关系为:
3.一种基于FPGA的非递归CPM解调器,其特征在于,包括:
本地复信号模块(10),用于生成非递归CPM的ML+1种本地复信号s,并将本地复信号s送入复共轭乘积模块(11);
复共轭乘积模块(11),用于将信道接收到的k时刻的复基带信号rk与ML+1种本地复信号s的复数共轭sH进行相乘操作,并将乘积结果rksH送入复共轭存储模块(12);
复共轭存储模块(12),用于将复共轭乘积模块(11)输出的乘积结果进行存储,并将该乘积结果送入Gama计算模块(13);
Gama计算模块(13),用于根据复共轭存储模块(12)传输的乘积结果rksH计算出ML+1个分支度量值γk(Sk,Sk+1),并将该分支度量值送入Gama存储模块(14)及Alpha计算模块(16),其中γk(Sk,Sk+1)表示k时刻网格状态Sk转移到k+1时刻网格状态Sk+1的分支度量值,每个时刻有ML个网格状态;
Gama存储模块(14),用于对Gama计算模块(13)传输的分支度量值进行存储,并将该分支度量值送入Beta计算模块(19)及求和软信息模块(21);
Alpha初始值模块(15),用于存储k时刻前向度量初始值ak(Sk),并在k+1时刻将该前向度量初始值送入Alpha计算模块(16),其中,k=0时,网格状态S0=[0,0,...,0]的前向度量初始值为常数m,其他网格状态的前向度量初始值为0;
Alpha计算模块(16),用于根据分支度量γk(Sk,Sk+1)和前向度量初始值ak(Sk),计算出k+1时刻的ML个前向度量值ak+1(Sk+1),并将该前向度量值分别送入Alpha初始值模块(15)及Alpha存储模块(17);
Alpha存储模块(17),用于将Alpha计算模块(16)传输的前向度量值进行存储,并将该前向度量值送入求和软信息模块(21);
Beta初始值模块(18),用于存储k+1时刻后向度量初始值βk+1(Sk+1),并在k时刻将该后向度量初始值送入Beta计算模块(19),其中,k=R时,网格状态SR=[0,0,...,0]的后向度量初始值为常数m,其他网格状态的后向度量初始值为0,R表示最后一个符号的传输时刻;
Beta计算模块(19),用于根据分支度量γk(Sk,Sk+1)和后向度量初始值βk+1(Sk+1),计算出k时刻的ML个后向度量值βk(Sk),并将该后向度量值送入Beta初始值模块(18)及Beta存储模块(20);
Beta存储模块(20),用于将Beta计算模块(19)传输的后向度量值进行存储,并将该后向度量值送入求和软信息模块(21);
求和软信息模块(21),用于根据分支度量值γk(Sk,Sk+1)、前向度量值ak(Sk)及后向度量值βk+1(Sk+1),计算出k时刻符号的软输出信息
4.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中本地复信号模块(10)生成的本地复信号s包括实部和虚部两部分,即先将非递归CPM的余弦波形采样值进行H比特量化,得到本地复信号s的实部,再将非递归CPM的正弦波形采样值进行H比特量化,得到本地复信号s的虚部。
5.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中Gama计算模块(13)中分支度量γk(Sk,Sk+1)的计算公式为:
γk(Sk,Sk+1)=|pk(Sk)+rksH|-|pk(Sk)|
其中,pk(Sk)反映了前k个符号与接收到的基带复信号之间的相关性,k=0时,p0(S0)=0,其它k时刻,pk(Sk)的计算公式为:
pk(Sk)=α·pk-1(Sk-1)+rk-1sH
α是用来简化运算的遗忘因子,pk-1(Sk-1)反映了前k-1个符号与接收到的基带复信号之间的相关性,rk-1sH是k-1时刻的乘积结果。
6.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中:
复共轭存储模块(12)对乘积结果的存储,需要存储R个时刻,每个时刻包括ML+1个乘积结果;
Gama存储模块(14)对分支度量值的存储,需要存储R个时刻,每个时刻包括ML+1个分支度量值。
7.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中:
Alpha存储模块(17)对前向度量值的存储,需要存储R个时刻,每个时刻包括ML个前向度量值;
Beta存储模块(20)对后向度量值的存储,需要存储R个时刻,每个时刻包括ML个后向度量值。
8.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中Alpha计算模块(16)中前向度量值ak+1(Sk+1),其计算公式为:
9.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中Beta计算模块(19)中后向度量值βk(Sk),其计算公式为:
10.根据权利要求3所述的基于FPGA的非递归CPM解调器,其中求和软信息模块(21)中软输出信息的计算表达式为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610394874.9A CN105915483B (zh) | 2016-06-06 | 2016-06-06 | 基于fpga的非递归cpm调制器及解调器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610394874.9A CN105915483B (zh) | 2016-06-06 | 2016-06-06 | 基于fpga的非递归cpm调制器及解调器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105915483A CN105915483A (zh) | 2016-08-31 |
CN105915483B true CN105915483B (zh) | 2019-02-15 |
Family
ID=56749793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610394874.9A Active CN105915483B (zh) | 2016-06-06 | 2016-06-06 | 基于fpga的非递归cpm调制器及解调器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105915483B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245572A (zh) * | 2020-01-18 | 2020-06-05 | 西安电子科技大学 | 用于卫星通信的串行级联gmsk控制***、方法及应用 |
CN114363134B (zh) * | 2021-12-31 | 2023-10-27 | 北京升哲科技有限公司 | 一种信号解调方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710898A (zh) * | 2005-06-29 | 2005-12-21 | 西安电子科技大学 | 连续相位信号的调制及解调方法 |
CN101610229A (zh) * | 2009-07-16 | 2009-12-23 | 清华大学 | 联合ldpc编码的递归msk调制解调***及方法 |
CN102223204A (zh) * | 2011-06-02 | 2011-10-19 | 西安电子科技大学 | 基于全响应CPM和Turbo乘积码的编码调制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19946722A1 (de) * | 1999-09-29 | 2001-04-05 | Infineon Technologies Ag | Einrichtung und Verfahren zur spektralen Formung eines Sendesignals in einem Funksender |
US7620881B2 (en) * | 2005-03-09 | 2009-11-17 | Harris Corporation | System and method for communicating data using iterative equalizing and decoding and recursive inner code |
-
2016
- 2016-06-06 CN CN201610394874.9A patent/CN105915483B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710898A (zh) * | 2005-06-29 | 2005-12-21 | 西安电子科技大学 | 连续相位信号的调制及解调方法 |
CN101610229A (zh) * | 2009-07-16 | 2009-12-23 | 清华大学 | 联合ldpc编码的递归msk调制解调***及方法 |
CN102223204A (zh) * | 2011-06-02 | 2011-10-19 | 西安电子科技大学 | 基于全响应CPM和Turbo乘积码的编码调制方法 |
Non-Patent Citations (1)
Title |
---|
战术数据链高效传输波形设计与实现;李梦良;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105915483A (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100586115C (zh) | 连续相位信号的调制及解调方法 | |
CN101610229B (zh) | 联合ldpc编码的递归msk调制解调***及方法 | |
CN101479973B (zh) | 一种时间分割复用方法和*** | |
US20110141918A1 (en) | Time division multiplexing method and system | |
CN111970087B (zh) | Gmsk调制的硬件实现方法 | |
CN102104574A (zh) | 一种ofdm-tcds信号收发方法、装置及*** | |
CN106453185B (zh) | 一种基于ccsk调制的idma***改进方法 | |
CN107094064B (zh) | 针对八进制连续相位频移键控的维特比解调***及方法 | |
CN113141195B (zh) | 一种在直扩***解扩的解调方法及存储介质 | |
CN104009826A (zh) | 基于纠错纠删RS-Turbo级联码的跳频抗干扰方法 | |
CN109039573A (zh) | 一种基于cpm信号多符号检测的方法 | |
CN105915483B (zh) | 基于fpga的非递归cpm调制器及解调器 | |
CN111800368A (zh) | 一种基于16进制8-8星座图映射的数字通信方法 | |
CN102325109A (zh) | 一种快速fsk解调方法及全数字低功耗实现装置 | |
CN101662822B (zh) | 一种基于恒模信号的节能型无线通信收发机 | |
CN102594755A (zh) | 基于连续相位调制***的非相干软输出检测方法 | |
CN103200142A (zh) | 非递归soqpsk-tg信号的两状态简化方法 | |
CN108880758A (zh) | 差分混沌比特交织编码调制***的迭代接收机设计算法 | |
CN101437012A (zh) | 一种格雷正交幅度调制下低复杂度的软解调方法 | |
CN102882654A (zh) | 一种基于编码约束及概率计算的编解码同步方法 | |
CN106301687A (zh) | 基于4比特crc纠错与迭代干扰消除算法的星载ais接收方法 | |
CN100452890C (zh) | 一种适用于edge***的8psk均衡解调的方法及装置 | |
CN111478754B (zh) | 一种信号调制方法 | |
CN107995138A (zh) | Sccpm***的联合迭代载波同步与解调方法 | |
CN103338178A (zh) | 基于fpga的全相位ofdm***设计 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |