ZENG XIANGXI (CN)
ZHOU HENGZHEN (CN)
ZENG XIANGXI (CN)
CN101860344A | 2010-10-13 | |||
CN101855638A | 2010-10-06 |
北京康信知识产权代理有限责任公司 (CN)
权 利 要 求 书 1. 一种数字滤波方法, 包括: 对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号; 从预先存储的单位阶跃响应表中读取单位阶跃响应; 将所述阶跃信号的幅度和所述单位阶跃响应相乘得到阶跃响应; 对所有的阶跃响应求和得到对所述输入信号进行 FIR滤波的滤波结果。 2. 根据权利要求 1所述的方法, 其中, 对需要进行 FIR滤波的输入信号进行沿提 取得到阶跃信号的步骤包括: 在所述输入信号发生沿跳变时提取出所述阶跃信号。 3. 根据权利要求 1所述的方法, 其中, 在对需要进行 FIR滤波的输入信号进行沿 提取得到阶跃信号之前, 还包括: 计算 FIR滤波器的单位阶跃响应; 将所述单位阶跃响应数据存储在所述单位阶跃响应表中。 4. 根据权利要求 1所述的方法, 其中, 从预先存储的单位阶跃响应表中输出单位 阶跃响应并将所述阶跃信号的幅度和所述单位阶跃响应相乘得到阶跃响应的步 骤包括: 当阶跃响应模块检测到有所述阶跃信号时, 对缓存器进行刷新, 将所述阶 跃响应模块当前的输出结果反馈到所述缓存器, 并保存在所述缓存器中作为基 准信号; 从所述单位阶跃响应表中获取所述单位阶跃响应, 并将所述阶跃信号的幅 度和单位阶跃响应输入到乘法器进行相乘操作; 将所述乘法器的输出结果和所述基准信号分别输入到加法器进行求和操 作, 并将求和的结果作为所述阶跃响应模块的输出结果。 5. 根据权利要求 4所述的方法, 其中, 如果所述输入信号变化的最小间隔时间大 于 FIR滤波器的阶跃响应时间长度, 则设置一个所述阶跃响应模块; 如果所述 输入信号变化的最小间隔时间小于 FIR滤波器的阶跃响应时间长度, 则设置多 个所述阶跃响应模块,所述阶跃信号依次分配给所述多个阶跃响应模块,其中, 每个所述阶跃响应模块输出各自的输出结果, 然后再对所有所述阶跃响应模块 的输出结果进行求和。 根据权利要求 1至 5中任一项所述的方法, 其中, 对所有的阶跃响应求和得到 对所述输入信号进行 FIR滤波的滤波结果的步骤还包括: 若采用二进制补码运算或者所述输出结果的范围满足输入信号与响应数据 乘积的最大值和最小值, 则对出现溢出的输出结果不做处理。 一种数字滤波装置, 包括: 沿提取单元, 设置为对需要进行 FIR滤波的输入信号进行沿提取得到阶跃 信号; 查表单元, 设置为从预先存储的单位阶跃响应表中输出单位阶跃响应; 处理单元, 设置为将所述阶跃信号的幅度和单位阶跃响应相乘得到阶跃响 应, 并对所有的阶跃响应求和得到对所述输入信号进行 FIR滤波的滤波结果。 根据权利要求 7所述的装置, 其中, 还包括: 计算单元, 设置为计算 FIR滤波器的单位阶跃响应; 存储单元, 设置为将 FIR滤波器的单位阶跃响应数据存储在所述单位阶跃 响应表中。 根据权利要求 7所述的装置, 其中, 所述处理单元包括: 缓存器, 设置为当检测到有所述阶跃信号时将所述处理单元当前的输出结 果反馈到所述缓存器, 并保存在所述缓存器中作为基准信号; 乘法器,设置为对所述阶跃信号的幅度和所述单位阶跃响应进行相乘操作; 第一加法器, 设置为对所述乘法器输出的输出结果和所述缓存器输出的所 述基准信号进行求和操作, 并将求和的结果作为所述处理模块的输出结果。 根据权利要求 9所述的装置, 其中, 如果所述输入信号变化的最小间隔时间小 于 FIR滤波器的阶跃响应时间长度, 则设置多个所述处理模块, 所述阶跃信号 依次分配给所述多个处理模块, 其中, 所述装置还包括: 第二加法器, 设置为 对每个所述处理模块输出的输出结果进行求和。 |
L-1 L-l L-1
Χ^) =∑Η - =∑Η ∑ - ί -^) =∑Λ∑Η -^- =∑ Α ^-^) i= i= k k i= k 从上述公式可以看出, 各个阶跃信号分量单独作用于滤波器的阶跃响 应之和即为 该输入信号 x (")在滤波器下的冲激响应。 为达到上述目的,本实施例提供了一种数字 FIR滤波器,如图 1所示,该数字 FIR 滤波器包括:沿提取模块 101、分配器 102、阶跃响应池 103、第 0路阶跃响应模块 104、 第 1路阶跃响应模块 105、第 2路阶跃响应模块 106、第 N-1路阶跃响应模块 107以及 加法器 108。 图 2是根据本发明实施例的阶跃响应模块的示意 , 其包括: 检测单元 201、 指 针计数器 202、 FIR滤波器的单位阶跃响应表 203、 乘法器 204、 缓存器 205以及加法 器 206。 图 1和图 2中的各个部件可以通过查阶跃响应表的方法 现 FIR数字滤波器, 当 输入信号为矩形波或阶梯波时, 能够解决现有技术中 FIR滤波器需要大量乘法器和加 法器的问题, 达到了降低硬件资源使用、 提高系统运行效率的效果。 下面结合附图来详细描述具体的滤波过程。 如图 1和图 2所示, 本实施例的滤波方法包括以下步骤: 步骤 S1 :计算 FIR滤波器的单位阶跃响应,将单位阶跃响应数 据存储在一张表中。 步骤 S2: 输入信号 x (")经过沿提取模块 101进行沿提取, 在发生沿跳变的时刻提 取出阶跃信号。 步骤 S3 :阶跃信号经过分配器 102按顺序依次分配给阶跃响应池 103中的 N路阶 跃响应模块。 N的取值不小于输入信号在单位阶跃响应长度 发生的最大的变化次数。 阶跃响应池 103由第 0路阶跃响应模块 104、第 1路阶跃响应模块 105、第 2路阶 跃响应模块 106. . . .和第 N-1路阶跃响应模块 107共 N路阶跃响应模块组成, N路阶跃 响应模块输出的结果分别是 S。 Si S 2 .... S N _i。 每个阶跃响应模块的内部处理过程如图 2所示: 经分配后的阶跃信号送入检测单 元 201进行检测, 检测单元输出三组信号: 触发信号、 启动信号和阶跃信号的幅度。 当检测到有阶跃信号时, 检测单元 201输出触发信号对缓存器 205进行刷新, 将当前 模块输出结果通过缓存器保存下来作为输出基 准; 与此同时, 启动信号启动指针计数 器 202进行查表, 通过指针依次取出单位阶跃响应表 203中的数据; 取表数据和阶跃 信号的幅度输入到乘法器 204相乘; 乘法器的输出和基准信号分别输入到加法器 206, 其相加结果作为该阶跃响应模块的输出。 步骤 S4: 阶跃响应池 103输出的 N路阶跃响应信号 S。 Si S 2 .... S N -i输入给加法器
108进行相加求和, 其求和结果为该 FIR滤波器的输出。 在每个阶跃响应模块中, 由于存在加法器 206, 因此可能会遇到加法器 206输出 结果溢出的情况, 例如连续两个上升沿的正阶跃信号相加, 结果溢出出现负数。 出现 这种情况时可以通过扩展有效数据位数防止溢 出; 或者, 可以在满足下面 2个条件时 对溢出结果不做处理: 1 ) 采用二进制补码运算; 2) 保证最后的加法器 108的输出范 围能够满足输入信号 x (")和单位阶跃响应乘积的最大值和最小值 。 实施例 2 基于图 1和图 2所示的滤波装置, 本发明还提供了一种优选的数字滤波方法, 如 图 3所示, 其包括步骤 S302至步骤 S308: S302, 对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号;
S304, 从预先存储的单位阶跃响应表中输出单位阶跃 响应;
S306, 将阶跃信号的幅度和单位阶跃响应相乘得到阶 跃响应; S308, 对所有的阶跃响应求和得到对输入信号进行 FIR滤波的滤波结果。 在本优选的实施例中, 通过提取阶跃信号, 查表输出阶跃响应, 并对阶跃响应进 行叠加的方法, 实现了高效的 FIR滤波计算, 这种方式对应的硬件结构简单、 占用硬 件资源非常少, 能够解决现有技术中 FIR滤波器需要大量乘法器和加法器的问题, 达 到了降低资源使用、 提高系统运行效率的效果。 对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号的 步骤包括: 在输入信 号发生沿跳变时提取出阶跃信号。 在本实施例中, 通过输入信号的沿跳变可以准确地 提取出阶跃信号。 在对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号之 前, 数字滤波方法 还包括: 计算 FIR滤波器的单位阶跃响应; 将单位阶跃响应数据存储在单位阶跃响应 表中。 通过这种查表的方式, 可以快速地得到 FIR滤波器的单位阶跃响应, 提高了系 统的运算速度。 从预先存储的单位阶跃响应表中输出单位阶跃 响应并将所述阶跃信号的幅度和所 述单位阶跃响应相乘得到阶跃响应的步骤包括 :当阶跃响应模块检测到有阶跃信号时, 对缓存器进行刷新, 将阶跃响应模块当前的输出结果反馈到缓存器 , 并保存在缓存器 中作为基准信号; 从所述单位阶跃响应表中获取所述单位阶跃响 应, 并将所述阶跃信 号的幅度和单位阶跃响应输入到乘法器进行相 乘操作; 将乘法器的输出结果和基准信 号分别输入到加法器进行求和操作, 并将求和的结果作为阶跃响应模块的输出结果 。 在本实施例中, 通过对当前的输出结果进行累积相加, 可以实现只通过较少的加法器 和乘法器既可得到对所述输入信号进行 FIR滤波的滤波结果, 从而大大简化了硬件结 构, 降低了系统的复杂度和成本。 如果输入信号变化的最小间隔时间大于 FIR滤波器的阶跃响应时间长度, 则设置 一个阶跃响应模块; 如果输入信号变化的最小间隔时间小于 FIR滤波器的阶跃响应时 间长度, 则设置多个阶跃响应模块, 阶跃信号依次分配给多个阶跃响应模块, 其中, 每个阶跃响应模块输出各自的输出结果, 然后再对所有阶跃响应模块的输出结果进行 求和。 在本实施例中, 通过对不同的输入信号来设置不同的处理模块 , 增加了本发明 的适用性。 对所有的阶跃响应求和得到对输入信号进行 FIR滤波的滤波结果的步骤还包括: 若采用二进制补码运算或者输出结果的范围满 足输入信号与响应数据乘积的最大值和 最小值, 则对出现溢出的输出结果不做处理。 实施例 3 下面结合附图及具体实施例对本发明的两个实 施例再作进一步详细的说明: 第一个实施例为设计一个 649阶的低通 FIR滤波器, 图 4是该 FIR滤波器的单脉 冲响应曲线, 图 5是该 FIR滤波器的单位阶跃响应, 图 6是输入信号, 其波形为台阶 波, 在滤波器的单位阶跃响应长度内发生的最大变 化次数为 3, N不小于 3, 优选的, N在本实例中取值为 3, 阶跃响应池有 3个阶跃响应模块。
S1 : 计算 649阶低通 FIR滤波器的单位阶跃响应, 将单位阶跃响应数据存储在一 张表中。 图 5是该滤波器的单位阶跃响应曲线。
S2: 在沿提取模块中对输入信号进行沿提取, 得到多路的阶跃信号。 图 7中, 第 0路信号是输入信号, 第 1~10路信号分别是沿提取后输出的各路阶跃信 。
S3: 在分配器模块中对阶跃信号进行计数, 根据计数结果按顺序依次分配给阶跃 相应池中的 3个阶跃响应模块: 其中, 阶跃信号(1,4,7,10)通过第 0路阶跃响应模块, 阶跃信号 (2,5,8) 通过第 1路阶跃响应模块, 阶跃信号 (3,6,9) 通过第 2路阶跃响应 模块。 S4: 在每个阶跃响应模块中, 阶跃信号送入检测单元检测, 当检测到阶跃信号时, 将当前模块输出结果通过缓存器保存下来作为 输出基准; 同时启动指针计数器进行查 表, 查表输出数据和阶跃信号的幅度相乘, 相乘结果和输出基准相加为该路阶跃响应 模块的输出。 图 8中仿真了图 6中 10路阶跃信号的阶跃响应。 第 0路是输入信号, 第 1~10路 是各个阶跃信号的阶跃响应。 图 9中的 S Q 、 8 和 S 2 信号分别是阶跃响应池中三个阶跃模块输 出。
S5: 阶跃响应池输出的阶跃响应信号 S Q 、 Si S 2 输入给加法器进行相加, 其相加 结果为该 FIR滤波器的输出, 图 10是经过加法器后的波形,也是本发明第一实 的输 出波形。 上述的实例需要 3个乘法器和 4个加法器实现, 如果采用乘累加结构实现的 FIR 数字滤波器, 需要使用 650个乘法器和 649个加法器, 即使由于 FIR滤波器具有对称 结构, 可使得乘法器数量减半, 也至少需要 325个乘法器和 649个加法器。 第二个实施例是为了说明当阶跃响应模块满足 2个条件时,可对结果溢出不处理。 该实施例采用的是 623阶 FIR低通滤波器。如图 11的第一路波形所示,输入信号为一 组矩形波, 在滤波器的单位阶跃响应长度内发生的最大变 化次数为 1, 设计时, N取 值为 2, 阶跃响应池有两个阶跃响应模块。 输入信号经过沿提取模块的提取, 上升沿的正阶跃信号都分配给第 0路阶跃响应 模块, 下降沿的负阶跃信号分配给第 1路阶跃响应模块。 图 11中的第二路和第三路分 别是两个模块的输出波形, 在第 0路中, 由于处理的都是上升沿的正阶跃信号, 输出 响应向上叠加, 导致输出数据在沿 1101处溢出, 变成负数。 同理, 第 1路处理的都是 下降沿的负阶跃信号, 输出数据在沿 1102中溢出, 变成正数。 由于该滤波器设计时满 足了两个条件: 采用二进制补码运算和最后的 109加法器的输出范围能够满足输入信 号和单位阶跃响应乘积的最大值和最小值,因 此不处理两路阶跃响应模块的溢出数据。 图 11中的第四路为该 FIR滤波器输出结果,该结果和传统方法乘累加 和结构输出的结 果一致。 从两个实例及其仿真结果可以看出, 当输入波形为阶梯波或者矩形波时, 采用本 发明的方法能够解决现有技术中 FIR滤波器需要大量乘法器和加法器的问题, 达到了 降低资源使用、 提高系统运行效率的效果。 实施例 4 图 12是根据本发明实施例的数字滤波装置的结构 , 其包括: 沿提取单元 1202, 设置为对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号; 查找单元 1204, 与 沿提取单元 1202和存储单元 1210连接, 设置为从预先存储的单位阶跃响应表中输出 单位阶跃响应; 处理单元 1206, 与查找单元 1204连接, 设置为将所述阶跃信号的幅 度和单位阶跃响应相乘得到阶跃响应, 并对所有的阶跃响应求和得到对所述输入信号 进行 FIR滤波的滤波结果。 在本实施例中, 通过查找的方式来得到与阶跃信号的对应的响 应数据, 使得能够 快速地进行滤波计算, 这种方式对应的硬件结构简单、 占用硬件资源非常少, 能够解 决现有技术中 FIR滤波器需要大量乘法器和加法器的问题, 达到了降低资源使用、 提 高系统运行效率的效果。 在对需要进行 FIR滤波的输入信号进行沿提取得到阶跃信号的 步骤中, 沿提取单 元 1202在输入信号发生沿跳变时提取出阶跃信号 在本实施例中,通过输入信号的沿 跳变可以准确地提取出阶跃信号。 数字滤波装置还包括: 计算单元 1208, 设置为计算 FIR滤波器的单位阶跃响应; 存储单元 1210, 与计算单元 1208连接, 设置为将 FIR滤波器的单位阶跃响应数据存 储在所述单位阶跃响应表中。 通过这种查表的方式, 可以快速地得到 FIR滤波器的单 位阶跃响应, 提高了系统的运算速度。 处理单元 1206包括: 缓存器, 设置为当检测到有阶跃信号时将处理单元当前 的输 出结果反馈到缓存器, 并保存在缓存器中作为基准信号; 乘法器, 设置为对阶跃信号 的幅度和所述单位阶跃响应进行相乘操作; 第一加法器, 设置为对乘法器输出的输出 结果和缓存器输出的基准信号进行求和操作, 并将求和的结果作为处理模块的输出结 果。 上述缓存器、 乘法器以及第一加法器的连接结构可以参考图 2所示的结构。 在本 实施例中, 通过对当前的输出结果进行累积相加, 可以实现只通过较少的加法器和乘 法器既可得到对所述输入信号进行 FIR滤波的滤波结果, 从而大大简化了硬件结构, 降低了系统的复杂度和成本。 如果输入信号变化的最小间隔时间小于 FIR滤波器的阶跃响应时间长度, 则设置 多个处理模块, 阶跃信号依次分配给多个处理模块, 其中, 数字滤波装置还包括: 第 二加法器 1212, 与处理单元 1206连接, 设置为对每个处理模块输出的输出结果进行 求和。 在本实施例中, 通过对不同的输入信号来设置不同的处理模块 , 增加了本发明 的适用性。 在对所有的阶跃响应求和得到对输入信号进行 FIR滤波的滤波结果的步骤中, 若 采用二进制补码运算或者输出结果的范围满足 输入信号与响应数据乘积的最大值和最 小值, 则处理单元 1206对出现溢出的输出结果不做处理。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路 模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。