一种FIR抽取滤波器的数据处理方法技术

技术编号:21838137 阅读:27 留言:0更新日期:2019-08-10 20:09
一种FIR抽取滤波器的数据处理方法,包括:S1,将滤波器分解为

A Data Processing Method for FIR decimation Filter

【技术实现步骤摘要】
一种FIR抽取滤波器的数据处理方法
本公开涉及信号处理
,具体地,涉及一种FIR抽取滤波器的数据处理方法。
技术介绍
低频射电频谱仪是安装在嫦娥四号着陆器平台上的空间低频射电信号观测仪器,其通过探测来自太阳、太阳行星际空间及银河系空间等的低频电场,分析电场的频谱信息,实现对太阳低频射电特征和月表低频辐射环境的探测。根据低频射电频谱仪的技术要求,探测仪的工作频率为0.1-40MHz,为了保证接收信号的灵敏度和频率分辨率,分为两个频段进行接收,其中低频段频率范围为0.1-2MHz,频率分辨率优于10kHz,高频段频率范围为1-40MHz,频率分辨率优于200kHz。低频射电频谱仪采用有限脉冲响应(Finiteimpulseresponse,FIR)抽取滤波器对高速模数转换器(Analog-to-DigitalConverter,ADC)量化数据进行低通滤波,得到低频段时域数据,然后进行频谱分析。为了降低低频射电频谱仪系统的实现难度和硬件成本,在实现FIR抽取滤波器的功能时,对FIR抽取滤波器的算法提出占用资源少、计算速度快等要求。
技术实现思路
(一)要解决的技术问题本公开提供了一种FIR抽取滤波器的数据处理方法,以至少解决以上技术问题。(二)技术方案本公开提供了一种FIR抽取滤波器的数据处理方法,包括:S1,将滤波器分解为个子滤波器,其中,N为所述滤波器中系数的个数,D为所述子滤波器中系数的个数;S2,为每一所述子滤波器定义一数据寄存器;S3,接收到待滤波数据后,每一所述子滤波器分别根据其系数和相应的数据寄存器的值对所述待滤波数据进行乘加处理;S4,判断已滤波数据的个数是否为D的整数倍,若不是,每一所述子滤波器将其乘加结果保存至相应的数据寄存器,否则,每一所述子滤波器将其乘加结果保存至其前一个子滤波器相应的数据寄存器,清零最后一个所述子滤波器相应的数据寄存器,并输出第一个所述子滤波器的乘加结果。可选地,所述步骤S2还包括:为每一所述子滤波器设置一相应的长度为D的循环移位寄存器,所述循环移位寄存器用于存放相应的所述子滤波器的系数。可选地,所述步骤S4之后还包括:S5,每一所述循环移位寄存器中存放的系数循环移动1位;S6,重复执行步骤S3-S5,直至无所述待滤波数据。可选地,所述循环移动1位为向左循环移动1位或向右循环移动1位。可选地,所述步骤S1之前还包括:S0,当N不等于D的整数倍时,在所述滤波器中系数的末端添加个系数0。可选地,所述步骤S1包括:从左至右,在所述滤波器的个系数中选取D个系数以形成第一个所述子滤波器,重复上述操作,直至形成第个所述子滤波器。可选地,所述步骤S3中对所述待滤波数据进行乘加处理包括:将所述待滤波数据与所述子滤波器的第一系数相乘,并与该子滤波器相应的数据寄存器中的值相加。可选地,当所述已滤波数据的个数不是D的整数倍时:Tn=Tn′+x·Vn′(0),其中,x为待滤波数据,Tn为待滤波数据处理后第n个数据寄存器的值,Tn′为待滤波数据处理前该第n个数据寄存器的值,Vn′(0)为第n个子滤波器的第一系数。可选地,当所述已滤波数据的个数是D的整数倍时:Tn=Tn+1′+x·Vn+1′(0),Tout=T1′+x·V1′(0),其中,x为待滤波数据,Tn为待滤波数据处理后第n个数据寄存器的值,Tn+1′为待滤波数据处理前第n+1个数据寄存器的值,为待滤波数据处理后第个数据寄存器的值,Vn+1′(0)为待滤波数据处理前第n+1个子滤波器的第一系数,V1′(0)为待滤波数据处理前第一个子滤波器的第一系数。可选地,所述数据寄存器的长度为1,所述数据寄存器的初始值为0。(三)有益效果本公开提供的FIR抽取滤波器的数据处理方法具有以下有益效果:(1)该FIR抽取滤波器仅需要个乘法器和个加法器,其占用的硬件计算资源少;(2)该FIR抽取滤波器仅需要个循环移位寄存器和个数据寄存器,以存储滤波器系数和中间结果,其占用的存储资源少;(3)可实时输出抽取滤波后的结果,其计算效率高;(4)实现步骤简单,可应用于其它软件无线电系统,适用性广。附图说明图1示意性示出了本公开实施例提供的FIR抽取滤波器的数据处理方法的流程图。图2示意性示出了本公开实施例提供的FIR抽取滤波器的数据处理方法的工作流程图。图3A示意性示出了待抽取滤波的波形数据。图3B示意性示出了传统方法滤波后的数据。图3C示意性示出了本公开实施例提供的FIR抽取滤波器的数据处理方法抽取滤波后的数据。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。本实施例提供了一种FIR抽取滤波器的数据处理方法,参阅图1,结合图2、图3A、图3B和图3C对该方法进行详细说明,该方法包括以下操作。S1,将滤波器分解为个子滤波器,其中,N为滤波器中系数的个数,D为子滤波器中系数的个数。首先,在操作S1之前,判断滤波器中系数的个数N是否为子滤波器中系数的个数D的整数倍,当N不等于D的整数倍时,在滤波器中系数的末端添加个系数0。其中,表示对N/D进行向上取整,例如N=58,D=20时,此时需要在滤波器系数的末端添加两个系数0;N=60,D=20时,此时无需在滤波器系数的末端添加系数0。然后,从左至右,在滤波器的个系数中依次选取D个系数以形成第一个子滤波器W1,重复该操作,依次形成第二个子滤波器W2、第三个子滤波器W3、……第个子滤波器滤波器中系数为h(n),每个子滤波器中系数如下:第一个子滤波器W1:h(0)、h(1)、h(2)、……、h(D-1);第二个子滤波器W2:h(D)、h(D+1)、h(D+2)、……、h(2D-1);第三个子滤波器W3:h(2D)、h(2D+1)、h(2D+2)、……、h(3D-1);以此类推,第个子滤波器h(kD)、h(kD+1)、h(kD+2)、……、h(kD+D-1),其中,以滤波器中系数的个数N=60、子滤波器中系数的个数D=20、滤波器中系数为h(n)为例,其中0≤n≤N-1,可将滤波器分解为3个子滤波器W1、W2、W3,每个子滤波器中系数如下:第一个子滤波器W1:h(0)、h(1)、h(2)、……、h(19);第二个子滤波器W2:h(20)、h(21)、h(22)、……、h(39);第三个子滤波器W3:h(40)、h(41)、h(42)、……、h(59)。S2,为每一子滤波器定义一数据寄存器。为每一个子滤波器定义一个长度为1的数据寄存器并清零,即数据寄存器的初始值为0,每个子滤波器对应一数据寄存器,共定义有个数据寄存器,用于存放处理方法中间的乘加结果。以上述N=60、D=20示例为例,需定义三个数据寄存器T1、T2、T3,分别对应子滤波器W1、W2、W3。T1存放W1的中间乘加结果,T2存放W2的中间乘加结果,T3存放W3的中间乘加结果。为每一个子滤波器设置一个长度为D的循环移位寄存器,每个子滤波器对应一循环移位寄存器,共设置有个循环移位寄存器;并将每一个子滤波器的系数输入其相应的循环移位寄存器,循环移位寄存器对存入其中的子滤波器系数进行保存。以上述N=60、D=20示例为例,需定义三个循环移位寄存器V1、V2、V3,分别对应子滤波器W1、W2、W3。V本文档来自技高网...

【技术保护点】
1.一种FIR抽取滤波器的数据处理方法,包括:S1,将滤波器分解为

【技术特征摘要】
1.一种FIR抽取滤波器的数据处理方法,包括:S1,将滤波器分解为个子滤波器,其中,N为所述滤波器中系数的个数,D为所述子滤波器中系数的个数;S2,为每一所述子滤波器定义一数据寄存器;S3,接收到待滤波数据后,每一所述子滤波器分别根据其系数和相应的数据寄存器的值对所述待滤波数据进行乘加处理;S4,判断已滤波数据的个数是否为D的整数倍,若不是,每一所述子滤波器将其乘加结果保存至相应的数据寄存器,否则,每一所述子滤波器将其乘加结果保存至其前一个子滤波器相应的数据寄存器,清零最后一个所述子滤波器相应的数据寄存器,并输出第一个所述子滤波器的乘加结果。2.根据权利要求1所述的FIR抽取滤波器的数据处理方法,其中,所述步骤S2还包括:为每一所述子滤波器设置一相应的长度为D的循环移位寄存器,所述循环移位寄存器用于存放相应的所述子滤波器的系数。3.根据权利要求2所述的FIR抽取滤波器的数据处理方法,其中,所述步骤S4之后还包括:S5,每一所述循环移位寄存器中存放的系数循环移动1位;S6,重复执行步骤S3-S5,直至无所述待滤波数据。4.根据权利要求3所述的FIR抽取滤波器的数据处理方法,其中,所述循环移动1位为向左循环移动1位或向右循环移动1位。5.根据权利要求1所述的FIR抽取滤波器的数据处理方法,其中,所述步骤S1之前还包括:S0,当N不等于D的整数倍时,在所述滤波器中系数的末端添加个系数0。6.根据权利要求5所述的FIR抽取滤波...

【专利技术属性】
技术研发人员:赵博李士东柳青纪奕才
申请(专利权)人:中国科学院电子学研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1