CN110492867B - 一种用数字电路实现的插值滤波器系统 - Google Patents

一种用数字电路实现的插值滤波器系统 Download PDF

Info

Publication number
CN110492867B
CN110492867B CN201910925674.5A CN201910925674A CN110492867B CN 110492867 B CN110492867 B CN 110492867B CN 201910925674 A CN201910925674 A CN 201910925674A CN 110492867 B CN110492867 B CN 110492867B
Authority
CN
China
Prior art keywords
output
operation module
stage fir
stage
filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910925674.5A
Other languages
English (en)
Other versions
CN110492867A (zh
Inventor
王莉莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Amicro Semiconductor Co Ltd
Original Assignee
Zhuhai Amicro Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN201910925674.5A priority Critical patent/CN110492867B/zh
Priority to US17/637,818 priority patent/US20220284912A1/en
Priority to KR1020227003241A priority patent/KR20220025051A/ko
Priority to PCT/CN2019/116930 priority patent/WO2021056711A1/zh
Priority to JP2022502178A priority patent/JP7344365B2/ja
Priority to EP19946877.8A priority patent/EP4054077A4/en
Publication of CN110492867A publication Critical patent/CN110492867A/zh
Application granted granted Critical
Publication of CN110492867B publication Critical patent/CN110492867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0202Two or more dimensional filters; Filters for complex signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0635Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/065Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/0657Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is higher than the input sampling frequency, i.e. interpolation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/06Continuously compensating for, or preventing, undesired influence of physical parameters
    • H03M1/0617Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence
    • H03M1/0626Continuously compensating for, or preventing, undesired influence of physical parameters characterised by the use of methods or means not specific to a particular type of detrimental influence by filtering
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/66Digital/analogue converters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明一种用数字电路实现的插值滤波器系统,包括插值过滤运算控制器、级联驱动模块、中间结果缓存RAM和滤波系数存储ROM,插值过滤运算控制器包括级联的滤波器运算模块和主状态机,中间结果缓存RAM,用于存储插值滤波器系统的外部输入的数据和各级滤波器运算模块输出的中间结果;滤波系数存储ROM,用于存储各级滤波器运算模块计算所需的滤波系数;插值过滤运算控制器,用于在级联驱动模块输出的计数节拍的驱动下,控制主状态机选择中间结果缓存RAM或外部直接输入的数据送入级联的滤波器运算模块进行累加操作,也选择滤波系数存储ROM的滤波器系数进行乘法操作,经过级联的滤波器运算模块处理后得到插值滤波的目的。

Description

一种用数字电路实现的插值滤波器系统
技术领域
本发明涉及用于Sigma-delta音频DAC的插值滤波器,具体涉及到一种用数字电路实现的插值滤波器系统。
背景技术
插值滤波器被广泛应用在发射机,音频DAC等上变频系统中,用于提高输入信号的采样频率,滤除通带范围内噪声等作用,插值滤波器可由模拟电路或数字电路实现,数字电路实现可以克服模拟电路产生的电压、温度漂移和噪声等问题,且精确度高,具有稳定的线性相位。但是,现有插值滤波器的控制逻辑电路和运算逻辑电路大多是并行逻辑结构,包括比较大的寄存器阵列和复杂的流水线控制器,而且随着数字电路级数的增多,出现的延时越来越大,使得整个电路设计复杂,电路运行容易出现工作的故障,而且电路所属的芯片所占面积较大。
发明内容
为了解决上述技术缺陷,本发明采用状态机对级联的FIR插值滤波器进行建模并实现乘累加运算,结构简单,且整个系统模块采用1个时钟源,不涉及异步时钟信号,电路使用串行结构且状态机的使用让整个系统具有进一步优化的空间。具体技术方案如下:
一种用数字电路实现的插值滤波器系统,包括插值过滤运算控制器、级联驱动模块、中间结果缓存RAM和滤波系数存储ROM,插值过滤运算控制器包括级联的滤波器运算模块和对应的主状态机,相应的,中间结果缓存RAM包括级联的RAM;其中:中间结果缓存RAM,用于存储插值滤波器系统的外部输入的数据和插值过滤运算控制器内部包括的各级滤波器运算模块计算的中间结果;滤波系数存储ROM,用于存储插值过滤运算控制器内部包括的各级滤波器运算模块计算所需的滤波系数;级联驱动模块包括用于控制插值过滤运算控制器读写中间结果缓存RAM和滤波系数存储ROM的计数器;插值过滤运算控制器,用于在级联驱动模块输出的计数节拍的驱动下,控制主状态机选择中间结果缓存RAM或外部直接输入的数据送入级联的滤波器运算模块进行累加操作,同时也控制主状态机选择滤波系数存储ROM的滤波器系数送入级联的滤波器运算模块进行乘法操作,经过级联的滤波器运算模块处理后得到插值滤波的目的。与现有技术相比,插值滤波器系统提供一种级联结构下的插值运算系统,基于状态机逻辑实现相乘累加运算及不同级运算模块之间的跳转,容易控制,性能可在一定范围内改善,灵活性较高。
进一步地,所述插值过滤运算控制器包括n个级联的滤波器运算模块和对应的子状态机,分别等效于相应级联的半带滤波器,每一级的半带滤波器的输出结果都划分为奇数下标输出和偶数下标输出,是依据每一级的半带滤波器在所述级联驱动模块输出的计数节拍驱动下先后输出的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记;其中,所述主状态机包括n个子状态机;在所述级联驱动模块驱动配合主状态机完成以下功能:第一步,完成当前一级半带滤波器的工作,将需要保存的偶数下标的数据存放在所述中间结果缓存RAM相应的地址单元中,将需要保存的奇数下标输出的数据存放在当前一级半带滤波器内部相应的寄存器中;第二步,将当前一级半带滤波器的所有输出结果直接地或通过内部相应寄存器间接地输出至下一级半带滤波器中,然后,将下一级半带滤波器需要保存的偶数下标输出的数据存放在所述中间结果缓存RAM相应的地址单元中,将需要保存的奇数下标输出的数据存放在下一级半带滤波器内部相应的寄存器中;重复迭代第一步和第二步实现串行运算,直到第n级半带滤波器先后运算得到的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器的插值结果,n为大于或等于1的整数。
与现有技术相比,该技术方案基于状态机实现一种级联半带滤波器的结构,逐步提高信号的采样率;同时通过将各级的半带滤波器划分为奇数下标输出支路和偶数下标输出支路,将每一级半带滤波器复用为与当前插值输出数目相匹配的子滤波器,节省硬件资源。
进一步地,n设置为3,所述级联的滤波器运算模块包括第一级FIR运算模块、第二级FIR运算模块和第三级FIR运算模块,所述主状态机包括第一级FIR子状态机、第二级FIR子状态机和第三级FIR子状态机,所述插值过滤运算控制器还包括第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器和第七寄存器,所述中间结果缓存RAM具体包括第一级FIR的SRAM、第二级FIR的SRAM、第三级FIR的SRAM和1个最终结果SRAM;每一级的滤波器运算模块的输出都划分为奇数下标输出和偶数下标输出,是依据每一级的滤波器运算模块在所述级联驱动模块输出的计数节拍驱动下先后输出结果而确定的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记;在所述级联驱动模块配合主状态机的驱动控制前提下:所述插值滤波器系统的外部输入的待插值的数据x0直接或间接通过第一级FIR的SRAM持续输入第一级FIR运算模块的一个数据输入端,在第一级FIR子状态机的驱动控制作用下,第一级FIR运算模块插值处理外部输入的待插值的数据;第一级FIR运算模块的第一输出结果y1输出至第一寄存器,第一级FIR运算模块的第零输出结果y0输出至第二级FIR的SRAM,第一寄存器输出端连接至第二级FIR的SRAM的输入端;其中,第一级FIR运算模块的第一输出结果y1作为奇数下标输出,第一级FIR运算模块的第零输出结果y0作为偶数下标输出;在第二级FIR子状态机的驱动控制作用下,第二级FIR运算模块根据第一级FIR运算模块的第零输出结果y0运算产生第二级FIR运算模块的第零输出结果z0和第二级FIR运算模块的第一输出结果z1;第二级FIR运算模块的第零输出结果z0输出至第三级FIR的SRAM,第二级FIR运算模块的第一输出结果z1输出至第二寄存器,其中,第二级FIR运算模块的第一输出结果z1作为奇数下标输出,第二级FIR运算模块的第零输出结果z0作为偶数下标输出;在第三级FIR子状态机的驱动控制作用下,第三级FIR运算模块根据第二级FIR运算模块的第零输出结果z0运算产生第三级FIR运算模块的第零输出结果p0和第三级FIR运算模块的第一输出结果p1;第三级FIR运算模块的第零输出结果p0输出至最终结果SRAM,第三级FIR运算模块的第一输出结果p1输出至第三寄存器,第三寄存器再将第三级FIR运算模块的第一输出结果p1输出至最终结果SRAM,其中,第三级FIR运算模块的第一输出结果p1作为奇数下标输出,第三级FIR运算模块的第零输出结果p0作为偶数下标输出;第二寄存器输出第二级FIR运算模块的第一输出结果z1至第三级FIR运算模块,在第三级FIR子状态机的驱动控制作用下,第三级FIR运算模块根据第二级FIR运算模块的第一输出结果z1运算产生第三级FIR运算模块的第二输出结果p2和第三级FIR运算模块的第三输出结果p3;第三级FIR运算模块的第二输出结果p2输出至最终结果SRAM,第三级FIR运算模块的第三输出结果p3输出至第四寄存器,第四寄存器再将第三级FIR运算模块的第三输出结果p3输出至最终结果SRAM,其中,第三级FIR运算模块的第三输出结果p3作为奇数下标输出,第三级FIR运算模块的第二输出结果p2作为偶数下标输出;第一寄存器输出第一级FIR运算模块的第一输出结果y1至第二级FIR运算模块,在第二级FIR子状态机的驱动控制作用下,第二级FIR运算模块根据第一级FIR运算模块的第一输出结果y1运算产生第二级FIR运算模块的第二输出结果z2和第二级FIR运算模块的第三输出结果z3;第二级FIR运算模块的第二输出结果z2输出至第三级FIR的SRAM,第二级FIR运算模块的第三输出结果z3输出至第五寄存器,其中,第二级FIR运算模块的第三输出结果z3作为奇数下标输出,第二级FIR运算模块的第二输出结果z2作为偶数下标输出;在第三级FIR子状态机的驱动控制作用下,第三级FIR运算模块根据第二级FIR运算模块的第二输出结果z2运算产生第三级FIR运算模块的第四输出结果p4和第三级FIR运算模块的第五输出结果p5;第三级FIR运算模块的第四输出结果p4输出至最终结果SRAM,第三级FIR运算模块的第五输出结果p5输出至第六寄存器,第六寄存器再将第三级FIR运算模块的第五输出结果p5输出至最终结果SRAM,其中,第三级FIR运算模块的第五输出结果p5作为奇数下标输出,第三级FIR运算模块的第四输出结果p4作为偶数下标输出;第五寄存器输出第二级FIR运算模块的第三输出结果z3至第三级FIR运算模块,在第三级FIR子状态机的驱动控制作用下,第三级FIR运算模块根据第二级FIR运算模块的第三输出结果z3运算产生第三级FIR运算模块的第六输出结果p6和第三级FIR运算模块的第七输出结果p7;第三级FIR运算模块的第六输出结果p6输出至最终结果SRAM,第三级FIR运算模块的第七输出结果p7输出至第七寄存器,第七寄存器再将第三级FIR运算模块的第七输出结果p7输出至最终结果SRAM,其中,第三级FIR运算模块的第七输出结果p7作为奇数下标输出,第三级FIR运算模块的第六输出结果p6作为偶数下标输出。
与现有技术相比,该技术方案采用3个子状态机对应控制三级FIR运算模块进行读写和相乘累加运算,对输入的待插值的数据x0执行串行的8倍插值操作,其中,在相应状态机的控制下,有选择地复用FIR运算模块和所述中间结果缓存RAM,避免不必要寄存器资源和逻辑控制单元,节省硬件资源,减小芯片面积。
进一步地,当所述插值滤波器系统的外部输入的待插值的数据不止一个时,所述主状态机重新从初始状态开始执行全部状态转换流程,使得所述第n级半带滤波器产生新的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器新输出的插值结果。增强所述插值滤波器系统处理数据的有效性,提高系统的实时性。
进一步地,所述级联驱动模块包括写逻辑控制子模块和读逻辑控制子模块,写逻辑控制子模块和读逻辑控制子模块共享一个作为所述插值滤波器系统的驱动时钟源的计数器,写逻辑控制子模块用于根据计数节拍控制所述中间结果缓存RAM的写操作地址和所述滤波系数存储ROM的写操作地址,读逻辑控制子模块用于根据计数节拍控制所述中间结果缓存读取RAM的读操作地址和所述滤波系数存储ROM的读操作地址;写逻辑控制子模块和读逻辑控制子模块通过驱动对应的所述主状态机,来控制所述插值过滤运算控制器内部的级联的滤波器运算模块按照时序执行插值运算操作。该技术方案有利于控制状态机模型跳转时序,仅有1个时钟信号,保证整个设计不含有跨时钟的异步处理问题,减少了设计复杂度,可以使整个系统性能更稳定。
进一步地,所述n个级联的滤波器运算模块中,每一级FIR运算模块包括读结束确认子模块、写结束确认子模块和相乘累加子模块;写结束确认子模块用于根据写逻辑控制子模块输出的计数控制信号,将上一级FIR运算模块输出的需要在当前一级FIR运算模块内运算的数据写入所述中间结果缓存RAM相应地址区间内;读结束确认子模块用于根据读逻辑控制子模块输出的计数控制信号,交由相乘累加子模块读取所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据;相乘累加子模块,由乘法器和加法器构成的串行移位相加结构,在写结束确认子模块和读结束确认子模块的共同控制下,选择所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据送入加法器进行累加操作,同时也选择所述滤波系数存储ROM的滤波器系数作为乘数送入乘法器进行乘法操作,其中,送入加法器的数据或者加法操作得到的中间累加值作为送入乘法器的被乘数。从电路实现代码的复杂度上看,状态机计数控制实现8倍插值串行运算比并行、DA分布式等结构逻辑更简单,代码易于实现和维护,具有高效的顺序控制性。
进一步地,所述级联的半带滤波器中,每一级半带滤波器设置的阶数不同,所述滤波系数存储ROM的滤波器系数中存在零值,零值的个数等于(每一级半带滤波器的阶数-1)/2-1; ROM的滤波器系数中存在零值的地址区间的设置以及所述n个级联的滤波器运算模块读取滤波器系数的零值的时序,决定每一级的所述滤波器运算模块的所述奇数下标输出等效于对应一级所述滤波器运算模块的输入信号的延时处理结果。该技术方案采用半带滤波器结构实现插值会减少1/2的运算量;在这种结构中,由于半带滤波器的滤波系数中有近半数滤波器系数为0,可以不参与运算,所述滤波系数存储ROM只需要存储非0系数即可,因此节省了一半的ROM空间。
进一步地,所述滤波器系数由定点化处理为16比特位的二进制数。该技术方案综合评估滤波器的通带纹波和阻带衰减所带来的误差影响,以及所占用的硬件资源成本。
附图说明
图1为本发明实施例提供的一种用数字电路实现的插值滤波器系统的实现框架示意图。
图2为本发明实施例提供的插值过滤运算控制器的内部结构及其外部连接结构的实现框架示意图。
图3 为本发明实施例提供的第n级FIR运算模块的内部结构及其外部连接结构的实现框架示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种用数字电路实现的插值滤波器系统,该插值滤波器系统包括插值过滤运算控制器、级联驱动模块、中间结果缓存RAM和滤波系数存储ROM,插值过滤运算控制器包括级联的滤波器运算模块和对应的主状态机,相应的,中间结果缓存RAM包括级联的RAM;这里的主状态机是一种数字电路的技术领域的电路工作状态跳转的逻辑电路,是基于硬件语言实现的,而硬件语言也是数字电路的常用实现方式;同时,前述功能模块都是由相应的数字逻辑电路设计而成。其中:中间结果缓存RAM,可以优选为片上SRAM,用于存储插值滤波器系统的外部持续输入的数据和插值过滤运算控制器内部包括的各级滤波器运算模块计算的中间累加结果,插值滤波器系统的外部输入的数据data_in,本实施例为PCM格式的音频输入数据或其他待插值处理的数据,data_in既可以直接输入插值过滤运算控制器,也可以通过连接中间结果缓存RAM输入插值过滤运算控制器参与插值操作。滤波系数存储ROM,用于存储插值过滤运算控制器内部包括的各级滤波器运算模块计算所需的滤波系数;级联驱动模块包括用于控制插值过滤运算控制器读写中间结果缓存RAM和滤波系数存储ROM的计数器,该计数器等效于地址计数器或地址译码器,支持可配置,使其在适当的时序条件下向中间结果缓存RAM发出控制触发信号ctrl_d,向滤波系数存储ROM发出控制触发信号ctrl_c。插值过滤运算控制器,用于在级联驱动模块输出的计数节拍的驱动下,即在控制触发信号ctrl_d和控制触发信号ctrl_c的共同控制下,所述主状态机选择中间结果缓存RAM或外部直接输入的数据送入级联的滤波器运算模块进行累加操作,同时也控制主状态机选择滤波系数存储ROM的滤波器系数送入级联的滤波器运算模块进行乘法操作,经过级联的滤波器运算模块处理后得到插值滤波的目的,所述级联的滤波器运算模块输出一个和值,即图1中插值过滤运算控制器的输出端fir_out。本实施例的滤波器运算中可以总结为:和=积1+积2+积3+…,积=乘数*被乘数,这里的乘数就是滤波系数存储ROM的滤波器系数,被乘数是按照时序要求从中间结果缓存RAM选择的数据(可以是外部直接输入的缓冲数据或者是累加中间结果),插值过滤运算控制器控制外接送进来的音频数据和一次乘累加运算的结果信号进行相乘累加操作。与现有技术相比,插值滤波器系统提供一种级联结构下的插值运算系统,基于状态机逻辑实现相乘累加运算及不同级运算模块之间的跳转,容易控制,性能可在一定范围内改善,灵活性较高。
需要说明的是,有限长脉冲响应滤波器FIR有很多特点,如严格的线性相位和幅度特性具有奇对称、偶对称等,其中利用FIR的线性相位特性可以保证FIR数字电路设计的稳定性,否则,如果系统不稳定,那么随着数字电路级数的增多,系统产生的延时越来越大,最后导致整个系统不能工作;因此本发明实施例采用线性相位且幅度对称特性的FIR滤波器实现插值滤波。半带滤波器是FIR滤波器的其中一种,半带滤波器分为内插和抽取2种,本发明实施例使用内插滤波器,适用于音频播放系统中的应用场景;半带滤波器的特点是每输入一个采样点,半带滤波器则输出2个采样点;半带滤波器在每2个输入采样点之间插入一个值,来实现2倍插值的目的;此外,插值的方式有很多种,如线性插值,插0等,本发明实施例采用直接插0方法。
具体地,所述插值过滤运算控制器包括n个级联的滤波器运算模块和对应的子状态机,分别等效于相应级联的半带滤波器,其中,所述主状态机包括n个前述的子状态机,这里的子状态机也是一种数字逻辑控制电路。所述插值过滤运算控制器还设有专门缓存n个级联的滤波器运算模块的累加结果的寄存器;每一级的半带滤波器的输出结果都划分为奇数下标输出和偶数下标输出,是依据每一级的半带滤波器在所述级联驱动模块输出的计数节拍驱动下先后输出的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记;比如,时刻T1,第一级半带滤波器运算输出a0和a1;时刻T2,第二级半带滤波器根据第一级半带滤波器输出的a0运算输出b0和b1;时刻T3,第三级半带滤波器根据第二级半带滤波器输出的b0运算输出c0和c1;时刻T4,第二级半带滤波器根据第一级半带滤波器输出的a1运算输出b2和b3;时刻T5,第三级半带滤波器根据第二级半带滤波器输出的b1运算输出c2和c3;时刻T6,第三级半带滤波器根据第二级半带滤波器输出的b2运算输出c4和c5;时刻T7,第三级半带滤波器根据第二级半带滤波器输出的b3运算输出c6和c7。n个前述的子状态机可通过硬件代码进行触发条件和逻辑上的修改,使得整个系统容易控制。
在所述级联驱动模块驱动配合主状态机完成以下功能:第一步,完成当前一级半带滤波器的工作,将当前一级半带滤波器需要保存的偶数下标输出的数据存放在所述中间结果缓存RAM相应的地址单元中,将当前一级半带滤波器需要保存的奇数下标输出的数据存放在当前一级半带滤波器内部相应的寄存器中,其中,当前一级半带滤波器复用为2的a次幂个子滤波器和寄存器,a为当前一级的级数减去1,当前一级半带滤波器按照需要保存的输出的数据分时完成2的a次幂个半带滤波器的功能,实际上只有一个半带滤波器的电路,由对应的子状态机搭配所述主状态机控制当前一级半带滤波器完成2的a次幂个半带滤波器的运算功能。第二步,将当前一级半带滤波器的所有输出结果直接地或通过内部相应寄存器间接地输出至下一级半带滤波器中,然后,将下一级半带滤波器需要保存的偶数下标输出的数据存放在所述中间结果缓存RAM相应的地址单元中,将需要保存的奇数下标输出的数据存放在下一级半带滤波器内部相应的寄存器中,其中,下一级半带滤波器复用为2的b次幂个子滤波器和寄存器,b为下一级的级数减去1,下一级半带滤波器按照需要保存的输出的数据分时完成2的b次幂个半带滤波器的功能,实际上只有一个半带滤波器的电路,由对应的子状态机搭配所述主状态机控制下一级半带滤波器完成2的b次幂个半带滤波器的运算功能。重复迭代第一步和第二步实现串行运算,直到第n级半带滤波器先后运算得到的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器输出的插值结果,n为大于或等于1的整数。与现有技术相比,本实施例基于状态机实现级联半带滤波器的结构,逐步提高信号的采样率;同时通过将各级的半带滤波器划分为奇数下标输出支路和偶数下标输出支路,将每一级半带滤波器复用为与当前插值输出数目相匹配的子滤波器,通过尽可能地复用硬件资源,减小不必要的存储单元和控制逻辑。
前述实施例中,对于等效的所述级联的半带滤波器,若其中一级半带滤波器的阶数设置为11阶,即设置当前一级的HBF阶数为11-taps;所述滤波系数存储ROM读取的相匹配的滤波系数用coeff表示,半带滤波器的输入的待插值数据或中间结果数据data用xi表示,半带滤波器的输出用yi表示,所述滤波系数存储ROM的滤波器系数中存在零值,零值的个数等于(11-1)/2-1=4;
如下实例为11抽头的半带滤波器HBF的时域表现形式和插值过程:
滤波系数coeff=[c0,0,c1,0,c2,1,c2,0,c1,0,c0];
1nT时刻的xi包括:x0,0,x1,0,x2,0,x3,0,x4,0,x5;
1.5nT时刻的xi包括:0,x0,0,x1,0,x2,0,x3,0,x4,0;
2nT时刻的xi包括:x1,0,x2,0,x3,0,x4,0,x5,0,x6;
2.5nT时刻的xi包括:0,x1,0,x2,0,x3,0,x4,0,x5,0;
3nT时刻的xi包括:x2,0,x3,0,x4,0,x5,0,x6,0,x7;
3.5nT时刻的xi包括:0,x2,0,x3,0,x4,0,x5,0,x6,0 ;
4nT时刻的xi包括:x3,0,x4,0,x5,0,x6,0,x7,0,x8;
4.5nT时刻的xi包括:0,x3,0,x4,0,x5,0,x6,0,x7,0;
半带滤波器的输出为coeff和各个时刻输入的所有xi相乘累加,具体表现如下:
y0=c0*x0+c1*x1+c2*x2+c2*x3+c1*x4+c0*x5;
y1=x2;
y2=c0*x1+c1*x2+c2*x3+c2*x4+c1*x5+c0*x6 ;
y3=x3;
y4=c0*x2+c1*x3+c2*x4+c2*x5+c1*x6+c0*x7;
y5=x4;
y6=c0*x3+c1*x2+c2*x3+c2*x4+c1*x5+c0*x6 ;
y7=x5。
因此,ROM的滤波器系数中存在零值的地址区间的设置,以及3个级联的滤波器运算模块读取滤波器系数的零值的时序,决定每一级的所述滤波器运算模块的所述奇数下标输出等效于对应一级所述滤波器运算模块的输入信号的延时处理结果,即奇数下标的输出如y1,y3,y5,y7是输入延时后直接输出的结果;偶数下标的输出如y0,y2,y4,y6,则需要做相乘累加运算。本实施例采用半带滤波器的结构实现插值会减少1/2的运算量;在这种结构中,由于半带滤波器的滤波系数中有近半数的滤波器系数为0,可以不参与运算,所述滤波系数存储ROM只需要存储非0系数即可,因此节省了一半的ROM空间。
在前述实施例的基础上,如图2所示,前述的n设置为3,所述级联的滤波器运算模块包括第一级FIR运算模块、第二级FIR运算模块和第三级FIR运算模块,在插值运算功能上等效于三个级联半带滤波器,即第一级半带滤波器、第二级半带滤波器和第三级半带滤波器,所述滤波系数存储ROM存储有3个相匹配的滤波器系数,分别用于参与第一级FIR运算模块、第二级FIR运算模块和第三级FIR运算模块的乘法运算;所述中间结果缓存RAM具体包括第一级FIR的SRAM、第二级FIR的SRAM、第三级FIR的SRAM和1个最终结果SRAM;第一级FIR的SRAM输入的一个待插值数据,经过所述级联的滤波器运算模块的3级8倍插值处理后,每一级的FIR运算模块均实现2倍插值,使得第三级FIR运算模块累计输出8个信号,从而实现8倍插值的目的。所述主状态机包括的子状态机:第一级FIR子状态机、第二级FIR子状态机和第三级FIR子状态机,使得所述插值滤波器系统支持状态跳转;所述插值过滤运算控制器还包括第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器和第七寄存器,一共设置有2的3次幂-1个寄存器,作为累加中间结果寄存器。
每一级的滤波器运算模块的输出都划分为奇数下标输出和偶数下标输出,是依据每一级的滤波器运算模块在所述级联驱动模块输出的计数节拍驱动下先后输出顺序而确定的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记。
具体地,在所述级联驱动模块配合主状态机的驱动控制前提下,参阅图2可知,所述插值滤波器系统的外部输入的待插值的数据x0间接通过第一级FIR的SRAM持续输入第一级FIR运算模块的一个数据输入端,在第一级FIR子状态机的驱动选择作用下,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,第一级FIR运算模块插值处理外部输入的待插值的数据,包括读写第一级FIR的SRAM和第二级FIR的SRAM;第一级FIR运算模块的第一输出结果y1输出至第一寄存器,第一级FIR运算模块的第零输出结果y0输出至第二级FIR的SRAM,第一寄存器输出端连接至第二级FIR的SRAM的输入端;其中,第一级FIR运算模块的第一输出结果y1作为奇数下标输出,第一级FIR运算模块的第零输出结果y0作为偶数下标输出,第一级FIR运算模块在T0时刻同时输出y0和y1。
在第二级FIR子状态机的驱动选择作用下,第二级FIR运算模块根据第一级FIR运算模块的第零输出结果y0,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生出第二级FIR运算模块的第零输出结果z0和第二级FIR运算模块的第一输出结果z1;在T1时刻,第二级FIR运算模块的第零输出结果z0输出至第三级FIR的SRAM,第二级FIR运算模块的第一输出结果z1输出至第二寄存器,第二级FIR运算模块的偶数下标输出端口和第二寄存器输出端连接至第二级FIR的SRAM的输入端;其中,第二级FIR运算模块的第一输出结果z1作为奇数下标输出,第二级FIR运算模块的第零输出结果z0作为偶数下标输出;T1>T0,且其时间差值需满足第二级FIR运算模块读写运算延时长度。
在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第零输出结果z0,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第零输出结果p0和第三级FIR运算模块的第一输出结果p1;在T2时刻,第三级FIR运算模块的第零输出结果p0输出至最终结果SRAM,第三级FIR运算模块的第一输出结果p1输出至第三寄存器,第三寄存器再将第三级FIR运算模块的第一输出结果p1输出至最终结果SRAM,第三级FIR运算模块的偶数下标输出端口和第三寄存器输出端连接至最终结果SRAM的输入端;其中,第三级FIR运算模块的第一输出结果p1作为奇数下标输出,第三级FIR运算模块的第零输出结果p0作为偶数下标输出,第零输出结果p0先于第一输出结果p1从所述插值过滤运算控制器的输出端fir_out输出至外部器件的端口处;T2>T1,且其时间差值需满足第三级FIR运算模块读写运算延时长度。
第二寄存器输出第二级FIR运算模块的第一输出结果z1至第三级FIR运算模块,在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第一输出结果z1,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第二输出结果p2和第三级FIR运算模块的第三输出结果p3;在T3时刻,第三级FIR运算模块的第二输出结果p2输出至最终结果SRAM,第三级FIR运算模块的第三输出结果p3输出至第四寄存器,第四寄存器再将第三级FIR运算模块的第三输出结果p3输出至最终结果SRAM,从而复用第三级FIR运算模块和第三级FIR的SRAM。其中,第三级FIR运算模块的第三输出结果p3作为奇数下标输出,第三级FIR运算模块的第二输出结果p2作为偶数下标输出,第二输出结果p2先于第三输出结果p3从所述插值过滤运算控制器的输出端fir_out输出至外部器件的端口处;T3>T2,且其时间差值需满足第三级FIR运算模块读写运算延时长度。
第一寄存器输出第一级FIR运算模块的第一输出结果y1至第二级FIR运算模块,在第二级FIR子状态机的驱动选择作用下,第二级FIR运算模块根据第一级FIR运算模块的第一输出结果y1,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第二级FIR运算模块的第二输出结果z2和第二级FIR运算模块的第三输出结果z3;在T4时刻,第二级FIR运算模块的第二输出结果z2输出至第三级FIR的SRAM,第二级FIR运算模块的第三输出结果z3输出至第五寄存器,从而复用第二级FIR运算模块和第二级FIR的SRAM。其中,第二级FIR运算模块的第三输出结果z3作为奇数下标输出,第二级FIR运算模块的第二输出结果z2作为偶数下标输出;T4>T3,且其时间差值需满足第二级FIR运算模块读写运算延时长度。
在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第二输出结果z2,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第四输出结果p4和第三级FIR运算模块的第五输出结果p5;在T5时刻,第三级FIR运算模块的第四输出结果p4输出至最终结果SRAM,第三级FIR运算模块的第五输出结果p5输出至第六寄存器,第六寄存器再将第三级FIR运算模块的第五输出结果p5输出至最终结果SRAM,从而复用第三级FIR运算模块和第三级FIR的SRAM。其中,第三级FIR运算模块的第五输出结果p5作为奇数下标输出,第三级FIR运算模块的第四输出结果p4作为偶数下标输出,第四输出结果p4先于第五输出结果p5从所述插值过滤运算控制器的输出端fir_out输出至外部器件的端口处;T5>T4,且其时间差值需满足第三级FIR运算模块读写运算延时长度。
第五寄存器输出第二级FIR运算模块的第三输出结果z3至第三级FIR运算模块,在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第三输出结果z3,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第六输出结果p6和第三级FIR运算模块的第七输出结果p7;在T6时刻,第三级FIR运算模块的第六输出结果p6输出至最终结果SRAM,第三级FIR运算模块的第七输出结果p7输出至第七寄存器,第七寄存器再将第三级FIR运算模块的第七输出结果p7输出至最终结果SRAM,从而复用第三级FIR运算模块和第三级FIR的SRAM。其中,第三级FIR运算模块的第七输出结果p7作为奇数下标输出,第三级FIR运算模块的第六输出结果p6作为偶数下标输出,第六输出结果p6先于第七输出结果p7从所述插值过滤运算控制器的输出端fir_out输出至外部器件的端口处;T6>T5,且其时间差值需满足第三级FIR运算模块读写运算延时长度。
值得注意的是,前述的x0,y0,y1,z0,z1,z2,z3作为输入输出数据时都包含有m个数据,m与每一次从所述滤波系数存储ROM读取的相匹配的滤波系数的个数相等。输出8倍插值结果p1、p3、p5、p7的所属支路相当于奇数支路(延时输出),输出8倍插值结果p0、p2、p4、p6的所属支路相当于偶数支路(运算输出),奇数支路和偶数支路的相位延时为0。
与现有技术相比,本实施例采用3个状态机对应控制三级FIR运算模块进行读写和相乘累加运算,对输入的待插值的数据x0执行串行的8倍插值操作,其中,前述运算模块、寄存器与SRAM之间凡是存在信号传输关系的都具备物理上的连接关系,在相应状态机的控制下,有选择地复用FIR运算模块和所述中间结果缓存RAM,避免不必要寄存器资源和逻辑控制单元,节省硬件资源,也让电路变得可配置,控制更灵活。
当所述插值滤波器系统的外部输入的待插值的数据不止一个时,所述主状态机重新从初始状态开始执行全部状态转换流程,使得所述第n级半带滤波器产生新的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器新输出的插值结果。在上述实施例中,所述主状态机中不仅仅是针对第一级FIR运算模块输入的x0来执行状态跳转控制的,外部输入的待插值的数据x1,x2,x3,x4…都间接通过第一级FIR的SRAM持续输入第一级FIR运算模块的一个数据输入端时,那第一级FIR运算模块计算出来的就会产生y2,y3,y4,y5…使得整个状态机就会重新在运转一遍,体现所述插值滤波器系统处理数据的实时性效果,只要不断有数据送到整个系统中,整个设计中主状态机所包括子状态机的触发动作就会不断重复运行,经由各级FIR运算模块处理,再不断输出数据到所述插值滤波器系统的输出端口fir_out处。增强所述插值滤波器系统处理数据的有效性,提高系统的实时性。
在前述实施例中,所述级联驱动模块优选为如图1所示,包括写逻辑控制子模块和读逻辑控制子模块,写逻辑控制子模块和读逻辑控制子模块共享一个作为所述插值滤波器系统的驱动时钟源的计数器,写逻辑控制子模块用于根据计数器输出的计数节拍控制所述中间结果缓存RAM的写操作地址和所述滤波系数存储ROM的写操作地址,读逻辑控制子模块用于根据计数器输出的计数节拍控制所述中间结果缓存读取RAM的读操作地址和所述滤波系数存储ROM的读操作地址,可以理解为写逻辑控制子模块和读逻辑控制子模块用于发出时钟控制信号。写逻辑控制子模块和读逻辑控制子模块通过驱动对应的所述主状态机,即在适当的计数时间下触发所述第一级FIR子状态机、所述第二级FIR子状态机和所述第三级FIR子状态机,然后对应控制所述插值过滤运算控制器内部的级联的滤波器运算模块按照时序执行插值运算操作,以实现8倍插值的目的。本实施例有利于控制状态机模型跳转时序,仅有1个时钟信号,保证整个设计不含有跨时钟的异步处理问题,减少了设计复杂度,可以使整个系统性能更稳定。
在前述实施例的基础上,所述n个级联的滤波器运算模块中,每一级FIR运算模块包括读结束确认子模块、写结束确认子模块和相乘累加子模块。参阅图3可知,对于第n级FIR运算模块,写逻辑控制子模块通过第n级FIR子状态机触发控制写结束确认子模块,写结束确认子模块用于根据写逻辑控制子模块输出的计数控制信号,触发第n级FIR子状态机输出的状态跳转,使其在相应的条件状态下,将上一级FIR运算模块输出的需要在当前一级FIR运算模块内运算的数据写入所述中间结果缓存RAM相应地址区间内,即控制图1中的第n-1级FIR的SRAM输出的结果数据写入第n级FIR的SRAM内部相应地址区间内;同理,读逻辑控制子模块通过第n级FIR子状态机触发控制读结束确认子模块,读结束确认子模块用于根据读逻辑控制子模块输出计数控制信号,触发第n级FIR子状态机输出的状态跳转,使其在相应的条件状态下,交由相乘累加子模块读取所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据,即控制相乘累加子模块读取第n级FIR的SRAM。相乘累加子模块,由乘法器和加法器构成的串行移位相加结构,在写结束确认子模块和读结束确认子模块的共同控制下,选择所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据送入加法器进行累加操作,同时也选择所述滤波系数存储ROM的滤波器系数作为乘数送入乘法器进行乘法操作,其中,由第n级FIR的SRAM送入加法器的数据可直接送入乘法器作为被乘数;也可以将当前一级(第n级)加法操作得到的中间累加值送入第n+1级FIR的SRAM,在送入乘法器作为被乘数。
具体地,对于第一级FIR运算模块,根据写逻辑控制子模块输出的计数控制信号,由所述第一级FIR子状态机的驱动控制数据x0写入到所述第一级FIR的SRAM对应地址区间;当写逻辑控制子模块输出的计数节拍达到第一延时长度时,触发所述第一级FIR子状态机改变第一级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第一级FIR运算模块从所述第一级FIR的SRAM对应地址区间读取一个x0,同时从所述滤波系数存储ROM读取相匹配的滤波系数,参与执行一次相乘累加计算,值得注意的是,所述第一级FIR运算模块是移位相加和Booth4编码相结合实现的Booth乘法器。当读逻辑控制子模块输出的计数节拍达到第二延时长度时,触发所述第一级FIR子状态机改变第一级FIR运算模块当前的工作状态,表示第一级FIR运算模块完成了对输入的x0的乘累加运算,获得中间结果数据y0和y1。
对于第二级FIR运算模块,根据写逻辑控制子模块输出的计数控制信号,由所述第二级FIR子状态机的驱动控制第一级FIR运算模块输出的y0写入到所述第二级FIR的SRAM对应地址区间;当写逻辑控制子模块输出的计数节拍达到第三延时长度时,表示写y0动作完成,同时触发所述第二级FIR子状态机改变第二级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第二级FIR运算模块从所述第二级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第四延时长度时,表示第二级FIR运算模块已经完成对y0的乘累加运算,输出中间结果z0和z1。同时触发所述第二级FIR子状态机改变第二级FIR运算模块当前的工作状态,然后根据写逻辑控制子模块输出的计数控制信号开始向所述第二级FIR的SRAM对应地址区间中写第一级FIR运算模块输出的y1;当写逻辑控制子模块输出的计数节拍达到第五延时长度时,表示写y1动作完成,同时触发所述第二级FIR子状态机改变第二级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第二级FIR运算模块从所述第二级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第六延时长度时,表示第二级FIR运算模块已经完成对y1的乘累加运算,输出中间结果数据z2和z3。
对于第三级FIR运算模块,根据写逻辑控制子模块输出的计数控制信号,由所述第三级FIR子状态机的驱动控制第二级FIR运算模块输出的z0写入到所述第三级FIR的SRAM对应地址区间;当写逻辑控制子模块输出的计数节拍达到第七延时长度时,表示写z0动作完成,同时触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第三级FIR运算模块从所述第三级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第八延时长度时,表示第三级FIR运算模块已经完成对z0的乘累加运算,输出8倍插值滤波的结果数据p0和p1。然后触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据写逻辑控制子模块输出的计数控制信号开始向所述第三级FIR的SRAM对应地址区间中写第二级FIR运算模块输出的z1;当写逻辑控制子模块输出的计数节拍达到第九延时长度时,表示写z1动作完成,同时触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第三级FIR运算模块从所述第三级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,一起参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第十延时长度时,表示第三级FIR运算模块已经完成对z1的乘累加运算,输出8倍插值滤波的结果数据p2和p3。然后触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据写逻辑控制子模块输出的计数控制信号开始向所述第三级FIR的SRAM对应地址区间中写第二级FIR运算模块输出的z2;当写逻辑控制子模块输出的计数节拍达到第十一延时长度时,表示写z2动作完成,同时触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第三级FIR运算模块从所述第三级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,一起参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第十二延时长度时,表示第三级FIR运算模块已经完成对z2的乘累加运算,输出8倍插值滤波的结果数据p4和p5。然后触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据写逻辑控制子模块输出的计数控制信号开始向所述第三级FIR的SRAM对应地址区间中写第二级FIR运算模块输出的z3;当写逻辑控制子模块输出的计数节拍达到第十三延时长度时,表示写z3动作完成,同时触发所述第三级FIR子状态机改变第三级FIR运算模块当前的工作状态,然后根据读逻辑控制子模块输出的计数控制信号,控制第三级FIR运算模块从所述第三级FIR的SRAM对应地址区间读取所有的数据,同时从所述滤波系数存储ROM读取相匹配的滤波系数,一起参与相乘累加计算;当读逻辑控制子模块输出的计数节拍达到第十四延时长度时,表示第三级FIR运算模块已经完成对z3的乘累加运算,输出8倍插值滤波的结果数据p6和p7。在这一次所述主状态机控制的运转过程中,基于输入数据x0,最终输出的8倍插值滤波的结果数据分为p0、p1、p2、p3、p4、p5、p6和p7。因此,从电路实现代码的复杂度上看,状态机计数控制实现8倍插值运算比并行、DA分布式等结构逻辑更简单,代码易于实现和维护,具有高效的顺序控制性。
优选地,所述滤波器系数通过小数定点化的方式处理为16比特位的二进制数。所述滤波器系数需要预先通过Matlab数学工具仿真处理得到的,而Matlab算法中的滤波器系数需要定点化处理,使得所述滤波器系数是带有符号位和小数点参与运算。所述滤波器系数的不同直接影响整个滤波器的通带纹波和阻带衰减以及过渡带的宽度。数字电路中由于都是用二进制表示,对Matlab算法中的滤波器系数需要定点化处理,取不同的系数位宽,和实际的算法中确定的实数型系数会有不同程度的偏差,但是从硬件成本(位宽越大,占用的乘法器资源越多,还可能太宽1个时钟周期完成不了1次乘法运算),基于所要实现的滤波器性能角度综合考量,本实施例确定16bit位宽的所述滤波器系数运算于数字电路实现的插值滤波器系统中,虽然所述插值滤波器系统所需要的工作时钟比较慢,如256*fs,在40nm工艺下,1个时钟周期内即可完成1次乘法运算,但是已经通过综合评估滤波器的通带纹波和阻带衰减所带来的误差影响,以及所占用的硬件资源成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

Claims (8)

1.一种用数字电路实现的插值滤波器系统,其特征在于,该插值滤波器系统包括插值过滤运算控制器、级联驱动模块、中间结果缓存RAM和滤波系数存储ROM,插值过滤运算控制器包括级联的滤波器运算模块和一个主状态机,所述插值过滤运算控制器包括n个级联的滤波器运算模块和对应的子状态机,分别等效于相应级联的半带滤波器,所述主状态机包括n个子状态机,n为大于或等于1的整数;其中:
中间结果缓存RAM,用于存储插值滤波器系统的外部输入的数据和插值过滤运算控制器内部包括的各级滤波器运算模块计算输出的中间结果;
滤波系数存储ROM,用于存储插值过滤运算控制器内部包括的各级滤波器运算模块计算所需的滤波系数;
级联驱动模块包括用于控制插值过滤运算控制器读写中间结果缓存RAM和滤波系数存储ROM的一个计数器;
插值过滤运算控制器,用于在级联驱动模块输出的计数节拍的驱动下,控制主状态机选择中间结果缓存RAM或外部直接输入的数据送入级联的滤波器运算模块进行累加操作,同时也控制主状态机选择滤波系数存储ROM的滤波器系数送入级联的滤波器运算模块进行乘法操作,经过级联的滤波器运算模块处理后得到插值滤波的目的。
2.根据权利要求1所述插值滤波器系统,其特征在于,每一级的半带滤波器的输出结果都划分为奇数下标输出和偶数下标输出,是依据每一级的半带滤波器在所述级联驱动模块输出的计数节拍驱动下先后输出的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记;其中,在所述级联驱动模块驱动配合主状态机完成以下功能:
第一步,完成当前一级半带滤波器的工作,将需要保存的偶数下标的数据存放在所述中间结果缓存RAM相应的地址单元中,将需要保存的奇数下标输出的数据存放在当前一级半带滤波器内部相应的寄存器中;
第二步,将当前一级半带滤波器的所有输出结果直接地或通过内部相应寄存器间接地输出至下一级半带滤波器中,然后,将下一级半带滤波器需要保存的偶数下标输出的数据存放在所述中间结果缓存RAM相应的地址单元中,将需要保存的奇数下标输出的数据存放在下一级半带滤波器内部相应的寄存器中;
重复迭代第一步和第二步实现串行运算,直到第n级半带滤波器先后运算得到的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器的插值结果。
3.根据权利要求2所述插值滤波器系统,其特征在于,n设置为3,所述级联的滤波器运算模块包括第一级FIR运算模块、第二级FIR运算模块和第三级FIR运算模块,所述主状态机包括第一级FIR子状态机、第二级FIR子状态机和第三级FIR子状态机,所述插值过滤运算控制器还包括第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器和第七寄存器,所述中间结果缓存RAM具体包括第一级FIR的SRAM、第二级FIR的SRAM、第三级FIR的SRAM和1个最终结果SRAM;
每一级的滤波器运算模块的输出都划分为奇数下标输出和偶数下标输出,是依据每一级的滤波器运算模块在所述级联驱动模块输出的计数节拍驱动下先后输出顺序而确定的,其中,偶数下标先从0开始,而奇数下标从1开始,按照先后输出的顺序由小到大进行标记;
在所述级联驱动模块配合主状态机的驱动控制前提下:
所述插值滤波器系统的外部输入的待插值的数据(x0)直接或间接通过第一级FIR的SRAM持续输入第一级FIR运算模块的一个数据输入端,在第一级FIR子状态机的驱动选择作用下,结合从所述滤波系数存储ROM读取的相匹配的滤波系数,第一级FIR运算模块插值处理外部输入的待插值的数据;第一级FIR运算模块的第一输出结果(y1)输出至第一寄存器,第一级FIR运算模块的第零输出结果(y0)输出至第二级FIR的SRAM;其中,第一级FIR运算模块的第一输出结果(y1)作为奇数下标输出,第一级FIR运算模块的第零输出结果(y0)作为偶数下标输出;
在第二级FIR子状态机的驱动选择作用下,第二级FIR运算模块根据第一级FIR运算模块的第零输出结果(y0),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第二级FIR运算模块的第零输出结果(z0)和第二级FIR运算模块的第一输出结果(z1);第二级FIR运算模块的第零输出结果(z0)输出至第三级FIR的SRAM,第二级FIR运算模块的第一输出结果(z1)输出至第二寄存器,其中,第二级FIR运算模块的第一输出结果(z1)作为奇数下标输出,第二级FIR运算模块的第零输出结果(z0)作为偶数下标输出;
在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第零输出结果(z0),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第零输出结果(p0)和第三级FIR运算模块的第一输出结果(p1);第三级FIR运算模块的第零输出结果(p0)输出至最终结果SRAM,第三级FIR运算模块的第一输出结果(p1)输出至第三寄存器,第三寄存器再将第三级FIR运算模块的第一输出结果(p1)输出至最终结果SRAM,其中,第三级FIR运算模块的第一输出结果(p1)作为奇数下标输出,第三级FIR运算模块的第零输出结果(p0)作为偶数下标输出;
第二寄存器输出第二级FIR运算模块的第一输出结果(z1)至第三级FIR运算模块,在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第一输出结果(z1),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第二输出结果(p2)和第三级FIR运算模块的第三输出结果(p3);第三级FIR运算模块的第二输出结果(p2)输出至最终结果SRAM,第三级FIR运算模块的第三输出结果(p3)输出至第四寄存器,第四寄存器再将第三级FIR运算模块的第三输出结果(p3)输出至最终结果SRAM,其中,第三级FIR运算模块的第三输出结果(p3)作为奇数下标输出,第三级FIR运算模块的第二输出结果(p2)作为偶数下标输出;
第一寄存器输出第一级FIR运算模块的第一输出结果(y1)至第二级FIR运算模块,在第二级FIR子状态机的驱动选择作用下,第二级FIR运算模块根据第一级FIR运算模块的第一输出结果(y1),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第二级FIR运算模块的第二输出结果(z2)和第二级FIR运算模块的第三输出结果(z3);第二级FIR运算模块的第二输出结果(z2)输出至第三级FIR的SRAM,第二级FIR运算模块的第三输出结果(z3)输出至第五寄存器,其中,第二级FIR运算模块的第三输出结果(z3)作为奇数下标输出,第二级FIR运算模块的第二输出结果(z2)作为偶数下标输出;
在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第二输出结果(z2),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第四输出结果(p4)和第三级FIR运算模块的第五输出结果(p5);第三级FIR运算模块的第四输出结果(p4)输出至最终结果SRAM,第三级FIR运算模块的第五输出结果(p5)输出至第六寄存器,第六寄存器再将第三级FIR运算模块的第五输出结果(p5)输出至最终结果SRAM,其中,第三级FIR运算模块的第五输出结果(p5)作为奇数下标输出,第三级FIR运算模块的第四输出结果(p4)作为偶数下标输出;
第五寄存器输出第二级FIR运算模块的第三输出结果(z3)至第三级FIR运算模块,在第三级FIR子状态机的驱动选择作用下,第三级FIR运算模块根据第二级FIR运算模块的第三输出结果(z3),结合从所述滤波系数存储ROM读取的相匹配的滤波系数,运算产生第三级FIR运算模块的第六输出结果(p6)和第三级FIR运算模块的第七输出结果(p7);第三级FIR运算模块的第六输出结果(p6)输出至最终结果SRAM,第三级FIR运算模块的第七输出结果(p7)输出至第七寄存器,第七寄存器再将第三级FIR运算模块的第七输出结果(p7)输出至最终结果SRAM,其中,第三级FIR运算模块的第七输出结果(p7)作为奇数下标输出,第三级FIR运算模块的第六输出结果(p6)作为偶数下标输出。
4.根据权利要求3所述插值滤波器系统,其特征在于,当所述插值滤波器系统的外部输入的待插值的数据不止一个时,所述主状态机重新从初始状态开始执行全部状态转换流程,使得所述第n级半带滤波器先后产生的新的2的n次幂个结果直接地或通过内部相应寄存器间接地输出至所述中间结果缓存RAM相应的地址单元中,作为所述插值过滤运算控制器新输出的插值结果。
5.根据权利要求2或3所述插值滤波器系统,其特征在于,所述级联驱动模块包括写逻辑控制子模块和读逻辑控制子模块,写逻辑控制子模块和读逻辑控制子模块共享一个作为所述插值滤波器系统的驱动时钟源的计数器,写逻辑控制子模块用于根据计数节拍控制所述中间结果缓存RAM的写操作地址和所述滤波系数存储ROM的写操作地址,读逻辑控制子模块用于根据计数节拍控制所述中间结果缓存读取RAM的读操作地址和所述滤波系数存储ROM的读操作地址;
写逻辑控制子模块和读逻辑控制子模块通过驱动对应的所述主状态机,来控制所述插值过滤运算控制器内部的级联的滤波器运算模块按照时序执行插值运算操作。
6.根据权利要求5所述插值滤波器系统,其特征在于,所述n个级联的滤波器运算模块中,每一级FIR运算模块包括读结束确认子模块、写结束确认子模块和相乘累加子模块;
写结束确认子模块用于根据写逻辑控制子模块输出的计数控制信号,将上一级FIR运算模块输出的需要在当前一级FIR运算模块内运算的数据写入所述中间结果缓存RAM相应地址区间内;
读结束确认子模块用于根据读逻辑控制子模块输出的计数控制信号,交由相乘累加子模块读取所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据;
相乘累加子模块,由乘法器和加法器构成的串行移位相加结构,在写结束确认子模块和读结束确认子模块的共同控制下,选择所述中间结果缓存RAM相应地址区间中需要在当前一级FIR运算模块内运算的数据送入加法器进行累加操作,同时也选择所述滤波系数存储ROM的滤波器系数作为乘数送入乘法器进行乘法操作,其中,送入加法器的数据或者加法操作得到的中间累加值作为送入乘法器的被乘数。
7.根据权利要求6所述插值滤波器系统,其特征在于,所述级联的半带滤波器中,每一级的半带滤波器是设置不同的阶数,所述滤波系数存储ROM的滤波器系数中存在零值,零值的个数等于(每一级半带滤波器的阶数-1)/2-1;
ROM的滤波器系数中存在零值的地址区间的设置以及所述n个级联的滤波器运算模块读取滤波器系数的零值的时序,决定每一级的所述滤波器运算模块的所述奇数下标输出等效于对应一级所述滤波器运算模块的输入信号的延时处理结果。
8.根据权利要求7所述插值滤波器系统,其特征在于,所述滤波器系数通过小数定点化的方式处理为16比特位的二进制数。
CN201910925674.5A 2019-09-27 2019-09-27 一种用数字电路实现的插值滤波器系统 Active CN110492867B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910925674.5A CN110492867B (zh) 2019-09-27 2019-09-27 一种用数字电路实现的插值滤波器系统
US17/637,818 US20220284912A1 (en) 2019-09-27 2019-11-10 Interpolation Filter System Implemented by Digital Circuit
KR1020227003241A KR20220025051A (ko) 2019-09-27 2019-11-10 디지털 회로로 구현하는 보간 필터 시스템
PCT/CN2019/116930 WO2021056711A1 (zh) 2019-09-27 2019-11-10 一种用数字电路实现的插值滤波器系统
JP2022502178A JP7344365B2 (ja) 2019-09-27 2019-11-10 デジタル回路で実現される補間フィルタシステム
EP19946877.8A EP4054077A4 (en) 2019-09-27 2019-11-10 INTERPOLATION FILTER SYSTEM IMPLEMENTED BY DIGITAL CIRCUIT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910925674.5A CN110492867B (zh) 2019-09-27 2019-09-27 一种用数字电路实现的插值滤波器系统

Publications (2)

Publication Number Publication Date
CN110492867A CN110492867A (zh) 2019-11-22
CN110492867B true CN110492867B (zh) 2020-06-05

Family

ID=68544220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910925674.5A Active CN110492867B (zh) 2019-09-27 2019-09-27 一种用数字电路实现的插值滤波器系统

Country Status (6)

Country Link
US (1) US20220284912A1 (zh)
EP (1) EP4054077A4 (zh)
JP (1) JP7344365B2 (zh)
KR (1) KR20220025051A (zh)
CN (1) CN110492867B (zh)
WO (1) WO2021056711A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865311B (zh) * 2020-07-27 2024-04-09 中国电子科技集团公司第三十六研究所 一种可变模小数变频并行信号处理装置及方法
CN112148668B (zh) * 2020-09-15 2023-03-14 浙江大华技术股份有限公司 基于片上缓存的数据保存方法及装置、存储介质
CN112117984A (zh) * 2020-10-15 2020-12-22 北京飞宇微电子电路有限责任公司 一种预处理模块
CN113365015B (zh) * 2021-05-31 2022-10-11 龙迅半导体(合肥)股份有限公司 一种视频数据处理装置及方法
CN113346872B (zh) * 2021-06-17 2024-03-22 北京奕斯伟计算技术股份有限公司 插值滤波电路、插值滤波器、控制方法、装置及存储介质
CN114063926B (zh) * 2021-11-22 2024-03-15 上海创远仪器技术股份有限公司 基于fpga硬件实现数据间插值处理的方法、装置、处理器及其计算机可读存储介质
CN115102524B (zh) * 2022-07-07 2023-08-08 武汉市聚芯微电子有限责任公司 一种滤波器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820287A (zh) * 2009-07-24 2010-09-01 北京工业大学 一种应用于双声道音频δ-∑数模转换器的插值滤波器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592403A (en) * 1993-03-11 1997-01-07 Monolith Technologies Corporation Digital-to-analog converter including integral digital audio filter
US5978823A (en) * 1997-01-27 1999-11-02 Hitachi America, Ltd. Methods and apparatus for implementing and controlling a digital modulator
IE990184A1 (en) * 1999-03-05 2000-09-06 Nabila Ltd A data acquisition circuit
US6487573B1 (en) * 1999-03-26 2002-11-26 Texas Instruments Incorporated Multi-rate digital filter for audio sample-rate conversion
CN100499371C (zh) * 2005-12-26 2009-06-10 中兴通讯股份有限公司 一种可编程内插滤波器装置及其实现方法
US8612503B2 (en) * 2010-03-16 2013-12-17 Integrated Device Technology, Inc. Methods and apparatuses for flexible and high performance digital signal processing
US8203472B2 (en) * 2010-09-20 2012-06-19 Raytheon Company Compensation of clock jitter in analog-digital converter applications
CN105048994A (zh) * 2015-06-30 2015-11-11 无锡华润矽科微电子有限公司 一种应用于fir滤波器的分布式算法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820287A (zh) * 2009-07-24 2010-09-01 北京工业大学 一种应用于双声道音频δ-∑数模转换器的插值滤波器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数字中频滤波器的FPGA设计与实现;曾培智;《中国优秀硕士学位论文全文数据库信息科技辑》;20150615;第25-41页,图3-11至图3-23 *

Also Published As

Publication number Publication date
JP2022541433A (ja) 2022-09-26
US20220284912A1 (en) 2022-09-08
EP4054077A4 (en) 2022-11-30
CN110492867A (zh) 2019-11-22
EP4054077A1 (en) 2022-09-07
KR20220025051A (ko) 2022-03-03
WO2021056711A1 (zh) 2021-04-01
JP7344365B2 (ja) 2023-09-13

Similar Documents

Publication Publication Date Title
CN110492867B (zh) 一种用数字电路实现的插值滤波器系统
Parhi et al. Pipeline interleaving and parallelism in recursive digital filters. I. Pipelining using scattered look-ahead and decomposition
CN107636965B (zh) 稀疏级联积分梳滤波器
CN103269212B (zh) 低成本低功耗可编程多级fir滤波器实现方法
US5751615A (en) Implementation of a digital decimation filter and method
US7492848B2 (en) Method and apparatus for efficient multi-stage FIR filters
JPH02216907A (ja) ディジタルフィルタ
JPS63262912A (ja) デジタル・フィルタ
JPH082014B2 (ja) 多段デジタル・フィルタ
JPH04116720A (ja) 半導体装置
CN112491391B (zh) 一种音频dac的插值滤波器实现结构
CN104348446A (zh) 一种实现fir滤波的方法和滤波装置
Lei et al. A decimation filter design and implementation for oversampled sigma delta A/D converters
CN115987249A (zh) 一种应用于数字抽取滤波器的fir滤波器
US10720904B2 (en) Techniques for input formatting and coefficient selection for sample rate converter in parallel implementation scheme
CN116781041B (zh) 一种具有高资源利用率的多速率变换滤波器
Sarkar et al. Design of multi-stage cascaded integrator comb filter using single adder and subtractor
JP5102710B2 (ja) デジタルフィルタ
TWI482427B (zh) 分時降頻濾波器與分時降頻濾波方法
KR950011063B1 (ko) 단일 연산장치를 이용한 다단필터의 장치
Lei et al. A Modified ecimation ilter esign for Oversampled Sigma elta A/Converters
KR100369337B1 (ko) 하프밴드(halfband)선형위상FIR(FiniteImpulseResponse)필터
JPH02149011A (ja) サンプリング周波数変換装置
JP2005318204A (ja) デジタルフィルタ
Francesconi et al. Multiplier-free Lagrange interpolators for oversampled D/A converters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant