基于多相滤波器的任意延时方法与流程

文档序号:15878223发布日期:2018-11-09 17:22阅读:933来源:国知局
基于多相滤波器的任意延时方法与流程

本发明涉及数字信号处理技术领域,特别涉及一种基于多相滤波器的任意延时方法。

背景技术

在数字信号处理领域,对信号的延时处理是比较常用也是非常重要的,延时处理在相控阵天线的波束成型、延时相关、多通道相参校准、数字接收器的时间调整等方面均有广泛的应用。在这些应用中,大部分应用对延时的精度具有较高的要求,而传统的整数延时是采用数字方式进行延时,但现有的a/d采样速率是有限的,不可能无限高,因此延时精度受到限制。

参阅图1a、1b,为了提升延时精度,一般采用内插、滤波、延时、抽取的方式,通过增加信号的采样率来降低延时步进并保证输出采样率与输入采样率相一致,从而使得延时精度不再受限于原始采样时钟周期。其流程大致如下:

1、将延时分解为粗延时d·ts和细延时δ·ts;

2、将信号进行d个采样点的粗延时;

3、进行细延时:

(1)将信号进行i倍内插提高采样率,缩小采样时间为

(2)计算当前采样率下细延时δ·ts对应的整数倍个t′s,即δ·ts≈d′·t′s;

(3)将内插后的信号进行整数倍d′采样点的延时;

4、对延时后的信号进行i倍抽取,获取原采样率下延时后的信号。

这种方法的优点是能够不受限于原始信号的采样率,其缺点也比较明显,即内插滤波的运算量大。



技术实现要素:

本发明的目的在于提供一种基于多相滤波器的任意延时方法,可以实现高精度的任意小数延时。

为实现以上目的,本发明采用的技术方案为:一种基于多相滤波器的任意延时方法,包括如下步骤:(a)将延时分解为整数延时和小数延时:t=d·ts+δ·ts,获得整数延时d和小数延时δ;(b)将原型fir滤波器分解为i相滤波器,每相的滤波器系数个数为k,经过多相分解之后的滤波器系数通过以下映射方式获得:pi(k)=h(k·i+i);i=0,1,...,i-1;k=0,1,...,k-1,其中h(k·i+i)为fir滤波器系数;(c)记x=δ·i,若x∈{0,1,...,i-1},则直接根据步骤b中的映射方式获得滤波器系数px(k);否则,通过牛顿法拟合滤波器系数,获取x值对应的虚拟子滤波器的系数px(k);(d)将整数延时d和小数延时对应的滤波器系数px(k)配置到相应的位置;(e)将输入信号通过d级级联寄存器或者fifo后输出获得整数倍延时d·ts;(f)将经过整数倍延时的信号再通过系数为px(k)的滤波器后输出即可。

与现有技术相比,本发明存在以下技术效果:本发明将延时分解为整数倍采样周期的延时和小数倍采样周期的延时,通过利用整数延时方法以及多相滤波器的分解、小数延时滤波器的牛顿法拟合,实现对输入信号进行任意延时,该延时方法精度高、性能好,可满足阵列信号延时等应用的要求;同时该方法运算量小,便于软件及fpga实现。

附图说明

图1a、1b是现有技术中两种多相内插滤波器的结构示意图;

图2是本发明的信号任意延时实现框图;

图3是本发明整数延时的实现框图;

图4是本发明小数延时的实现框图,其中不需要拟合滤波器系数;

图5是本发明小数延时的实现框图,其中需要对滤波器系数进行拟合;

图6是将原型滤波器分解为i个多相结构的子滤波器示意图;

图7是在图6的基础上进行虚拟子滤波器系数拟合示意图。

具体实施方式

下面结合图2至图7,对本发明做进一步详细叙述。

参阅图2,一种基于多相滤波器的任意延时方法,包括如下步骤:(a)将延时分解为整数延时和小数延时:t=d·ts+δ·ts,获得整数延时d和小数延时δ,其中ts为采样周期;设计原型fir滤波器h(n),此为固定滤波器系数,可先采用matlab等工具设计好。(b)参见图6,将原型fir滤波器分解为i相滤波器,每相的滤波器系数个数为k,经过多相分解之后的滤波器系数通过以下映射方式获得:pi(k)=h(k·i+i);i=0,1,...,i-1;k=0,1,...,k-1,;其中h(k·i+i)为fir滤波器系数,这里的i和k都是正整数。(c)记x=δ·i,若x∈{0,1,...,i-1},说明小数延时正好对应分解后的某一相子滤波器的输出,则直接根据步骤b中的映射方式获得滤波器系数px(k),如图4所示;否则,通过牛顿法拟合滤波器系数,获取x值对应的虚拟子滤波器的系数px(k),如图5所示,此时的小数延时正好对应拟合的虚拟子滤波器的输出。(d)将整数延时d和小数延时对应的滤波器系数px(k)配置到相应的位置;(e)将输入信号通过d级级联寄存器或者fifo后输出获得整数倍延时d·ts;(f)将经过整数倍延时的信号再通过系数为px(k)的滤波器后输出即可。本发明将延时分解为整数倍采样周期的延时和小数倍采样周期的延时,通过利用整数延时方法以及多相滤波器的分解、小数延时滤波器的牛顿法拟合,实现对输入信号进行任意延时,该延时方法精度高、性能好,可满足阵列信号延时等应用的要求;同时该方法运算量小,便于软件及fpga实现。

以上步骤中,步骤a-d是初始化的过程,可以在软件中完成,且只需要一次;对于信号的延时处理主要是通过整数延时以及一个滤波器完成的,即步骤e和步骤f。因此运算量比较小。

虚拟子滤波器的系数px(k)可以有多种方式来拟合,本发明中优选地,所述的步骤c中,按如下方式获取x值对应的虚拟子滤波器px(k)的系数:

(s1)计算滤波器系数的0~i-1阶差分:

零阶:p0(k)、p1(k)、...、pi-1(k);

一阶:δp0(k)=p1(k)-p0(k)、δp1(k)=p2(k)-p1(k)、...、

δpi-2(k)=pi-1(k)-pi-2(k);

二阶:δ2p0(k)=δp1(k)-δp0(k)、δ2p1(k)=δp2(k)-δp1(k)、...、δ2pi-3(k)=δpi-2(k)-δpi-3(k);

……

i-1阶:δi-1p0(k)=δi-2p1(k)-δi-2p0(k);

(s2)根据下列公式计算j:

(s3)将步骤s1和s2中计算到的数据代入下式中计算得到px(k):

式中k=0,1,...,k-1。通过上述步骤计算得到的虚拟子滤波器px(k)的系数非常精确,这就保证了延时的高精度。

具体地,在设计原型滤波器时,一般原型fir滤波器的系数个数m正好可以分解为两个整数相乘,这样就可以保证进行i相分解时,每相的滤波器个数相等。但也有可能存在不能分解的情况,即所述的步骤b中,若原型fir滤波器的系数个数m不能够分解为两个整数i和k相乘,则需要对原型fir滤波器系数补零来实现m′=i·k,其中m′为补零后的滤波器系数个数。

整数延时比较简单,可以通过采用移位寄存器或者fifo的方式,直接对原始信号按采样点进行搬移即可。整数延时下,信号延时量为d·ts,其中d为正整数。在实际实现中,如果d比较小,可以采用d级移位寄存器进行实现,如图3所示。如果d过大,可以采用存储器代替寄存器进行长时间延时。即采用fifo实现,其步骤如下:(e1)将输入信号缓存到fifo中,fifo的存储深度大于整数延时d,否则会溢出;(e2)等待整数延时d后,再将数据从fifo中读取出来并输出即完成延时。

下面从原理上来详细阐述下以上流程。假设原型fir滤波器的数字个数为m,将其分解为i相滤波器,每相的滤波器系数个数为k,则m=k·i。经过多相分解之后的滤波器系数可以通过以下映射方式获得:pi(k)=h(k·i+i);i=0,1,...,i-1;k=0,1,...,k-1,其中h(k·i+i)为fir滤波器系数。

因此,可以将该映射按自然顺序填充相继的列将一维序列h(n)(fir滤波器系数)映射为i行k列的二维数组,每一行的k个值为一个子滤波器的系数,原fir滤波器则分解为i个多相结构的子滤波器,如图6所示。

据传统的多相滤波器延时原理可知,输入的信号先提升采样率、延时后还需要再进行抽取,实际处理时没有必要对原始的信号采样率进行提升。因此,本发明在此基础上进行优化,参见多相内插滤波器第二种结构即图1b,由于该内插滤波器在开关转换之后输出采样率相比输入提升了i倍,同时由于输出是由开关输入i路原始采样率信号合成,因此开关转换之前的i路输出信号之间具有严格的延时关系:即具有不同延时,假设第0路信号的延时为0,则第一路信号延时为ts/i,第二路信号延时为2ts/i,…,第i-1路信号延时为(i-1)ts/i。

本发明中,当小数延时正好是{0、ts/i、2ts/i、...、(i-1)ts/i}这些时间里的任何一个,通过开关直接固定连接在当前相应的位置即可实现对输入信号的固定延时,如图4所示。当δ·ts=i·ts/i时,将开关固定连接在第i路输出,如图4中实线所示,则得到对输入进行j·ts/i延时的输出。该多相滤波器经过分解后,pi(k)即为用于计算延时为i·ts/i的子滤波器。由于小数延时是任意的,所以会存在小数延时不属于{0、ts/i、2ts/i、...、(i-1)ts/i}这些时间里的任何一个,而是介于其中两个时间的中间,此时,通过虚拟出一个子滤波器,如图7所示,并通过拟合的方式,将该虚拟子滤波器px(k)的系数计算出来,然后,将开关固定连接在该虚拟子滤波器上输出即可实现任意时间的小数延时。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1