一种通用可编程数字滤波器及其工作方法

文档序号:7538879阅读:297来源:国知局
专利名称:一种通用可编程数字滤波器及其工作方法
技术领域
本发明涉及一种滤波器及其工作方法,具体涉及一种通用的可编程的数字滤波器装置及其工作方法。
背景技术
滤波器是一种能使有用信号顺利通过而同时对无用频率信号进行抑制(或衰减)的电子装置。工程上常用它来做信号处理、数据传送和抑制干扰等。在测量和通讯系统中,滤波器本质上是能够从被噪声畸变和污染了的信号中提取原始信号所携带的信息的电子装置。
滤波器可划分为模拟滤波器和数字滤波器。
模拟滤波器可以定义为主要是由模拟元器件构成,对模拟信号进行模拟量的运算完成信号滤波处理功能的电子装置。
相对的,数字滤波器可以定义为是由数字元器件或者数字信号处理器实现,对数字信号(序列)进行数字运算完成信号滤波处理功能的电子装置或软件。数字滤波作为整个数字信号处理过程(Digital Signal Processing)中的一个环节,目前主要是在以DSP(Digital Signal Processor)器件为核心的硬件系统(板、卡等),以及它的宿主计算机(Host Computer System)构成的处理器平台上计算完成的,是由软件的形式来实现。同时,在一些应用于通讯、图像处理等领域的专用集成电路(Application Specific Integrated Circuit,ASIC)里,集成有专用的硬件数字滤波器存在。
模拟滤波器主要是由模拟元器件构成,而模拟器件自身的物理特性,比如温度特性、非线性特性、频率特性等对滤波器的精度都会产生影响,并且电阻和电容本身又存在着的制造误差。使得通过模拟滤波器的信号改变了原始信号幅频特性,并且滤波器自身产生的噪声也会加入到输出信号当中,所以难以非常精确的反映原始信号的真实面貌。在大多数场合,这种由器件本身特性引起的误差,可以不考虑。但是,在某些情况下,比如在高精度测量系统,以及微弱信号测量系统中,要求获得的信号最大程度的反应原始信号的幅频或者相频特性,就不能忽略这些误差,并且这种由于器件自身特性引起的系统误差,在自动测量系统中难以得到有效的补偿。
数字滤波器具有精度高、稳定性好、抗干扰能力强等特点,相比模拟滤波器,数据滤波器只存在量化误差,量化误差的大小Δ=1/(2N-1) 1其中N为数字滤波器的位数。比如10位滤波器的量化误差Δ=1/(210-1)<0.1% 2因此,10位以上的数字滤波器实际特性基本上可以认为与滤波器的设计期望特性一致。并且,随着滤波器位数的增加,量化误差越小。
但是,就目前来说,数字滤波器主要是由软件在DSP平台上实现,随着滤波器的阶数越高,需要占用DSP处理器的资源就越多,处理时间就越长,处理速度远不如模拟滤波器。同时,数字滤波仅仅是数字信号处理中的一个环节,DSP处理器还需要对滤波后的数据进行其它的处理运算。当系统实时性要求较高,或者运算量大的时候,比如要求对一些瞬时信号的捕捉且及时响应,或者进行多点的FFT运算、小波变换,以及多信道实时通讯处理等等,实时性就达不到保证,往往需要在系统中增加另外的处理器来满足系统要求。这样不但增加了系统的设计成本,而且使系统的板级设计和验证变得更加复杂。虽然,有些ASIC(专用集成电路)芯片内部带有专用的硬件数字滤波器,可以解决实时性的问题,但是只能应用于专门的领域,缺少通用性,而且成本高昂。

发明内容
本发明的目的是克服现有的模拟滤波器和数字滤波器存在的不足,根据数字滤波器实现的原理,提供一种新的实现数字滤波的方法。这种可编程数字滤波器是由数字电路模块构建一个可以承载数字滤波器功能的通用硬件平台,可以将设计好的数字滤波器(FIR或IIR)特征及其抽头系数通过MCU(微处理器)或其它适当的方法,写入这种滤波器片内的寄存器组内,通过本发明内部的乘加器阵列,与外部输入的信号序列以及本滤波器的输出序列作乘加运算,并输出运算结果,实现期望的数字滤波器地功能。并且本发明同大多数可编程数字器件(如8255接口等)一样,可以灵活的在线配置,按照需要在线更改滤波器的功能结构(写入不同的数字滤波器的参数,就能实现不同的滤波器的功能)。多片级联,可以实现任意形式和结构的数字滤波器。
本发明是通过以下技术方案实现的一种通用可编程数字滤波器,其包括由9个功能模块组成;用以接收外部控制输入信号,译码输出,选择当前从输入模块流出的数据信号是流入控制寄存器、滤波器参数寄存器组还是输入信号寄存器组的端口选择器;用以保存当前数字滤波器的结构、阶数、是否级联使用等滤波器特征信息编码,并将各个信息分别输出到FIR/IIR选择控制器和移位控制器的控制寄存器;用以接收外部输入的数据信号输入模块;用以按顺序寄存FIR或IIR滤波器的抽头系数,与滤波器的传递函数的差分方程表达式的抽头系数相对应的滤波器参数寄存器组;用以寄存信号的输入信号寄存器组和输出信号寄存器组;用以接受滤波器参数寄存器组和输入/输出信号寄存器组中各个寄存器的输出,实现滤波器的传递函数的差分方程表达式的运算,并将运算结果送入输出模块的乘加器阵列;用以根据控制寄存器输出的滤波器特征信号,控制输入信号寄存器组和输出信号寄存器组的长度的FIR/IIR选择控制器;用以根据控制寄存器输出的滤波器阶数信息,控制滤波器抽头系数写入时波器参数寄存器组移位的移位控制器;用以接收乘加器阵列的输出,并将接收的信号序列,按一定的方式输出的输出模块。
通用可编程数字滤波器,所述的功能模块其外部控制输入到端口选择器的输入端,端口选择器的输出端分别与控制寄存器、输入模块、滤波器参数寄存器组、输入/输出信号寄存器组的输入端连结;外部数据输入连结输入模块的输入端,输入模块的数据输出端分别与控制寄存器、滤波器参数寄存器组、输入/输出信号寄存器组的数据输入端相连结;控制寄存器的输出端分别连结于滤波器参数寄存器组、输入/输出信号寄存器组、移位控制器、FIR/IIR选择控制器的控制输入端;滤波器参数寄存器组、输入信号寄存器组的输入端与移位控制器的输出端连结;FIR/IIR选择控制器的输出端分别连结滤波器参数寄存器组、输入/输出信号寄存器组、乘加器陈列和输出模块的控制输入端;滤波器参数寄存器组的输出端连结乘加器陈列的一个输入端,输入/输出信号寄存器组的输出端连结乘加器陈列的另一个输入端;乘加器陈列的输出端连接输出模块的数据输入端;输出模块的一个输出端连结外部输出端,输出模块的另一个输出端连结输出信号寄存器组的一个输入端。
通用可编程数字滤波器,所述的FIR或者IIR滤波器可以在线配置。
通用可编程数字滤波器,所述的输入/输出信号寄存器组可分为输入信号寄存器组和输出信号寄存器组。
通用可编程数字滤波器及其工作方法,其输入寄存器组和输出信号寄存器组为长度可变的两个寄存器组。
通用可编程数字滤波器及其工作方法,其输入寄存器组和输出信号寄存器组的长度受FIR/IIR选择控制器送出的控制信号控制。
一种通用可编程数字滤波器的工作方法,包括以下两个步骤的工作方法(1)配置方法首先,外部控制器给出恰当的控制信号,端口选择器选择控制寄存器,在下一个时刻,输入模块从外部读入滤波器功能信息编码,写入控制寄存器;控制寄存器给出相应的滤波器特征信号,分别作用于FIR/IIR选择控制器和移位控制器,FIR/IIR选择控制器对输入寄存器组和输出信号寄存器组进行恰当的分配和控制;然后,外部控制器给出恰当的控制信号,使端口选择器选择滤波器参数寄存器组,在下一个时刻,移位控制器控制滤波器参数寄存器组内的各个单元内的值向后移动到后一个寄存器单元,同时输入模块从外部读入滤波器一个抽头系数数据写入滤波器参数寄存器组的最前一个单元;再下一个时刻,移位控制器控制滤波器参数寄存器组内的各个单元内的值再向后位移一位,同时输入模块从外部读入滤波器另一个抽头系数数据写入滤波器参数寄存器组的最前一个单元;重复上述过程,直到滤波器的所有抽头系数完全按顺序写入,将滤波器系数寄存器内超过滤波器阶数的寄存器单元值清零,关闭滤波器配置端口,滤波器配置完成;(2)滤波工作方法如果是FIR滤波器,当一个新的数字信号x(n)送进滤波器,输入寄存器组和输出信号寄存器组中保存的数据都移动到后一个寄存器单元,最后一个单元的数据丢弃,同时,将x(n)写入输入寄存器组和输出信号寄存器组的最前面的单元;下一个时刻,滤波器参数寄存器组中的各单元与输入寄存器组和输出信号寄存器组中的对应单元的数据通过乘加器阵列做乘法运算,然后累加,累加后的结果送到输出模块,由输出模块输出到片外;等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的FIR滤波处理;如果滤波器是工作在IIR方式,在FIR/IIR选择控制器的控制下,输入寄存器组和输出信号寄存器组分为两个寄存器组,前一段寄存器组为输入信号寄存器组保存输入信号x(n)之前的M个输入信号序列,后一段寄存器组为输出信号寄存器组保存输出信号y(n)之前的N个输出信号序列;当x(n)来临,输入信号寄存器组和输出信号寄存器组中保存的数据在移位寄存器的控制下都向后移动到后一个寄存器单元,寄存器组的最后一个单元的数据丢弃,同时,将x(n),y(n-1)写入相应输入信号寄存器组和输出信号寄存器组的最前面的单元,下一个时刻,滤波器参数寄存器组将与输入寄存器组和输出寄存器组相对应单元的数据通过乘加器阵列做乘法运算,然后累加,累加后的结果送到输出模块,由输出模块9输出到片外;等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的IIR滤波处理。
通用可编程数字滤波器的工作方法,如果FIR滤波器的抽头系数满足对称特性,则会由FIR/IIR选择控制器送来一个控制信号,根据线性相位FIR滤波器特性,先进行x(n)±x(N-n)运算,如果FIR滤波器系数是偶对称则为“+”,若是奇对称,则为“-”运算;再与滤波器系数进行乘加运算本发明的有益效果是①.本发明作为一个数字系统,比较模拟滤波器,稳定性、抗干扰能力、精度提高了很多,而且完全可以避免滤波器系统的内部噪声对被滤波信号的影响;②.本发明利用多个硬件乘法器和加法器实现滤波运算,克服了以往软件数字滤波器的时延,提高了响应实时性;③.相对某些ASIC芯片内部带有的硬件数字滤波器,具有通用性。④.在实际应用中,也比较灵活、方便;可以在线配置的特性,降低某些应用系统的板级设计和验证流程的复杂度;⑤由于减少了模拟元件的使用,减少了误差环节,可以提高某些使用本发明的系统的精度。


附图为可编程数字滤波器系统的结构原理框图具体实施方式
下面结合附图,对本发明作详细的描述。
本发明的功能模块连接如附图所示。各功能模块的详细功能叙述如下端口选择器1端口选择器的功能是接收外部控制输入信号,译码输出,选择当前从输入模块3流出的数据信号是流入控制寄存器2、滤波器参数寄存器组4还是输入信号寄存器组5。
控制寄存器2控制寄存器保存当前数字滤波器的结构、阶数、是否级联使用等滤波器特征信息编码,并将各个信息分别输出到FIR/IIR选择控制器7和移位控制器8。
输入模块3接收外部输入的数据信号,数据信号可能是当前滤波器的结构、阶数等滤波器特征信息(写入控制寄存器1),也可能是滤波器参数信息(写入滤波器参数寄存器组4),或者是需要滤波的原始信号的当前输入值(写入输入/输出信号寄存器组5)。根据端口选择器的控制,分别写入不同的寄存器装置内。滤波器参数寄存器组4滤波器参数寄存器组按顺序寄存FIR或IIR滤波器的抽头系数,与滤波器的传递函数的差分方程表达式的抽头系数对应。
输入/输出信号寄存器组5输入/输出信号寄存器组分为长度可变两个部分输入信号寄存器组10和输出信号寄存器组11,如果作为FIR滤波器,则寄存当前输入信号x(n)之前的N(N表示滤波器阶数)个输入信号序列的值,输出信号寄存器组11的长度为0;如果是作为IIR滤波器,则输入信号寄存器组10和输出信号寄存器组11分别寄存当前输入信号x(n)之前的M个输入信号序列和当前输出信号y(n)之前的N个输出信号序列。信号存放的次序也与滤波器的传递函数的差分方程表达式相对应。
乘加器阵列6乘加器阵列是由一系列硬件乘法器和加法器构成的阵列,接受滤波器参数寄存器组4和输入/输出信号寄存器组5中各个寄存器的输出,实现滤波器的传递函数的差分方程表达式的运算,运算结果送入输出模块9。
FIR/IIR选择控制器7FIR/IIR选择控制器7根据控制寄存器输出的滤波器特征信号,控制输入/输出信号寄存器组5的分配(输入信号寄存器组10和输出信号寄存器组11的长度)。
移位控制器8移位控制器根据控制寄存器输出的滤波器阶数信息,控制滤在滤波器抽头系数写入时波器参数寄存器组4的移位。
输出模块9接收乘加器阵列6的输出,并将接收的信号序列,按一定的方式输出到本发明——通用可编程数字滤波器外部,输出方式可以是并行方式、SPI方式或其它串行方式中的一种。
本发明——通用可编程数字滤波器有两种工作状态,一种为配置状态,一种为正常工作(滤波)状态。
在滤波器正常工作之前,应先对滤波器进行配置。
首先,外部控制器(比如MCU等)给出恰当的控制信号,端口选择器1选择控制寄存器2,在下一个时刻,输入模块3从外部读入滤波器功能信息编码,写入控制寄存器2;控制寄存器2给出相应的滤波器特征信号,分别作用于FIR/IIR选择控制器7和移位控制器8,FIR/IIR选择控制器7对输入/输出信号寄存器组5进行恰当的分配和控制。然后,外部控制器给出恰当的控制信号,使端口选择器1选择滤波器参数寄存器组4,在下一个时刻,移位控制器8控制滤波器参数寄存器组4内的各个单元内的值向后移动到后一个寄存器单元,同时输入模块3从外部读入滤波器一个抽头系数数据写入滤波器参数寄存器组4的最前一个单元;再下一个时刻,移位控制器8控制滤波器参数寄存器组4内的各个单元内的值再向后位移一位,同时输入模块3从外部读入滤波器另一个抽头系数数据写入滤波器参数寄存器组4的最前一个单元。重复上述过程,直到滤波器的所有抽头系数完全按顺序写入,将滤波器系数寄存器内超过滤波器阶数的寄存器单元值清零,关闭滤波器配置端口。滤波器配置完成。
滤波器配置好了以后,就可以在正常工作(滤波)状态下运行。
如果是FIR滤波器,当一个新的数字信号x(n)送进滤波器,输入/输出信号寄存器组5中保存的数据都移动到后一个寄存器单元,最后一个单元的数据丢弃,同时,将x(n)写入输入/输出信号寄存器组5的最前面的单元。下一个时刻,滤波器参数寄存器组4中的各单元与输入/输出信号寄存器组5中的对应单元的数据通过乘加器阵列6做乘法运算,然后累加,累加后的结果送到输出模块9,由输出模块9输出到片外。等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的FIR滤波处理。如果滤波器是工作在IIR方式,在FIR/IIR选择控制器7的控制下,输入/输出信号寄存器组5分为长度可变的两个寄存器组,两个寄存器的长度受FIR/IIR选择控制器7送出的控制信号控制。前一段寄存器组为输入信号寄存器组10保存输入信号x(n)之前的M个输入信号序列,后一段寄存器组为输出信号寄存器组11保存输出信号y(n)之前的N个输出信号序列。当x(n)来临,输入信号寄存器组10和输出信号寄存器组11中保存的数据在移位寄存器8的控制下都向后移动到后一个寄存器单元,寄存器组的最后一个单元的数据丢弃,同时,将x(n),y(n-1)写入相应输入信号寄存器组10和输出信号寄存器组11的最前面的单元,下一个时刻,滤波器参数寄存器组4与输入/输出寄存器组5相对应单元的数据通过乘加器阵列6做乘法运算,然后累加,累加后的结果送到输出模块9,由输出模块9输出到片外。等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的IIR滤波处理。
权利要求
1.一种通用可编程数字滤波器,其特征在于包括由9个功能模块组成;用以接收外部控制输入信号,译码输出,选择当前从输入模块流出的数据信号是流入控制寄存器、滤波器参数寄存器组还是输入信号寄存器组的端口选择器;用以保存当前数字滤波器的结构、阶数、是否级联使用等滤波器特征信息编码,并将各个信息分别输出到FIR/IIR选择控制器和移位控制器的控制寄存器;用以接收外部输入的数据信号输入模块;用以按顺序寄存FIR或IIR滤波器的抽头系数,与滤波器的传递函数的差分方程表达式的抽头系数相对应的滤波器参数寄存器组;用以寄存信号的输入信号寄存器组和输出信号寄存器组;用以接受滤波器参数寄存器组和输入/输出信号寄存器组中各个寄存器的输出,实现滤波器的传递函数的差分方程表达式的运算,并将运算结果送入输出模块的乘加器阵列;用以根据控制寄存器输出的滤波器特征信号,控制输入信号寄存器组和输出信号寄存器组的长度的FIR/IIR选择控制器;用以根据控制寄存器输出的滤波器阶数信息,控制滤波器抽头系数写入时波器参数寄存器组移位的移位控制器;用以接收乘加器阵列的输出,并将接收的信号序列,按一定的方式输出的输出模块。
2.根据权利要求1所述的一种通用可编程数字滤波器,其特征在于所述的功能模块其外部控制输入到端口选择器的输入端,端口选择器的输出端分别与控制寄存器、输入模块、滤波器参数寄存器组、输入/输出信号寄存器组的输入端连结;外部数据输入连结输入模块的输入端,输入模块的数据输出端分别与控制寄存器、滤波器参数寄存器组、输入/输出信号寄存器组的数据输入端相连结;控制寄存器的输出端分别连结于滤波器参数寄存器组、输入/输出信号寄存器组、移位控制器、FIR/IIR选择控制器的控制输入端;滤波器参数寄存器组、输入信号寄存器组的输入端与移位控制器的输出端连结;FIR/IIR选择控制器的输出端分别连结滤波器参数寄存器组、输入/输出信号寄存器组、乘加器陈列和输出模块的控制输入端;滤波器参数寄存器组的输出端连结乘加器陈列的一个输入端,输入/输出信号寄存器组的输出端连结乘加器陈列的另一个输入端;乘加器陈列的输出端连接输出模块的数据输入端;输出模块的一个输出端连结外部输出端,输出模块的另一个输出端连结输出信号寄存器组的一个输入端。
3.根据权利要求1或2所述的一种通用可编程数字滤波器,其特征在于所述的FIR或者IIR滤波器可以在线配置。
4.根据权利要求1或2所述的一种通用可编程数字滤波器,其特征在于所述的输入/输出信号寄存器组可分为输入信号寄存器组和输出信号寄存器组。
5.根据权利要求4所述的一种通用可编程数字滤波器及其工作方法,其特征在于输入寄存器组和输出信号寄存器组为长度可变的两个寄存器组。
6.根据权利要求5所述的一种通用可编程数字滤波器及其工作方法,其特征在于输入寄存器组和输出信号寄存器组的长度受FIR/IIR选择控制器送出的控制信号控制。
7.根据权利要求1或2所述的一种通用可编程数字滤波器的工作方法,其特征在于包括以下两个步骤的工作方法(1)配置方法首先,外部控制器给出恰当的控制信号,端口选择器选择控制寄存器,在下一个时刻,输入模块从外部读入滤波器功能信息编码,写入控制寄存器;控制寄存器给出相应的滤波器特征信号,分别作用于FIR/IIR选择控制器和移位控制器,FIR/IIR选择控制器对输入寄存器组和输出信号寄存器组进行恰当的分配和控制;然后,外部控制器给出恰当的控制信号,使端口选择器选择滤波器参数寄存器组,在下一个时刻,移位控制器控制滤波器参数寄存器组内的各个单元内的值向后移动到后一个寄存器单元,同时输入模块从外部读入滤波器一个抽头系数数据写入滤波器参数寄存器组的最前一个单元;再下一个时刻,移位控制器控制滤波器参数寄存器组内的各个单元内的值再向后位移一位,同时输入模块从外部读入滤波器另一个抽头系数数据写入滤波器参数寄存器组的最前一个单元;重复上述过程,直到滤波器的所有抽头系数完全按顺序写入,将滤波器系数寄存器内超过滤波器阶数的寄存器单元值清零,关闭滤波器配置端口,滤波器配置完成;(2)滤波工作方法如果是FIR滤波器,当一个新的数字信号x(n)送进滤波器,输入寄存器组和输出信号寄存器组中保存的数据都移动到后一个寄存器单元,最后一个单元的数据丢弃,同时,将x(n)写入输入寄存器组和输出信号寄存器组的最前面的单元;下一个时刻,滤波器参数寄存器组中的各单元与输入寄存器组和输出信号寄存器组中的对应单元的数据通过乘加器阵列做乘法运算,然后累加,累加后的结果送到输出模块,由输出模块输出到片外;等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的FIR滤波处理;如果滤波器是工作在IIR方式,在FIR/IIR选择控制器的控制下,输入寄存器组和输出信号寄存器组分为两个寄存器组,前一段寄存器组为输入信号寄存器组保存输入信号x(n)之前的M个输入信号序列,后一段寄存器组为输出信号寄存器组保存输出信号y(n)之前的N个输出信号序列;当x(n)来临,输入信号寄存器组和输出信号寄存器组中保存的数据在移位寄存器的控制下都向后移动到后一个寄存器单元,寄存器组的最后一个单元的数据丢弃,同时,将x(n),y(n-1)写入相应输入信号寄存器组和输出信号寄存器组的最前面的单元,下一个时刻,滤波器参数寄存器组将与输入寄存器组和输出寄存器组相对应单元的数据通过乘加器阵列做乘法运算,然后累加,累加后的结果送到输出模块,由输出模块9输出到片外;等待下一个数字信号来临,然后重复同样的步骤,实现数字信号的IIR滤波处理。
8.根据权利要求7所述的一种通用可编程数字滤波器的工作方法,其特征在于如果FIR滤波器的抽头系数满足对称特性,则会由FIR/IIR选择控制器送来一个控制信号,根据线性相位FIR滤波器特性,先进行x(n)±x(N-n)运算,如果FIR滤波器系数是偶对称则为“+”,若是奇对称,则为“-”运算;再与滤波器系数进行乘加运算。
全文摘要
本发明涉及一种通用可编程数字滤波器及其工作方法,本发明由9个功能模块组成。其工作方法包括以下两个步骤的工作方法,配置方法和滤波工作方法。本发明作为一个数字系统,比较模拟滤波器,稳定性、抗干扰能力、精度提高了很多,而且完全可以避免滤波器系统的内部噪声对被滤波信号的影响;利用多个硬件乘法器和加法器实现滤波运算,克服了以往软件数字滤波器的时延,提高了响应实时性;相对某些ASIC芯片内部带有的硬件数字滤波器,具有通用性。在实际应用中,也比较灵活、方便;可以在线配置的特性,降低某些应用系统的板级设计和验证流程的复杂度。
文档编号H03H17/02GK1866738SQ200610085980
公开日2006年11月22日 申请日期2006年6月12日 优先权日2006年6月12日
发明者许金生 申请人:许金生
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1