一种可配置参数的有限冲激响应数字滤波器
技术领域
本发明涉及一种数字滤波器,具体说就是一种可配置参数的有限冲激响应数字滤波器。
技术背景
目前FIR数字滤波器可以用软件,如计算机程序实现;或用硬件,如DSP或FPGA来实现。其中采用计算机程序实现的数字滤波器可以方便地调整滤波特性,但是数据运算量大,占用系统资源。采用DSP器件实现的FIR滤波器相对较简单,应用比较广泛,缺点是程序顺序执行,尽管DSP器件性能不断提高,但在某些实时性要求极高的场合仍受到限制;FPGA器件是硬件并行结构,因此数字滤波器的并行迭代算法非常适合通过FPGA实现,但是普遍存在的问题是不能根据被滤波信号的特点,动态调整滤波器的滤波系数,只能完成单一特性的滤波工作,因此不能发挥数字滤波器灵活可调的技术优势。
也有人用微处理控制器接口模块的DSP器件对双口RAM的一个端口进行写操作,更新双口RAM内部系数,通过另一端口为FIR滤波器读操作获取更新的滤波器系数数据。但是此方法不可对滤波器的参数进行实时地调整,使用起来也不够灵活。
发明内容
本发明的目的在于公开一种可以通过计算机动态配置滤波参数的基于FPGA的有限冲激响应数字滤波器。本发明的目的是这样实现的:使用10位A/D转换器对信号进行模数转换,数字信号输入到FPGA器件中,在FPGA器件中进行FIR滤波,滤波后的数据通过USB2.0总线传输至PC机。另一方面PC机将计算得到的配置参数通过USB2.0总线下传至FPGA芯片,以实现不同窗口、不同截止频率的FIR滤波器。数据滤波系统整体结构如图27所示。
本发明利用FPGA并行结构运算速度快的特点和USB2.0接口高速可靠的特性,研制了一种FPGA+USB2.0+PC机的可配置参数FIR数字滤波系统。以FPGA为核心器件的下位机可以完成繁重的数据滤波工作,缓解了PC机的压力,能满足系统高速实时性的要求,又因为PC机可通过USB2.0总线对FPGA内运行程序的关键参数进行配置,所以也可以满足系统灵活性要求。
1.FIR滤波器实验结果与分析
采用Altera公司Cyclone系列的EP1C6Q240C8芯片,设计了一个32阶的可变参数FIR滤波系统,编译后占用片上逻辑单元69%,占用RAM 71%。使用信号发生器产生各种输入信号,PC机根据给定的滤波器指标求出各阶系数对FPGA进行配置,FPGA再将滤波后数据上传至PC机进行进一步的处理,具体实验及分析如下:
(1)滤波器指标:窗函数为凯泽窗,β=3.4,采样频率为187.5kHz,截止频率为35kHz,滤波器幅频特性和相频特性如图1,图2所示;输入信号为1.5kHz和10kHz的正弦波混合信号,示波器信号如图3所示,滤波后信号如图4所示。可以看出由于FIR滤波器的线性相位特性,且混合信号的频率都低于35kHz,所以滤波后的信号波形没有改变。
(2)滤波器指标与(1)相同,输入信号为1.5kHz和50kHz的正弦波混合信号,示波器信号如图5所示,滤波后信号如图6所示。可以看出滤波器将50kHz的正弦波信号滤掉,保留了1.5kHz的正弦波信号。
(3)滤波器指标:窗函数为海明窗,采样频率为187.5kHz,截止频率为5kHz,滤波特性如图7,图8所示;输入信号为1kHz正弦波和白噪声的混合信号,示波器信号如图9所示,滤波后信号如图10所示。可以看出滤波器滤除了大量的白噪声,基本恢复了1kHz的正弦波信号。
(4)滤波器指标与(3)相同,输入信号为1.5kHz、20kHz的正弦波和白噪声的混合信号,如图11所示,滤波后信号如图12所示。可以看出滤波器将20kHz的正弦波信号以及大量的白噪声滤掉,基本恢复了1.5kHz的正弦波信号。
(5)滤波器指标:窗函数为凯泽窗,β=3.4,采样频率为187.5kHz,带通频率为10kHz~15kHz,滤波特性如图13,图14所示;输入信号为1kHz和10kHz正弦波混合信号,示波器信号如图15所示,滤波后数据如图16所示。可以看出滤波器将1kHz的正弦波信号滤掉,保留了10kHz的正弦波信号。
2.可配置FIR滤波器在图像缺陷检测上的应用
在采集不同尺寸缺陷图像时,CCD的输出信号频谱是不同的,如果滤波器的截止频率过低,会损失小尺寸缺陷的高频分量,截止频率过高则不能有效滤除噪声信号。采用可配置参数FIR滤波器,针对不同特点的图像选择适合的滤波指标,可以最大程度的滤除噪声、还原图像信息。实验验证如下:
A滤波器指标:窗函数为凯泽窗,β=3.4,采样频率为6MHz,截止频率为1.12MHz。B滤波器指标:窗函数为凯泽窗,β=3.4,采样频率为6MHz,截止频率为160kHz。A、B滤波器的幅频特性和相频特性如图9所示。滤波信号为CCD输出信号,示波器检测的CCD输出信号如图10所示,分别为检测较大尺寸缺陷和较小尺寸缺陷时的CCD输出信号。采用两种截止频率滤波器滤波后数据如图11所示。可以看出截止频率为160kHz的B滤波器噪声抑制良好,但是小尺寸缺陷图像的高频信息受到了损失;而截止频率为1.12MHz的A滤波器噪声抑制较差,但是小尺寸缺陷图像的高频信息保存良好。在实际应用中,可以根据不同的需要调整滤波器以达到更好的滤波效果。
附图说明
图1为本发明第一组实验滤波器特性的幅频特性;
图2为本发明第一组实验滤波器特性的相频特性;
图3为本发明第一组实验结果的示波器输出信号;
图4为本发明第一组实验结果的滤波后信号;
图5为本发明第二组实验结果的示波器输出信号;
图6为本发明第二组实验结果的滤波后信号;
图7为本发明第三组实验滤波器特性的幅频特性;
图8为本发明第三组实验滤波器特性的相频特性;
图9为本发明第三组实验结果的示波器输出信号;
图10为本发明第三组实验结果的滤波后信号;
图11为本发明第四组实验结果的示波器输出信号;
图12为本发明第四组实验结果的滤波后信号;
图13为本发明第五组实验滤波器特性的幅频特性;
图14为本发明第五组实验滤波器特性的相频特性;
图15为本发明第五组实验结果的示波器输出信号;
图16为本发明第五组实验结果的滤波后信号;
图17为本发明的A滤波器幅频特性;
图18为本发明的A滤波器相频特性;
图19为本发明的B滤波器幅频特性;
图20为本发明的B滤波器相频特性;
图21为本发明的大尺寸缺陷示波器输出信号;
图22为本发明的小尺寸缺陷示波器输出信号;
图23为本发明的大尺寸缺陷A滤波器滤波信号;
图24为本发明的大尺寸缺陷B滤波器滤波信号;
图25为本发明的小尺寸缺陷A滤波器滤波信号;
图26为本发明的小尺寸缺陷B滤波器滤波信号;
图27为本发明的滤波系统结构图;
图28为本发明的FPGA结构框图;
图29为本发明的滤波器状态转移图;
图30为本发明的滤波器线性相位结构图;
图31为本发明的参数配置单元框图;
图32为本发明的USB2.0传输单元框图;
具体实施方式
数据滤波系统整体结构如图27所示。使用10位A/D转换器对信号进行模数转换,数字信号输入到FPGA器件中,在FPGA器件中进行FIR滤波,滤波后的数据通过USB2.0总线传输至PC机。另一方面PC机将计算得到的配置参数通过USB2.0总线下传至FPGA,以实现不同窗口、不同截止频率的FIR滤波器。
1.基于FPGA的数字滤波器设计
FPGA芯片内部结构如图28所示。系统根据PC机的指令选择工作状态,并在状态机的控制下进行状态跳转。在滤波参数配置状态时,PC机将配置参数通过USB2.0总线输入到FPGA芯片内部的参数FIFO中缓冲,FPGA芯片内部的参数配置单元从参数FIFO中取出参数,对线性相位FIR滤波器进行配置;在滤波处理状态,A/D控制单元输出波形控制A/D芯片将模拟信号转换为10位数字信号。数字信号通过线性相位FIR滤波器输入到结果FIFO缓冲之后在FIFO控制单元的控制下输出。
(1)有限状态机设计
根据设计方案,将数据滤波系统分为5个状态,其中state1-state3为参数配置状态,状态转移方式如图29所示。
系统初始状态state0,为等待状态,当PC机发出启动信号后系统进入state1状态;在state1状态PC机将滤波器的配置参数写入参数FIFO(FIFO长度与配置参数长度相同),当参数FIFO满信号有效即配置参数接受完毕后系统进入state2状态;在state2状态时,参数配置单元开始工作,将各个参数配置到FIR滤波器单元,配置完成后向PC机发回配置完成信号,系统进入state3状态;在state3状态等待PC机的滤波启动信号,然后进入state4状态;在state4状态,系统根据配置的滤波参数进行滤波运算,直至PC机发出停止信号。
(2)线性相位FIR滤波器设计
FPGA实现FIR滤波器的关键技术是乘法运算,首先乘法器的运算速度决定了FIR滤波器的运算速度,因此需要设计更加快速的乘法器,本设计采用了Altera公司的LPM_MULT乘法模块,保证了乘法器的速度;其次乘法器会占用大量的逻辑单元,所以希望尽可能减少乘法运算次数,由于线性相位结构的FIR滤波器乘法次数最少,因此选择此结构实现FIR滤波器。线性相位FIR滤波器单位冲激响应函数h(n)满足式(1)。
h(n)=±h(N-1-n)0≤n≤N-1 (1)
设FIR滤波器的系统函数为H(z),则:
设x(n)为输入数字序列,y(n)为输出数字序列,综合式(1)和式(2)可得:
根据式(3)设计的FIR滤波器线性相位结构如图30所示。
由图30可知,线性相位结构比一般直接型结构可以节省一半数量的乘法次数,节省了FPGA的器件资源。如果能够改变冲激响应函数即滤波参数h(n)的值,就可以调整FIR滤波器的滤波特性。
(3)滤波参数配置单元
如图31所示,滤波参数配置单元由参数FIFO控制器和多路数据开关组成,在state2状态时参数FIFO控制器将滤波参数h(0)、h(1)直至h(N/2-1)依次读出,并在多路数据开关的控制下分别赋给图31中相应地址完成参数配置。
2.基于USB2.0总线的数据传输单元
USB2.0总线具有传输速度快、即插即用和扩展性能强等优点,采用USB2.0总线进行数据传输可以方便用户使用,USB2.0传输单元如图32所示。配置模式时,配置参数传输路径是PC机→USB2.0接口→输出FIFO→FPGA,滤波数据传输路径是FPGA→输入FIFO→USB2.0接口→PC机,两种方式均采用DMA方式,提高了数据的传输速度。