发明名称 基于相同FPGA乘法器资源实现的任意抽取数字下变频方法
摘要 本发明涉及一种基于相同FPGA乘法器资源实现的任意抽取数字下变频方法,充分利用FPGA的内部资源,使用移位寄存器进行数据顺序的改变,将两路一倍数据率的数据变换成一路两倍数据率的数据,按照系数对称的原则进行预加处理。使用相同的乘法器资源,在不同抽取率条件下复用这些乘法器,以实现不同抽取率的数字下变频运算,抽取率可为任意整数。本发明的优越性在于:使用相同的乘法器资源实现不同抽取的数字下变频处理;抽取率可以为任意整数。
申请公布号 CN103078592B 申请公布日期 2015.12.09
申请号 CN201210590839.6 申请日期 2012.12.28
申请人 西安电子工程研究所 发明人 袁子乔;刘翔;王辉辉
分类号 H03D7/00(2006.01)I 主分类号 H03D7/00(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 一种基于相同FPGA乘法器资源实现的任意抽取数字下变频方法,其特征在于步骤如下:步骤1:将XMHz数据率的数据与数字本振产生的正弦相乘得到混频后的数据I<sub>mix</sub>(0),与数字本振产生的余弦数据相乘得到混频后的Q<sub>mix</sub>(0);步骤2:采用移位寄存器对数据I<sub>mix</sub>(0)进行N个XMHz时钟周期的延时,得到I<sub>mix</sub>(1N);所述N为抽取率;采用移位寄存器对数据I<sub>mix</sub>(1N)进行N个XMHz时钟周期的延时,得到I<sub>mix</sub>(2N),采用同样的方法分别得到I<sub>mix</sub>(3N)、I<sub>mix</sub>(4N)、I<sub>mix</sub>(5N)、I<sub>mix</sub>(6N)、I<sub>mix</sub>(7N)、I<sub>mix</sub>(8N)、I<sub>mix</sub>(9N)、I<sub>mix</sub>(10N);所述N为抽取率;步骤3:使用可变延时的移位寄存器,以输入的I<sub>mix</sub>(9N)数据中的N个数据为一组,奇数组与相邻的偶数组相互交换,得到输出数据I<sub>mix</sub>(11N);步骤4:采用移位寄存器对数据I<sub>mix</sub>(11N)进行N个XMHz时钟周期的延时,得到I<sub>mix</sub>(12N),采用同样的方法分别得到I<sub>mix</sub>(13N)、I<sub>mix</sub>(14N)、I<sub>mix</sub>(15N)、I<sub>mix</sub>(16N)、I<sub>mix</sub>(17N)、I<sub>mix</sub>(18N)、I<sub>mix</sub>(19N)、I<sub>mix</sub>(20N);步骤5:产生系数对称的20N阶抽取滤波器权系数,将其中系数的第1~2N存在只读存储器ROM1中、系数的第2N+1~4N存在只读存储器ROM2中、系数的第4N+1~6N存在只读存储器ROM3中、系数的第6N+1~8N存在只读存储器ROM4中、系数的第8N+1~10N存在只读存储器ROM5中;步骤6:以两倍速率时钟2XMHz为时钟,以复位信号sclr上升沿为起始,同步计数产生数据选择信号sel信号、flag信号以及滤波器系数读地址raddr;当sel信号为0时,I<sub>2x</sub>(1N)等于I<sub>mix</sub>(1N)、I<sub>2x</sub>(1N)等于I<sub>mix</sub>(3N)、I<sub>2x</sub>(3N)等于I<sub>mix</sub>(5N)、I<sub>2x</sub>(4N)等于I<sub>mix</sub>(7N)、I<sub>2x</sub>(5N)等于I<sub>mix</sub>(9N)、I<sub>2x</sub>(6N)等于I<sub>mix</sub>(11N)、I<sub>2x</sub>(7N)等于I<sub>mix</sub>(13N)、I<sub>2x</sub>(8N)等于I<sub>mix</sub>(15N)、I<sub>2x</sub>(9N)等于I<sub>mix</sub>(17N)、I<sub>2x</sub>(10N)等于I<sub>mix</sub>(19N);当sel信号为1时,I<sub>2x</sub>(1N)等于I<sub>mix</sub>(2N)、I<sub>2x</sub>(1N)等于I<sub>mix</sub>(4N)、I<sub>2x</sub>(3N)等于I<sub>mix</sub>(6N)、I<sub>2x</sub>(4N)等于I<sub>mix</sub>(8N)、I<sub>2x</sub>(5N)等于I<sub>mix</sub>(10N)、I<sub>2x</sub>(6N)等于I<sub>mix</sub>(12N)、I<sub>2x</sub>(7N)等于I<sub>mix</sub>(14N)、I<sub>2x</sub>(8N)等于I<sub>mix</sub>(16N)、I<sub>2x</sub>(9N)等于I<sub>mix</sub>(18N)、I<sub>2x</sub>(10N)等于I<sub>mix</sub>(20N);步骤7:将I<sub>2x</sub>(1N)、I<sub>2x</sub>(10N)送给乘法器模块1的A和D端,I<sub>2x</sub>(1N)对应的滤波器系数送给乘法器模块1的B端;所述的乘法器模块1为实现(A+D)×B以及(A+D)×B+P运算的乘法器模块;所述滤波器系数根据滤波器系数读地址raddr从只读存储器ROM1中读出,flag为1时进行(A+D)×B运算,flag为0时进行(A+D)×B+P;将I<sub>2x</sub>(2N)、I<sub>2x</sub>(9N)送给乘法器模块2的A和D端,I<sub>2x</sub>(2N)对应的滤波器系数送给乘法器模块2的B端;所述的乘法器模块2为实现(A+D)×B以及(A+D)×B+P运算的乘法器模块;所述滤波器系数根据滤波器系数读地址raddr从只读存储器ROM2中读出,flag为1时进行(A+D)×B运算,flag为0时进行(A+D)×B+P;将I<sub>2x</sub>(3N)、I<sub>2x</sub>(8N)送给乘法器模块3的A和D端,I<sub>2x</sub>(3N)对应的滤波器系数送给乘法器模块3的B端;所述的乘法器模块3为实现(A+D)×B以及(A+D)×B+P运算的乘法器模块;所述滤波器系数根据滤波器系数读地址raddr从只读存储器ROM3中读出,flag为1时进行(A+D)×B运算,flag为0时进行(A+D)×B+P;将I<sub>2x</sub>(4N)、I<sub>2x</sub>(7N)送给乘法器模块4的A和D端,I<sub>2x</sub>(4N)对应的滤波器系数送给乘法器模块4的B端;所述的乘法器模块4为实现(A+D)×B以及(A+D)×B+P运算的乘法器模块;所述滤波器系数根据滤波器系数读地址raddr从只读存储器ROM4中读出,flag为1时进行(A+D)×B运算,flag为0时进行(A+D)×B+P;将I<sub>2x</sub>(5N)、I<sub>2x</sub>(6N)送给乘法器模块5的A和D端,I<sub>2x</sub>(5N)对应的滤波器系数送给乘法器模块5的B端;所述的乘法器模块5为实现(A+D)×B以及(A+D)×B+P运算的乘法器模块;所述滤波器系数根据滤波器系数读地址raddr从只读存储器ROM5中读出,flag为1时进行(A+D)×B运算,flag为0时进行(A+D)×B+P;步骤8:将flag信号产生时延时N个周期得到有效信号fir_v,当fir_v为1时,将五个乘法器的输出数据P1、P2、P3、P4和P5进行求和得到任意抽取的DDC的I路输出;以Q<sub>mix</sub>(0)数据替换I<sub>mix</sub>(0),按照步骤2~步骤8的处理方法,得到任意抽取的DDC的Q路输出。
地址 710100 陕西省西安市长安区凤栖东路