浅谈高阶累积量调制识别改进算法的FPGA实现
发布时间:2015-07-03 11:24
摘 要:基于高阶累积量的数字调制信号识别算法在低信噪比环境下识别率较低。针对这一问题,提出了高阶累积量的改进算法,通过调整特征参数的判别顺序先识别出mask信号的方式,取得了较好的效果。讨论了该算法的fpga设计,并利用virtex-4开发板对该设计进行硬件协同仿真测试。测试结果表明,该算法在低信噪比环境下对2ask,4ask,4psk,16qam信号的识别率有显著提高。在信噪比为4 db时,对2ask,4ask信号的识别率分别为93.4%,100%。在信噪比为2 db时,对4psk,16qam信号的识别率最高,达到了99.7%。
关键词:system generator; fpga; 调制识别; 高阶累积量
an improved high-order cumulant algorithm for modulation
recognition and its fpga implementation
li yue-zhen, guo min
(south-central university for nationalities, wuhan 430073, china)
abstract: the digital modulation recognition algorithm based on higher-order cumulant has a low recognition rate in low snr environment. an improved higher-order cumulant algorithm is introduced to solve the problem. it achieved better effect by adjusting the decision order of characteristic parameters, and identifying mask signal firstly. it implemented the fpga design of the algorithm, and the hardware co-simulation test with the help of virtex-4 development board. the test results show that the algorithm has significantly improved the recognition rate of 2ask, 4ask, 4psk and 16qam signal in low snr environment. the recognition rates of 2ask, 4ask signal are 93.4%and 100% when snr is 4db. when snr is 2db, the recognition rates of 4psk and 16qam signal are the highest, reaching 99.7%.
keywords: system generator; fpga; modulation recognition; higher-order cumulant
0 引 言
由于数字调制信号越来越多地应用于通信信号处理领域,因此对数字信号调制识别的研究也越来越多。传统的调制识别的判决方法有:决策判决法、高阶累积量算法和人工神经网络算法等。但是决策判决法在低信噪比环境中识别率不高,而基于人工神经网络的识别方法计算复杂度较高。信号的高阶累积量算法具有很好的抗噪性能,故对基于高阶累积量的通信信号调制识别算法的研究受到了广泛重视[1]。文献[2]利用高阶累积量实现了对2ask/bpsk,4ask,4psk,2fsk,4fsk信号的分类。文献[3]利用四阶和六阶累积量实现了对2ask,4ask,8ask,qpsk,8psk,16qam信号的分类。文献[4]利用二、四、六阶累积量实现了对2ask/bpsk,4ask,qpsk,2fsk,4fsk,8fsk,16qam信号的分类。文献[5]对高阶累积量的四阶、五阶累积量进行了优化和仿真,但是在低信噪比的环境下,对信号的识别率都不高。
在寻找更优识别算法的过程中,以往的研究更多的把注意力放在了识别算法上,而没注重算法的硬件设计与实现。system generator for dsp是xilinx公司开发的一款理想的dsp开发软件,它对数字信号处理单元进行系统建模,并将模型转换成可靠的硬件实现,是连接数字信号处理高层系统设计与xilinx fpga实现的桥梁。针对上述问题,本文提出了高阶累积量的改进算法,并在system generator中实现了算法的fpga设计。
1 高阶累积量的改进算法
数字信号的调制识别通常经过三个步骤:接收信号预处理、特征参数提取和调制方式识别。然而实现信号调制识别的关键环节是从接收信号中提取出用于识别的特征参数。下面首先介绍高阶累积量算法是如何提取用于调制识别的特征参数的。
1.1 特征参数的提取
首先给出高阶矩的定义,对于一个具有零均值的复随机过程x(t),其p阶混合矩可表示为[2]:mpq=e[x(t)p-qx*(t)q]。其中,*表示函数的共轭。然后定义高阶累积量如下:
c20=cum(x,x)=m20
(1)
c21=cum(x,x*)=m21
(2)
c40=cum(x,x,x,x)=m40-3(m20)2
(3)
c41=cum(x,x,x,x*)=m41-3m20m21
(4)
c42=cum(x,x,x*,x*)
=m42-|m20|2-2(m21)2
(5)
c63=cum(x,x,x,x*,x*,x*)
=m63-9c42c21-6c321
(6)
设信号的能量为e,利用文献[6]中提出的算术平均来代替统计平均的方法,计算各种数字调制信号的高阶累积量,得到高阶累积量的理论值,如表1所示。
表1 数字调制信号高阶累积量的理论值
信号类型c20c21c40c41c42c63
2askee-2e2-2e2-2e216e3
4askee-1.36e2-1.36e2-1.36e28.32e3
4fsk0e00-e24e3
8fsk0e00-e24e3
bpskee-2e2-2e2-2e216e3
4psk0ee20-e24e3
16qam0e-0.68e20-0.68e22.08e3
从表1中可以看出,从信号的高阶累积量中提取特征参数,可以实现大部分信号的分类,而由于2ask和bpsk信号的各累积量值相同,故利用高阶累积量无法实现其分类。mfsk的高阶累积量也相同,直接利用累积量无法实现其类内识别。
由文献[2]知,对mfsk信号求导,再经中值滤波,在滤除含有冲激函数的项后,再计算所得信号的高阶累积量值,如表2所示。
表2 mfsk信号微分后的累积量值
信号类型c20c21c40c41c42
4fsk05eδω200-9e2δω4
8fsk021eδω200-105e2δω4
由以上分析可知,为了实现数字调制信号的调制识别,利用不同的累积量组合,从中提取了以下4个特征参数,定义如下:
fe1=c40/c42
(7)
fe2=c632/c423
(8)
fe3=c42/c212
(9)
t4=c41/c42
(10)
1.2 信号的调制识别流程
在低信噪比环境中,基于高阶累积量的数字调制信号识别算法对2ask和4ask信号的识别率普遍较低。针对此问题,本文提出了高阶累积量的改进算法。文中在高阶累积量算法的基础上,对四个特征参数的判决顺序稍作调整,将mask信号与其他信号分离,取得了较好的效果。具体识别过程如下:
(1) 用编程工具编程产生各种数字调制信号,并加入信噪比已知的噪声,作为待识别的信号。
(2) 将接收到的待识别信号通过下变频直接变换到零频,然后利用正交下变频技术得到复基带调制信号。
(3) 计算各种待识别信号的二、四、六阶累积量,并计算其特征参数fe1,fe2,t4。
(4) 利用特征参数t4的识别,可以将信号分为两组:第一组为mask信号,第二组为mpsk,16qam,mfsk信号。利用fe2的阈值(t1)实现第一组组内识别;再利用fe2的另一个阈值(t2)和fe1从第二组中识别出16qam,mpsk信号。
(5)将待识别信号进行微分后再经中值滤波器,计算变换信号的高阶累积量,并计算特征参数fe3,利用fe3实现mfsk类内识别。
在信号的调制识别过程中,主要是根据决策树方法进行分类和识别。本文在提取上述四个特征参数的基础上,根据不同的决策规则建立决策树。经过多次性能的仿真和比较,最终得到一种比较好的识别算法,如图1所示。其中t0,t1,t2,t3,t4都是阈值。
图1 调制信号的自动识别算法
1.3 仿真结果
文中采用高阶累积量的改进方法,对算法识别性能做蒙特卡洛仿真。给阈值t0,t1,t2,t3,t4设置合适的值后,再将1 000次独立实验得到的仿真结果取平均。在每次试验中,设置信号的载波频率为12 khz,码元速率为1 200 b/s,其中4fsk,8fsk的频偏分别为 15 khz,35 khz,码元个数为200。图2为原算法仿真结果,图3为本文算法的仿真结果。
对图2和图3进行比较,可以看出本文算法的识别效果有了显著提高。在信噪比为2 db时,本文算法对16qam信号和4psk信号识别率达到100%,而原算法几乎不能识别16qam信号;在信噪比为4 db时,对2ask,4ask信号的识别率分别为93%,100%。在信噪比为8 db时,所有信号的识别率都可以达到90%以上,原算法有的信号识别率低于90%。比较后可知,在低信噪比环境下本文的算法对2ask,4ask,4psk,16qam信号的识别率有了显著提高。
图2 原算法的调制识别率
图3 改进算法的调制识别率
2 算法的system generator设计
目前,fpga 芯片已成为数字信号处理系统的核心器件。由于dsp设计者通常对c语言或matlab工具很熟悉,却不了解硬件描述语言vhdl,使得fpga 并未在数字信号处理领域获得广泛应用。system generator在很多方面扩展了mathworks公司的simulink平台,提供了适合硬件设计的数字信号处理建模环境,加速、简化了fpga的dsp系统级硬件设计[7]。通过simulink的设计,system generator即可自动完成硬件比特流的产生,从而高效的实现fpga设计。
在fpga调试和开发过程中,采用xilinx公司的系统级建模工具system generator构建信号调制识别的算法模块,开发板选用virtex-4。算法模块主要由信号产生模块,信号参数提取模块和信号判决模块构成。
2.1 调制信号的产生
在system generator设计过程中,各种调制信号是利用matlab语言编程提供的,并叠加上已知信噪比的高斯白噪声。文中测试了2ask,4ask,4psk,16qam,4fsk和8fsk信号的识别率。
2.2 微分前参数提取模块
提取特征参数fe1,fe2,t4的模块,如图4所示。其中,signal是信号源,dds,fir,dowsamp共同实现复基带信号的同向分量和正交分量的提取,calculat module是计算fe1,fe2,t4三个特征参数的模块,且这三个特征参数的结果分别由三个示波器输出。
图4 fe1,fe2,t4参数提取模块
2.3 微分后参数提取模块
提取特征参数fe3的模块,如图5所示。其中,dmfilt是微分中值滤波模块,两个black box是计算特征参数fe3的模块。待识别调制信号经过dmfilt模块后,然后由dds,fir,dowsamp等提取同向分量和正交分量,再通过计算fe3 的模块计算参数,最后结果由scope输出。
图5 fe3参数提取模块
图6是当信号为4fsk时,计算得到的fe3值。其中,0.03~0.1 s是模块计算参数的过程,0.1 s时对应的数据是计算的最终结果。将结果输出到matlab变量空间workspace中,可以得到在0.1 s时计算的fe3值为12.4。
3 实验结果
为了验证调制识别系统的可行性,分别在simulink和目标开发板上运行该设计。在产生硬件协同仿真模块之前,先调用resource estimator模块对本系统所需资源进行估测。估测结果见表3。
图6 4fsk信号的fe3值
表3 调制识别系统所需资源
资源名称bufs
已用资源1 4632 34402 283276380
由于所需芯片内部资源较多,所以选用virtex4-xc4vlx200芯片。然后在system generator模块中点击generate产生硬件协仿真模块,并将它拖入到设计文件当中。给virtex-4目标板上电,连接好jtag口,启动硬件协同仿真。当信号分别为2ask,4ask,4psk等调制信号时,测试整个设计系统判决的结果,并将1 000次独立试验得到的仿真结果取平均,得到各种调制信号的识别率,如表4所示。从试验结果来看,调制识别系统设计的fpga硬件协同实现与simulink仿真的结果基本一致,达到了设计的要求,从而也说明了system generator有很高的精度。
表4 各调制信号识别率%
调制信号2 db4 db6 db8 db10 db
2ask71.093.498.699.499.7
4ask100.0100.099.799.898.9
4psk99.7100.0100.0100.0100.0
16qam99.7100.0100.0100.0100.0
4fsk50.776.888.995.6100.0
8fsk51.376.779.793.493.9
4 结 语
本文采用高阶累积量改进算法对各种数字信号进行调制识别,大大提高了低信噪比环境下2ask,4ask,4psk和16qam信号的识别率,并在system generator中实现了高阶累积量改进算法的fpga设计,从模型的建立到fpga的实现都是在图形化设计环境下完成的,避开了编写复杂vhdl语言的环节,且转化到fpga上实现的性能好,设计过程简便灵活,从而为调制方式识别算法的设计提供了一种新的方案。利用system generator提供的图形化建模环境和自动转换成vhdl代码的能力,设计者可以将更多的时间和精力放在算法的优化上,同时又能显著缩短设计开发周期。
参考文献
[1]黄琳.基于高阶累积量的改进的fsk数字调制识别方式识别算法[j].
关键词:system generator; fpga; 调制识别; 高阶累积量
an improved high-order cumulant algorithm for modulation
recognition and its fpga implementation
li yue-zhen, guo min
(south-central university for nationalities, wuhan 430073, china)
abstract: the digital modulation recognition algorithm based on higher-order cumulant has a low recognition rate in low snr environment. an improved higher-order cumulant algorithm is introduced to solve the problem. it achieved better effect by adjusting the decision order of characteristic parameters, and identifying mask signal firstly. it implemented the fpga design of the algorithm, and the hardware co-simulation test with the help of virtex-4 development board. the test results show that the algorithm has significantly improved the recognition rate of 2ask, 4ask, 4psk and 16qam signal in low snr environment. the recognition rates of 2ask, 4ask signal are 93.4%and 100% when snr is 4db. when snr is 2db, the recognition rates of 4psk and 16qam signal are the highest, reaching 99.7%.
keywords: system generator; fpga; modulation recognition; higher-order cumulant
0 引 言
由于数字调制信号越来越多地应用于通信信号处理领域,因此对数字信号调制识别的研究也越来越多。传统的调制识别的判决方法有:决策判决法、高阶累积量算法和人工神经网络算法等。但是决策判决法在低信噪比环境中识别率不高,而基于人工神经网络的识别方法计算复杂度较高。信号的高阶累积量算法具有很好的抗噪性能,故对基于高阶累积量的通信信号调制识别算法的研究受到了广泛重视[1]。文献[2]利用高阶累积量实现了对2ask/bpsk,4ask,4psk,2fsk,4fsk信号的分类。文献[3]利用四阶和六阶累积量实现了对2ask,4ask,8ask,qpsk,8psk,16qam信号的分类。文献[4]利用二、四、六阶累积量实现了对2ask/bpsk,4ask,qpsk,2fsk,4fsk,8fsk,16qam信号的分类。文献[5]对高阶累积量的四阶、五阶累积量进行了优化和仿真,但是在低信噪比的环境下,对信号的识别率都不高。
在寻找更优识别算法的过程中,以往的研究更多的把注意力放在了识别算法上,而没注重算法的硬件设计与实现。system generator for dsp是xilinx公司开发的一款理想的dsp开发软件,它对数字信号处理单元进行系统建模,并将模型转换成可靠的硬件实现,是连接数字信号处理高层系统设计与xilinx fpga实现的桥梁。针对上述问题,本文提出了高阶累积量的改进算法,并在system generator中实现了算法的fpga设计。
1 高阶累积量的改进算法
数字信号的调制识别通常经过三个步骤:接收信号预处理、特征参数提取和调制方式识别。然而实现信号调制识别的关键环节是从接收信号中提取出用于识别的特征参数。下面首先介绍高阶累积量算法是如何提取用于调制识别的特征参数的。
1.1 特征参数的提取
首先给出高阶矩的定义,对于一个具有零均值的复随机过程x(t),其p阶混合矩可表示为[2]:mpq=e[x(t)p-qx*(t)q]。其中,*表示函数的共轭。然后定义高阶累积量如下:
c20=cum(x,x)=m20
(1)
c21=cum(x,x*)=m21
(2)
c40=cum(x,x,x,x)=m40-3(m20)2
(3)
c41=cum(x,x,x,x*)=m41-3m20m21
(4)
c42=cum(x,x,x*,x*)
=m42-|m20|2-2(m21)2
(5)
c63=cum(x,x,x,x*,x*,x*)
=m63-9c42c21-6c321
(6)
设信号的能量为e,利用文献[6]中提出的算术平均来代替统计平均的方法,计算各种数字调制信号的高阶累积量,得到高阶累积量的理论值,如表1所示。
信号类型c20c21c40c41c42c63
2askee-2e2-2e2-2e216e3
4askee-1.36e2-1.36e2-1.36e28.32e3
4fsk0e00-e24e3
8fsk0e00-e24e3
bpskee-2e2-2e2-2e216e3
4psk0ee20-e24e3
16qam0e-0.68e20-0.68e22.08e3
从表1中可以看出,从信号的高阶累积量中提取特征参数,可以实现大部分信号的分类,而由于2ask和bpsk信号的各累积量值相同,故利用高阶累积量无法实现其分类。mfsk的高阶累积量也相同,直接利用累积量无法实现其类内识别。
由文献[2]知,对mfsk信号求导,再经中值滤波,在滤除含有冲激函数的项后,再计算所得信号的高阶累积量值,如表2所示。
表2 mfsk信号微分后的累积量值
信号类型c20c21c40c41c42
4fsk05eδω200-9e2δω4
8fsk021eδω200-105e2δω4
由以上分析可知,为了实现数字调制信号的调制识别,利用不同的累积量组合,从中提取了以下4个特征参数,定义如下:
fe1=c40/c42
(7)
fe2=c632/c423
(8)
fe3=c42/c212
(9)
t4=c41/c42
(10)
1.2 信号的调制识别流程
在低信噪比环境中,基于高阶累积量的数字调制信号识别算法对2ask和4ask信号的识别率普遍较低。针对此问题,本文提出了高阶累积量的改进算法。文中在高阶累积量算法的基础上,对四个特征参数的判决顺序稍作调整,将mask信号与其他信号分离,取得了较好的效果。具体识别过程如下:
(1) 用编程工具编程产生各种数字调制信号,并加入信噪比已知的噪声,作为待识别的信号。
(2) 将接收到的待识别信号通过下变频直接变换到零频,然后利用正交下变频技术得到复基带调制信号。
(3) 计算各种待识别信号的二、四、六阶累积量,并计算其特征参数fe1,fe2,t4。
(4) 利用特征参数t4的识别,可以将信号分为两组:第一组为mask信号,第二组为mpsk,16qam,mfsk信号。利用fe2的阈值(t1)实现第一组组内识别;再利用fe2的另一个阈值(t2)和fe1从第二组中识别出16qam,mpsk信号。
(5)将待识别信号进行微分后再经中值滤波器,计算变换信号的高阶累积量,并计算特征参数fe3,利用fe3实现mfsk类内识别。
在信号的调制识别过程中,主要是根据决策树方法进行分类和识别。本文在提取上述四个特征参数的基础上,根据不同的决策规则建立决策树。经过多次性能的仿真和比较,最终得到一种比较好的识别算法,如图1所示。其中t0,t1,t2,t3,t4都是阈值。
图1 调制信号的自动识别算法
1.3 仿真结果
文中采用高阶累积量的改进方法,对算法识别性能做蒙特卡洛仿真。给阈值t0,t1,t2,t3,t4设置合适的值后,再将1 000次独立实验得到的仿真结果取平均。在每次试验中,设置信号的载波频率为12 khz,码元速率为1 200 b/s,其中4fsk,8fsk的频偏分别为 15 khz,35 khz,码元个数为200。图2为原算法仿真结果,图3为本文算法的仿真结果。
对图2和图3进行比较,可以看出本文算法的识别效果有了显著提高。在信噪比为2 db时,本文算法对16qam信号和4psk信号识别率达到100%,而原算法几乎不能识别16qam信号;在信噪比为4 db时,对2ask,4ask信号的识别率分别为93%,100%。在信噪比为8 db时,所有信号的识别率都可以达到90%以上,原算法有的信号识别率低于90%。比较后可知,在低信噪比环境下本文的算法对2ask,4ask,4psk,16qam信号的识别率有了显著提高。
图2 原算法的调制识别率
图3 改进算法的调制识别率
2 算法的system generator设计
目前,fpga 芯片已成为数字信号处理系统的核心器件。由于dsp设计者通常对c语言或matlab工具很熟悉,却不了解硬件描述语言vhdl,使得fpga 并未在数字信号处理领域获得广泛应用。system generator在很多方面扩展了mathworks公司的simulink平台,提供了适合硬件设计的数字信号处理建模环境,加速、简化了fpga的dsp系统级硬件设计[7]。通过simulink的设计,system generator即可自动完成硬件比特流的产生,从而高效的实现fpga设计。
在fpga调试和开发过程中,采用xilinx公司的系统级建模工具system generator构建信号调制识别的算法模块,开发板选用virtex-4。算法模块主要由信号产生模块,信号参数提取模块和信号判决模块构成。
2.1 调制信号的产生
在system generator设计过程中,各种调制信号是利用matlab语言编程提供的,并叠加上已知信噪比的高斯白噪声。文中测试了2ask,4ask,4psk,16qam,4fsk和8fsk信号的识别率。
2.2 微分前参数提取模块
提取特征参数fe1,fe2,t4的模块,如图4所示。其中,signal是信号源,dds,fir,dowsamp共同实现复基带信号的同向分量和正交分量的提取,calculat module是计算fe1,fe2,t4三个特征参数的模块,且这三个特征参数的结果分别由三个示波器输出。
图4 fe1,fe2,t4参数提取模块
2.3 微分后参数提取模块
提取特征参数fe3的模块,如图5所示。其中,dmfilt是微分中值滤波模块,两个black box是计算特征参数fe3的模块。待识别调制信号经过dmfilt模块后,然后由dds,fir,dowsamp等提取同向分量和正交分量,再通过计算fe3 的模块计算参数,最后结果由scope输出。
图5 fe3参数提取模块
图6是当信号为4fsk时,计算得到的fe3值。其中,0.03~0.1 s是模块计算参数的过程,0.1 s时对应的数据是计算的最终结果。将结果输出到matlab变量空间workspace中,可以得到在0.1 s时计算的fe3值为12.4。
为了验证调制识别系统的可行性,分别在simulink和目标开发板上运行该设计。在产生硬件协同仿真模块之前,先调用resource estimator模块对本系统所需资源进行估测。估测结果见表3。
图6 4fsk信号的fe3值
表3 调制识别系统所需资源
资源名称bufs
已用资源1 4632 34402 283276380
由于所需芯片内部资源较多,所以选用virtex4-xc4vlx200芯片。然后在system generator模块中点击generate产生硬件协仿真模块,并将它拖入到设计文件当中。给virtex-4目标板上电,连接好jtag口,启动硬件协同仿真。当信号分别为2ask,4ask,4psk等调制信号时,测试整个设计系统判决的结果,并将1 000次独立试验得到的仿真结果取平均,得到各种调制信号的识别率,如表4所示。从试验结果来看,调制识别系统设计的fpga硬件协同实现与simulink仿真的结果基本一致,达到了设计的要求,从而也说明了system generator有很高的精度。
表4 各调制信号识别率%
调制信号2 db4 db6 db8 db10 db
2ask71.093.498.699.499.7
4ask100.0100.099.799.898.9
4psk99.7100.0100.0100.0100.0
16qam99.7100.0100.0100.0100.0
4fsk50.776.888.995.6100.0
8fsk51.376.779.793.493.9
4 结 语
本文采用高阶累积量改进算法对各种数字信号进行调制识别,大大提高了低信噪比环境下2ask,4ask,4psk和16qam信号的识别率,并在system generator中实现了高阶累积量改进算法的fpga设计,从模型的建立到fpga的实现都是在图形化设计环境下完成的,避开了编写复杂vhdl语言的环节,且转化到fpga上实现的性能好,设计过程简便灵活,从而为调制方式识别算法的设计提供了一种新的方案。利用system generator提供的图形化建模环境和自动转换成vhdl代码的能力,设计者可以将更多的时间和精力放在算法的优化上,同时又能显著缩短设计开发周期。
参考文献
[1]黄琳.基于高阶累积量的改进的fsk数字调制识别方式识别算法[j].
上一篇:浅谈电信光纤通信技术