本发明属于多载波通信技术领域,尤其涉及一种用于fpga的fbmc/oqam调制控制系统及方法、调制器。
背景技术:
滤波器组多载波(fbmc)技术以及正交频分复用(ofdm)技术都属于多载波调制技术。目前ofdm技术是使用最广泛的一种多载波调制技术,由于其简单的均衡技术、fft的应用而产生的极低的复杂度以及较高的频谱利用率等优点而获得了广泛的研究。fbmc技术使用一组优化的滤波器组从而达到带外抑制的目的,采用正交幅度调制(oqam)的fbmc传输技术作为未来无线通信技术的主要候选技术之一在满足与ofdm技术相同的传输效率的情况下得到了更加优异的带外抑制性能并减小了子载波间的正交性需求。由于fbmc/oqam技术实现复杂,研究该技术简洁快速的实现方式是有必要的。
目前,业内常用的现有技术是这样的:
(1)使用频域扩展的实现方式,即oqam调制后数据乘以原型滤波器的频域形式,进行频域扩展后进行ifft变换,最后将得到的数据进行串并转换以及循环叠加。此时需进行km点ifft变换,计算复杂度较m点ifft变换大,同时,频域扩展操作需要km个乘法器,此外,循环叠加的操作也需要耗费大量的存储器(ram)资源;
(2)使用时域加窗的方式,即oqam调制后数据直接进行ifft变换,将ifft变换得到的数据循环复制后加窗叠加,需要注意的是,ifft变换点数为m,而窗函数长度为km,此时加窗操作至少需要m个乘法器,叠加的操作同样需要消耗大量ram资源;
(3)使用多相网络的方式,即oqam调制后数据直接进行ifft变换,将ifft变换后的数据通过多相网络后进行串并转换,该方法使用m点ifft变换,但多相网络需要km个乘法器,在加快了数据处理速度的同时消耗了大量的fpga资源。
综上所述,现有技术存在的问题是:
(1)频域扩展以及时域加窗方式中,循环叠加运算会带来大量ram资源占用以及高延时;
(2)低延时情况下,多相网络引入过多的乘法器,消耗了大量fpga资源;
(3)时域加窗的方式中,由于ram的使用,无法保证算法的全流水实现,降低了数据的运算效率。
解决上述技术问题的难度和意义:为了解决上述技术问题,需要在模块计算延时与资源消耗间取得平衡,减少fpga资源消耗可以提高模块的可移植性,并能够极大减小系统中其他功能模块的添加难度,此外,一定的计算延时可以保证系统的数据吞吐量,并减小其他复杂数据处理模块的设计难度。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种用于fpga的fbmc/oqam调制控制系统及方法、调制器。
本发明是这样实现的,一种用于fpga的fbmc/oqam调制控制系统,所述用于fpga的fbmc/oqam调制控制系统包括:
oqam预处理模块,用于完成qam映射以及奇数偶数信道的交替映射;
综合滤波器组模块,用于分别将奇数信道符号以及偶数信道符号调制成型;
数据延时模块,用于将偶数信道的调制符号延迟1/2个符号时间长度;
加法器模块,用于将两路信道的调制符号叠加,完成fbmc/oqam信号的的调制。
进一步,所述综合滤波器组模块包括一个ifft模块以及一个ppn模块;
ifft模块使用流水处理模式,输入数据与输出数据均为连续数据,直接使用fpga芯片厂商提供ip核的流水处理模式或自行编写;
ppn模块,完成重叠因子k取4时的fbmc调制器中的多相滤波网络;通过控制信号生成模块来控制rom地址以及输出数据有效信号。
进一步,所述ppn模块包括6个延时模块、8个乘法器模块、2个加法器模块、4个rom完成的滤波器系数生成模块以及控制信号生成模块;
滤波器系数由k与ifft阶数m确定,得到的滤波器系数按k采样并分别存储至4个rom中,为ppn提供卷积计算使用的滤波器系数;
延时模块,提取k个同一子载波上的数据送至乘法器进行运算,延时深度为m;
实部虚部的运算分别使用4个乘法器与一个四输入加法器完成卷积运算。
进一步,所述数据延时模块由三个延时模块构成,将偶数信道调制的fbmc符号延时半个符号周期输出,延时模块的延时深度为m/2。
进一步,所述加法器模块将两路信道的fbmc符号叠加,输入2路复数信号输出1路复数信号,输出数据长度由符号数量n、ifft调制阶数m以及重叠因子k确定。
本发明的另一目的在于提供一种所述用于fpga的fbmc/oqam调制控制系统的用于fpga的fbmc/oqam调制控制方法,所述用于fpga的fbmc/oqam调制控制方法包括:
步骤一,qam映射以及奇数偶数信道的交替映射;
步骤二,将奇数信道符号以及偶数信道符号调制成型;
步骤三,偶数信道的调制符号延迟1/2个符号时间长度;
步骤四,两路信道的调制符号叠加,完成fbmc/oqam信号的的调制。
进一步,所述步骤一具体包括:
(1)将输入信号进行qam调制,得到调制后的复数信号;
(2)将调制后的复数信号的实部和虚部分离;
(3)根据数据输入使能信号控制一位计数器以控制模块输出信号的虚实映射;
(4)计数器值为0时,实部信号由dout_0_r输出,虚部信号由dout_1_i输出;计数器值为1时,实部信号由dout_0_i输出,虚部信号由dout_1_r输出。
进一步,所述步骤二具体包括:
(1)将奇数信道输入信号通过ifft模块,完成ifft变换,得到串行复数信号以及数据使能信号;
(2)将ifft模块输出的数据使能信号输入控制信号生成模块,将该数据使能延时(k-1)m时间长度并与原信号取或,使用得到的信号控制计数器生成addr信号,并延时tp时间长度,得到data_valid信号,tp由以下公式定义:
tp=tmul+tadd
其中,tmul表示乘法器处理延时,tadd表示加法器处理延时。
(3)将(2)中得到的addr信号输入至四个rom中,dout端口输出滤波器系数信号;
(4)将(1)中得到的串行复数信号的实部虚部分别连续通过三个延时深度相同的延时模块,其中延时深度为m;
(5)将(1)中得到的复数信号以及(4)中得到的三个复数信号的实部虚部分别与其对应的(3)中得到的四个滤波器系数信号相乘,得到的结果输入至二个加法器中,得到输出信号的实部dout_r以及虚部dout_i;
(6)偶数信道输入信号重复(1)~(5)。
进一步,所述步骤三包括:
(1)将偶数信道中的数据使能data_valid输入至延时模块,延时深度为m/2,得到延时后的数据使能;
(2)将偶数信道中的复数信号的实部虚部分别输入至延时深度相同的延时模块,延时深度为m/2,得到延时后的复数信号;
进一步,所述步骤四包括:
(1)将奇数信道输入的数据使能din_0_en与偶数信道输入的数据使能din_1_en取或,得到输出数据使能data_valid;
(2)将奇数信道输入的复数信号与偶数信道输入的复数信号相加,得到输出的复数信号,其实部为dout_r,虚部为dout_i。
本发明的另一目的在于提供一种应用所述用于fpga的fbmc/oqam调制控制系统的调制器。
综上所述,本发明的优点及积极效果为:本发明可在fpga环境下设计编译,本发明共需使用2个m点ifft、4k个乘法器、5个加法器以及8个rom,相对于需使用2km个乘法器的频域扩展方法以及多相网络方法有效控制了fpga资源的使用,并使用流水线处理技术可使得fbmc/oqam信号连续快速完成调制处理。
附图说明
图1是本发明实施例提供的用于fpga的fbmc/oqam调制控制系统结构示意图;
图中:1、oqam预处理模块;2、综合滤波器组模块;3、数据延时模块;4、加法器模块。
图2是本发明实施例提供的用于fpga的fbmc/oqam调制控制方法流程图。
图3是本发明实施例提供的sfb模块的结构示意图。
图4是本发明实施例提供的ppn模块的结构示意图。
图5是本发明实施例提供的用于fpga的fbmc/oqam调制控制系统的时序仿真图。
图6是本发明实施例提供的用于fpga的fbmc/oqam调制控制系统的资源消耗图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供的用于fpga的fbmc/oqam调制控制系统包括:oqam预处理模块1、综合滤波器组模块2、数据延时模块3、加法器模块4。
oqam预处理模块1用于完成qam映射以及奇数偶数信道的交替映射;
综合滤波器组模块2(sfb),用于分别将奇数信道符号以及偶数信道符号调制成型;
数据延时模块3,用于将偶数信道的调制符号延迟1/2个符号时间长度;
加法器模块4,用于将两路信道的调制符号叠加,完成fbmc/oqam信号的的调制。
如图2所示,本发明实施例提供的用于fpga的fbmc/oqam调制控制方法包括以下步骤:
s201:qam映射以及奇数偶数信道的交替映射;
s202:将奇数信道符号以及偶数信道符号调制成型;
s203:偶数信道的调制符号延迟1/2个符号时间长度;
s204:两路信道的调制符号叠加,完成fbmc/oqam信号的的调制。
下面结合附图对本发明的应用原理作进一步的描述。
oqam预处理模块1为流水处理模块,其基本思想是将qam信号以虚实间隔方式进行调制。其工作原理为:(1)将输入信号进行qam调制,得到调制后的复数信号;(2)将调制后的复数信号的实部和虚部分离(3)根据数据输入使能信号控制一位计数器以控制模块输出信号的虚实映射;(4)计数器值为0时,实部信号由dout_0_r输出,虚部信号由dout_1_i输出;计数器值为1时,实部信号由dout_0_i输出,虚部信号由dout_1_r输出。
sfb模块2包括一个ifft模块以及一个ppn模块,模块间相互连接方式如图3所示。其中,ifft模块使用流水处理模式,输入数据与输出数据均为连续数据,可直接使用fpga芯片厂商提供ip核的流水处理模式或自行编写,但应保证输入输出数据均为连续数据。
本发明所述ppn模块完成了重叠因子k取4时的fbmc调制器中的多相滤波网络,该模块包括6个延时模块、8个乘法器模块、2个加法器模块、4个rom完成的滤波器系数生成模块以及控制信号生成模块,模块间相互连接方式如图4所示。其中,滤波器使用phydyas原型滤波器,滤波器系数由k与ifft阶数m确定,将得到的滤波器系数按k采样并分别存储至4个rom中,为ppn提供卷积计算使用的滤波器系数。6个延时模块分为2组同时工作,提取k个同一子载波上的数据送至乘法器进行运算,其延时深度为m。实部虚部的运算分别使用4个乘法器与一个四输入加法器完成卷积运算。整个ppn模块通过控制信号生成模块来控制rom地址以及输出数据有效信号。
本发明所述的数据延时模块3由三个延时模块构成,将偶数信道调制的fbmc符号延时半个符号周期输出,其中,延时模块的延时深度为m/2。
加法器模块4将两路信道的fbmc符号叠加,输入2路复数信号输出1路复数信号,其输出数据长度由符号数量n、ifft调制阶数m以及重叠因子k确定。
综上所述,本发明设计了一种适用于fpga的fbmc/oqam调制器的设计方法,使用该方法设计的fbmc/oqam调制器共使用16个乘法器、5个加法器以及2个ifft模块,可直接用于fpga,并在保证调制器连续输入输出数据的情况下有效降低了数学运算模块的使用。
下面结合仿真对本发明的应用效果作详细的描述。
本发明所述的实施例的时序仿真图如图5所示,clk为模块使用的统一时钟信号,din_r与din_i分别为输入信号的实部与虚部,din_en为输入信号使能,dout_r与dout_i分别表示调制后信号的实部与虚部,dout_valid为调制后信号使能。经测定,输出信号为输入信号经过fbmc/oqam调制后得到的信号,数据处理总延时219个时钟长度,小于4个符号长度,说明本实施例能够快速完成fbmc/oqam信号的调制。
本发明所述的实施例的fpga资源使用情况如图6所示,其中,ram资源占用5,主要用于rom的生成;dsp资源占用56,主要用于ifft模块以及乘法器;fpga逻辑资源占用3158,主要用于实施例剩余部分模块。如图6所示,本发明所述实施例的fpga资源占用仅为资源总量的1%,说明本实施例能够以少量的fpga资源完成调制器的设计。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。