当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:文中设计的均衡滤波器充分利用FPGA内部资源、时间换取空间的方法,在EP1C3系列的FPGA内实现1 024阶FIR数字均衡滤波器,并通过重载系数,可实现多种频率响应的均衡特性、简易数字均衡滤波器的功能,达到了设计目

摘要:文中设计的均衡滤波器充分利用FPGA内部资源、时间换取空间的方法,在EP1C3系列的FPGA内实现1 024阶FIR数字均衡滤波器,并通过重载系数,可实现多种频率响应的均衡特性、简易数字均衡滤波器的功能,达到了设计目的。
关键词:数字均衡滤波器;FPGA;1 024阶;FIR

    音频均衡器作为高品质音响不可或缺的关键附属调节设备,在音效调整修饰方面起着至关重要的作用。一般音频均衡器有数字和模拟两种实现方法,模拟方法用有源和无源滤波器组实现,受器件温度等特性的影响,难以达到较高的可靠性和一致性,且成本较高。数字实现方法采用数字滤波器,具有较高的灵活性和可靠性。常用的数字滤波器有IIR和FIR两种。IIR滤波器结构简单,所需的存储空间小,但其相位是非线性;FIR滤波器是线性相位滤波器,这对高品质音效处理是必要的。本文通过在FPGA内设计了1 024阶FIR滤波器实现数字均衡滤波,通过系数的重载实现多种频率响应的均衡特性。

1 总体概述
    文中设计的FIR音频均衡滤波器采用多相滤波结构,用时间换取空间,节省FPGA内部资源,以达到在固定资源下的最大阶数。实现结构框图如图1所示。


    输入序列以及滤波系数分别存储在缓存阵列中,在时钟同步下由控制模块通过生成相应的读写地址及使能信号,使其按照一定次序输出到乘累加模块进行运算,并输出最终结果。系数可通过外部输入重载,以实现不同的均衡特性。EP1C3系列FPGA共有13个M4K块,每个为256 ×18位,取数据和系数的位宽为16位。为了充分利用有限资源,并考虑处理速度及音频信号速率要求,取每个缓存子模块的存储深度为256,即将乘累加模块复用256次,每256个系统时钟周期运算一个采样点数据,输出一个滤波结果。每个缓存子模块占用一个M4K块,连续4个子模块串联,就可实现256 x4=1 024阶的要求,再考虑系数占用的空间,总共消耗8个M4K块。这也是在有限资源下能实现的最高阶数。

2 各模块实现
2.1 输入序列缓存模块
    输入序列缓冲模块采用双口RAM模块实现,将4个级联使用,如图2所示。4个子块使用相同的读写地址及使能信号,采样数据从第一个子块输入,第一个子块的数据输出端与下一级子块的输入端直接相连,依次类推。每个缓存子块的数据y1~y4都输出给乘累加模块进行运算。
该模块的关键是读写地址的控制,写地址waddr必须滞后读地址raddr一个时钟周期,这样子块当前输出数据会在下个时钟写入下一个子块的相应单元。256个周期后,子块的数据整体移到下一个子块。


2.2 滤波器系数存储模块
    滤波器系数存储模块和输入序列缓存模块相对应,采用双口RAM模块实现,共有4个256深度的双口RAM模块,如图3所示。


    4个子块使用相同的输入数据线,通过系数写地址的译码,生成各子块的写使能’wen1~wen4和写地址h_addr,控制输入的系数按照顺序依次存入到RAM中。系数的读地址h_addr由控制模块生成,4个子块共用一个读地址,输出与数据相对应的系数h1~h4到乘累加模块,进行乘累加运算。
2.3 控制模块
    控制模块产生输入序列缓存模块的读写地址、使能信号以及滤波系数存储模块的读地址、使能信号,并对乘累加运算进行控制。
    输入序列需要在缓存模块中反复移位输出进行运算,每256个时钟周期输入1个数,输入序列的写地址必须滞后读地址一个时钟周期,才能保证数据的连续、不丢失。这样新写入的数据不在固定的位置,就要求读地址也不是单纯的累加关系。以每个RAM块深度等于4为例研究读写地址的关系,如图4所示。


    可见此时输入序列的读地址顺序如图5所示。


    由此类推可得实际输入序列缓存模块的读地址如图6所示。


    整个控制模块的实现如图7所示。主计数器整体计数,每256个时钟周期,地址产生模块就把计数器的计数值整体加1,作为输人序列的读地址raddr输出,实现了图6所示的地址顺序。写地址waddr由读地址raddr经延时一个时钟周期获得。由于输入序列是按时间顺序输出的,故滤波系数只要从存储阵列中也相应地顺序输出就可以了,将主计数器的计数值直接引出作为滤波系数阵列的读地址h_addr。


    主计数器的输出经过译码电路后,输出数据的低速采样时钟sa_clk,用来同步输入序列。还输出输入序列的写使能wren,每256个时钟周期使能一次,写一次数据。
2.4 乘累加模块
    乘累加模块负责将输入的数据和系数进行乘累加运算,每256个时钟周期输出一个滤波结果。其实现框图如图8所示。


    输入序列缓存模块输出的数据y1~y4和滤波器系数存储阵列输出的相应系数h1~h4在该模块进行乘累加运算。每256个时钟周期,计算完1个采样点数据的4个部分y1’~y4’,由锁存器锁存,经两级流水线加法器后得到最终滤波结果y,然后将累加器清零,开始准备下个采样点数据的计算。其中,锁存器的锁存时钟及乘累加器的清零信号都由输入序列的写使能wren经过相应的延时处理后得到。

3 仿真结果
    对设计的均衡滤波器进行综合编译,编译报告如图9所示。


    可见该1 024阶FIR均衡滤波器在EP1C3系列FPGA内得以实现,仅占用其约70%的逻辑资源和约50%的存储空间。为了验证该设计功能,将滤波器系数利用存储器初始化文件进行初始化,存储的系数如图10所示。


    为了直观验证,输入序列x取为δ序列,即x中只有1个数据为1,其它为0。根据滤波器及卷积的相关知识,输出结果y=x*h=δ*h=h,即为滤波器系数。仿真结果如图11所示。


    输入序列x只有1个采样时钟周期为数据1,其它全为0,fout为输出的滤波结果。可见结果为-1~-16的重复数据,与图10所示的滤波器系数一致,滤波器工作正常。

4 结束语
    利用EP1C3约70%的逻辑单元及约50%的存储空间,设计了1024阶FIR数字滤波器,并通过重载系数,可实现多种频率响应的均衡特性,实现了简易数字均衡滤波器的功能,达到了设计目标。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭