一种基于fpga的多通道数字滤波器的制造方法

文档序号:7527593阅读:278来源:国知局
一种基于fpga的多通道数字滤波器的制造方法
【专利摘要】本发明公开了一种基于FPGA的多通道数字滤波器,将低通滤波器内核与外部多路数据通道、分频计数器、开关计数器和上升沿检测器封装。该分频计数器将上升沿有效的外部输入提示信号ND到或因计数满1000将输出拉高电平后,将计数值复位至0。开关计数器对分频计数器的输出进行计数,且根据该开关计数器的输出驱动通道的切换。本发明相比现有技术具有以下优点:本发明的一种基于FPGA的多通道数字滤波器,将滤波功能设计为一个固定的核,不同路的信号通过不同时间阀片来轮询使用内核,通过分频计数器、开关技术器实现多路信号对滤波核的共用,并对低通滤波器内核的数据先放大计算后再缩小,以保持计算过程中的精度不丢失。
【专利说明】—种基于FPGA的多通道数字滤波器

【技术领域】
[0001]本发明涉及滤波器,尤其涉及的是一种基于FPGA的多通道数字滤波器。

【背景技术】
[0002]诸如电力、图像处理、雷达、气象领域中很多电子系统需要将多路信号进行滤波处理,这些信号的滤波往往计算量大、速度要求高、延时要小。随着数字滤波系统对宽带、高速、实时信号处理要求越来越高,对滤波器的处理速度、带宽等性能要求也随之提高。以前多用数字处理器DSP芯片编程实现,它们主要的数学运算单元是乘累加器(MAC)。MAC能在一个机器时钟周期内完成一次乘累加运算,同时硬件上配备不同等级的流水结构和哈佛结构,能够实现高速实时的数字信号处理。但由于其一个时钟周期只能进行一个计算,因此所有的计算均是串行处理,对于单路的信号处理尚可以接受,对于多路的信号处理,势必带来很长时间的延时,很容易就超过了系统的采样周期,使系统设计无法实现。所以必须寻找一种新型的技术或器件能够实现并行运算,也就是说在一个芯片中可以实现多个类似DSP芯片的功能单元,而FPGA用作数字信号处理的运算,其中的乘累加运算可以实现大多数数字信号处理算法,而强大的并行处理能力,则能够大大提高乘累加运算的效能。FPGA具有灵活的可编程逻辑,突破了并行处理与水平级数的限制,可以很好的实现信号处理的实时性。同时,开发程序的可移植性好,可以缩短开发周期;由于软件是烧至内部逻辑单元,所以不易破解,保密性强;但即便FPGA可以实现并行计算,一个芯片中可以实现多个相同的功能单元,但如果在多路数据处理时,每一路均单独使用一路处理单元,往往一块芯片仅能实现很有限的几路信号,基于这种情况,必须得使用“时间换空间”的设计策略,使其既能够实现快速处理,又能在同一块芯片上实现多路的计算。


【发明内容】

[0003]本发明的目的在于克服现有技术的不足,提供了一种基于FPGA的多通道数字滤波器,利用FPGA内部资源,实现低通滤波器内核,再通过多通道封装技术将内核打包成具有多通道滤波功能的滤波器。
[0004]本发明是通过以下技术方案实现的:一种基于FPGA的多通道数字滤波器,LP_Filter内核与外部多路数据通道、分频计数器、开关计数器和上升沿检测器封装,每个数据通道内设周期为1000的时间阀片,外部的数字输入信号在通道内传输经两级FIFO寄存器处理,经一级FIFO寄存器处理为一步时延输入信号,经两级FIFO寄存器处理为两步时延输入信号,该数字输入信号、一步时延输入信号、两步时延输入信号均通过三态开关接入低通滤波器LP_Filter内核;该分频计数器将上升沿有效的外部输入提示信号ND到或因计数满1000将输出拉高电平后,将计数值复位至0,从新计数;该开关计数器对分频计数器的输出进行计数,且根据该开关计数器的输出驱动通道的切换;该上升沿检测器接受开关计数器的信号,判断是否产生一个上升的上升沿电平,并通知下级功能模块读取数据。
[0005]作为上述方案的进一步优化,低通滤波器LP_Filter内核中集成第一加法器、第二加法器、第三加法器、第四加法器、第五加法器,第一乘法器、第二乘法器、第三乘法器、第一移位寄存器和第二移位寄存器,数字输入信号Xn经低通滤波器LP_Filter内核处理后输出数字输出信号yn,其信号处理步骤如下:
[0006]I)、数字输入信号Xn和两步时延数字输入信号xn_2经第一加法器合成为33位宽度的数字信号Xtl2;
[0007]2)、两个一步时延数字输入信号Xlri经第二加法器合成为33位宽度的数字信号
xIl ?
[0008]3)、数字信号Xtl2和X η经第三加法器合成为34位宽度的数字信号X 012;
[0009]4)、数字信号Xtll2经第一乘法器与滤波系数C Χ(ι合成为69位宽度的数字信号X 69;
[0010]5)数字信号X69经第一移位寄存器截断处理为32位宽度的数字信号X 32;
[0011]6)两步时延数字输出信号yn_2和滤波系数Cy2经第三乘法器合成为67位宽度的数字信号y21;
[0012]7) 一步时延数字输出信号yn_i和滤波系数Cyl经第二乘法器合成为67位宽度的数字信号y11;
[0013]8)数字信号y21和y n经第四加法器合成为68位宽度的数字信号y 68;
[0014]9)数字信号y68经第二移位寄存器截断处理为32位宽度的数字信号y 32;
[0015]10)经截断处理的数字信号y32和X 32经第五加法器合成为32位宽度的输出数字输出信号yn。
[0016]本发明的一种基于FPGA的多通道数字滤波器,为了实现多个通道的数据共用一个滤波器内核,将多个通道的输入数据与输出结果用多路开关的方式接入至上述的低通滤波内核中,并给出一段固定的延时。延时用计数器实现,延时计数器将时钟CLK信号作为计数源信号,当外部给出新的采样数据时,通过ND信号通知计数器开始计数,当计数值达到1000时就将输出信号给出1us的上升沿信号,以驱动下一级的多路开关驱动信号;多路开关驱动信号也是一个计数器,其计数信号源为上一级计数器的输出,每当输入信号有上升沿跳变时便将输出信号做加I操作,如果输出达到2时就复位至0,其输出去驱动输入输出口线上的多路开关,以使各个信号在多组数据通道间转换。因为数字滤波器的计算过程需要用到过去几个采样点的数据,所以必须将过去几个点的数据进行存储并在下次计算时应用,此处应用了 2级的FIFO (先入先出寄存器),每当新的数据打入后,先前的数据就移出,以此来实现旧数据的存储与移动。当所有多组滤波数据均计算完毕后就给出RDY信号,通知外部其它单元数据已经计算完毕,可以读取数据,进行下一步的应用或计算。
[0017]本发明相比现有技术具有以下优点:本案中设计的一种基于FPGA的多通道数字滤波器采用这种独特的设计思路,将滤波功能设计为一个固定的核,而不同路的信号通过不同的时间阀片来轮询使用这个核,通过分频计数器、开关技术器实现多路信号对滤波核的共用,在时间与空间均满足要求的情况下实现设计思路。而由于滤波器的系数以及输入量很可能是些比较小的小数值,为了保持计算过程中的精度不丢失,对低通滤波器LP_Filter内核的数据先放大计算后再缩小的处理方式。

【专利附图】

【附图说明】
[0018]图1是本发明的一种基于FPGA的多通道数字滤波器的结构原理图。
[0019]图2为图1中的低通滤波器LP_Filter内核的数据处理方法原理图。

【具体实施方式】
[0020]下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0021]参见图1和图2,为三路通道的优选实施例的一种基于FPGA的多通道数字滤波器,低通滤波器LP_Filter内核与外部三路数据通道、分频计数器Tcounter、开关计数器Scounter和上升沿检测器LPF_0K封装,每个数据通道内设周期为1000的时间阀片。
[0022]外部的数字输入信号X_a、X_b、X_c输入为数字输入信为xa、xb、x。,经两级FIFO寄存器处理,经一级FIFO寄存器处理为一步时延输入信号xal、xbl、xel,经两级FIFO寄存器处理为两步时延输入信号xa2、xb2> xe2,该数字输入信号、一步时延输入信号、两步时延输入信号均通过三态开关接入低通滤波器LP_Filter内核。数字输入信号为xa、xb、x。通过三态开关S3接至内核的数字输入信号xn(l。一步时延输入信号xal、xbl> xel通过三态开关S3接至内核的一步时延数字输入信号xnl;两步时延输入信号X a2> xb2> Xd通过三态开关S3接至内核的两步时延输入信号xn2。
[0023]分频计数器Tcounter对时钟CLK信号进行计数,其RESET信号由外部输入提示信号ND与自身的输出O相或后产生,该分频计数器Tcounter将上升沿有效的外部输入提示信号ND到或因计数满1000将输出拉高电平后,将计数值复位至0,从新计数。
[0024]该开关计数器Scounter对分频计数器Tcounter的输出进行计数,输出为0、1、或2,且根据该开关计数器的输出驱动通道的切换。当外部输入提示信号ND提示有新的数据接入,开关计数器Scounter输出复位为0,以使滤波数据通道从a通道,然后b通道,然后c通道。即:
[0025]当b(0:l) = bOO 时,则接 a 通道;
[0026]当b (0:1) =b01 时,则接 b 通道;
[0027]当b(0:l) =b 10 时,则接 c 通道。
[0028]通过以上的数据通道及其驱动方式,则将a、b、c三个通道的数据各自通过1000个时钟周期的时间,滤波后经由各自通道输出。
[0029]上升沿检测器LPF_0K接受开关计数器的信号,判断是否产生一个上升的上升沿电平,并通知下级功能模块读取数据。当上升沿检测器LPF_0K模块接收来自开关计数器Scounter的b (O:1),当b (O:1) = blO时,输出1uS宽度的上升沿电平,用来通知下级功能模块读取数据。
[0030]参见图2,低通滤波器LP_Filter内核中集成第一加法器、第二加法器、第三加法器、第四加法器、第五加法器,第一乘法器、第二乘法器、第三乘法器、第一移位寄存器和第二移位寄存器,低通滤波器LP_Filter内核数据处理的实质为:将多个信号输入值和以前的多个输出值与固定的系数相乘后进行迭加,用FPGA里的乘法单元以及加法单元来实现,而为了保持计算过程中的小数精度不丢失,对数据先放大计算后再缩小。数字输入信号Xn经低通滤波器LP_Filter内核处理后输出数字输出信号yn,其信号处理步骤如下:
[0031]I)、数字输入信号Xn和两步时延数字输入信号xn_2经第一加法器合成为33位宽度的数字信号Xtl2;
[0032]2)、两个一步时延数字输入信号Xlri经第二加法器合成为33位宽度的数字信号xH?
[0033]3)、数字信号^和X η经第三加法器合成为34位宽度的数字信号X 012;
[0034]4)、数字信号Xtll2经第一乘法器与滤波系数C Χ(ι合成为69位宽度的数字信号X 69;
[0035]5)数字信号X69经第一移位寄存器截断处理为32位宽度的数字信号X 32;
[0036]6)两步时延数字输出信号yn_2和滤波系数Cy2经第三乘法器合成为67位宽度的数字信号y21;
[0037]7) 一步时延数字输出信号yn_i和滤波系数Cyl经第二乘法器合成为67位宽度的数字信号y11;
[0038]8)数字信号y21和y n经第四加法器合成为68位宽度的数字信号y 68;
[0039]9)数字信号y68经第二移位寄存器截断处理为32位宽度的数字信号y 32;
[0040]10)经截断处理的数字信号y32和X 32经第五加法器合成为32位宽度的输出数字输出信号yn。输出数字输出信号yn通过三态开关S3接至Y_a、Y_b、Y_c。
[0041]本案中设计的一种基于FPGA的多通道数字滤波器采用这种独特的设计思路,将滤波功能设计为一个固定的核,而不同路的信号通过不同的时间阀片来轮询使用这个核,通过分频计数器、开关技术器实现多路信号对滤波核的共用,在时间与空间均满足要求的情况下实现设计思路。而由于滤波器的系数以及输入量很可能是些比较小的小数值,为了保持计算过程中的精度不丢失,对低通滤波器LP_Filter内核的数据先放大计算后再缩小的处理方式。利用FPGA内部资源,实现低通滤波器内核,再通过多通道封装技术将内核打包成具有多通道滤波功能的滤波器。
[0042]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于FPGA的多通道数字滤波器,其特征包括:将低通滤波器LP_Filter内核与外部多路数据通道、分频计数器、开关计数器和上升沿检测器封装,每个数据通道内设周期为1000的时间阀片,外部的数字输入信号在通道内传输经两级FIFO寄存器处理,经一级FIFO寄存器处理为一步时延输入信号,经两级FIFO寄存器处理为两步时延输入信号,该数字输入信号、一步时延输入信号、两步时延输入信号均通过三态开关接入低通滤波器LP_Filter 内核; 该分频计数器将上升沿有效的外部输入提示信号ND到或因计数满1000将输出拉高电平后,将计数值复位至0,从新计数;该开关计数器对分频计数器的输出进行计数,且根据该开关计数器的输出驱动通道的切换;该上升沿检测器接受开关计数器的信号,判断是否产生一个上升的上升沿电平,并通知下级功能模块读取数据。
2.根据权利要求1所述的一种基于FPGA的多通道数字滤波器,其特征包括:低通滤波器LP_Filter内核中集成第一加法器、第二加法器、第三加法器、第四加法器、第五加法器,第一乘法器、第二乘法器、第三乘法器、第一移位寄存器和第二移位寄存器,数字输入信号Xn经低通滤波器LP_Filter内核处理后输出数字输出信号y n,其信号处理步骤如下: 1)、数字输入信号Xn和两步时延数字输入信号Xn_2经第一加法器合成为33位宽度的数子?目号X(|2; 2)、两个一步时延数字输入信号Xlri经第二加法器合成为33位宽度的数字信号X11; 3)、数字信号&2和Xη经第三加法器合成为34位宽度的数字信号X 012; 4)、数字信号Xtll2经第一乘法器与滤波系数CΧ(ι合成为69位宽度的数字信号X 69; 5)数字信号X69经第一移位寄存器截断处理为32位宽度的数字信号X32; 6)两步时延数字输出信号yn_2和滤波系数Cy2经第三乘法器合成为67位宽度的数字信号 y2i; 7)一步时延数字输出信号yn_i和滤波系数Cyl经第二乘法器合成为67位宽度的数字信号yn; 8)数字信号y21和yη经第四加法器合成为68位宽度的数字信号y 68; 9)数字信号y68经第二移位寄存器截断处理为32位宽度的数字信号y32; 10)经截断处理的数字信号y32和X32经第五加法器合成为32位宽度的输出数字输出信号yn。
【文档编号】H03H17/02GK104467740SQ201410820113
【公开日】2015年3月25日 申请日期:2014年12月24日 优先权日:2014年12月24日
【发明者】李瑜, 尹陆军, 严良占 申请人:安徽天沃电气技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1