解析使用FPGA逻辑实现FIR滤波器的几种架构

这篇具有很好参考价值的文章主要介绍了解析使用FPGA逻辑实现FIR滤波器的几种架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有限脉冲响应(finite impulse response,FIR)数字滤波器

一、FIR数字滤波器理论介绍


        FIR滤波器的实质就是输入序列与系统脉冲响应的卷积,即:

        其中,N为滤波器的阶数,也即抽头数;x(n)为第n个输入序列;h(n)为FIR滤波器的第n级抽头系数。
        FIR滤波器基本结构如下:

解析使用FPGA逻辑实现FIR滤波器的几种架构

        FIR数字滤波器的基本结构有直接型、级联型、频率抽样型。

二、运用FPGA实现FRI滤波器的几种结构

2.1串行结构


        由FIR滤波表达公式可以看到,其实质是乘法和累加运算,其滤波器的阶数N决定了乘法和累加运算的次数。
        串行结构使用1个乘法器和1个加法器,每个时钟计算1次乘法和加法,需要计算N次(N为阶数)。结构图如下:

解析使用FPGA逻辑实现FIR滤波器的几种架构

        图中标注乘法结果、累加结果处,可以根据FPGA设计增加D触发器,进行节拍处理。当处理完N阶的累加后,累加结果即为有效的y(n)。

        串行结构的FIR滤波器需要非常多的时钟周期才能获得一个序列值得滤波结果,处理速度非常慢,适用于滤波阶数比较低或者处理速度要求低的场景。

2.2 并行结构


在串行结构的基础上,增加乘法器和加法器的数量,得到并行的FIR滤波器结构如下,可以同时进行多个系数的乘法和加法运算,增快FIR运算速度。

解析使用FPGA逻辑实现FIR滤波器的几种架构


        由于FIR滤波器系数h(n)具有对称性,因此可以先进行1次加法,再进行乘法运算,最后再将所有的乘法运算结果进行相加,这样可以减少乘法器的使用数量。得到如下的架构:

解析使用FPGA逻辑实现FIR滤波器的几种架构

        并行结构又称为直接型FIR滤波器结构,如上图所示。用多个加法器和乘法器并行实现,可以达到1个时钟周期输出1个y(n),使用资源角度。N阶的滤波器,需要使用到N/2个乘法器。

2.3转置型结构


        先回顾一下转置定理:如果将源网络中所有的支路方向加以反转,支路增益保持不变,并将输入x(n)和输出y(n)相互交换,则网络的系统函数不会改变。
        根据转置定理,将上述所说的并行结构进行转置。以下以4阶FIR滤波器介绍转置型结构的由来。


转置定理转换:
A.并行结构初始形态

解析使用FPGA逻辑实现FIR滤波器的几种架构

        在硬件设计中,加法器可以看成信号的叠加,也可以表述成下图:

解析使用FPGA逻辑实现FIR滤波器的几种架构

B.按照转置定理,将所有支路信号方向反转,输入输出位置互换。

解析使用FPGA逻辑实现FIR滤波器的几种架构


        信号叠加处,使用加法器表示如下:

解析使用FPGA逻辑实现FIR滤波器的几种架构

C.转化成输入在左,输出在右的结构

解析使用FPGA逻辑实现FIR滤波器的几种架构


 

另一种转换方式:
A.并行结构初始形态

解析使用FPGA逻辑实现FIR滤波器的几种架构

        四阶并行结构图如上所示,编写乘数学公式如下:

解析使用FPGA逻辑实现FIR滤波器的几种架构


B.改变y(n)位置

解析使用FPGA逻辑实现FIR滤波器的几种架构

        此时y(n)的表达式不变,依旧是:

解析使用FPGA逻辑实现FIR滤波器的几种架构


C.改变延时单元位置

解析使用FPGA逻辑实现FIR滤波器的几种架构

        此时直观上,y(n)的表达式发生了变化。但是经过转换:

解析使用FPGA逻辑实现FIR滤波器的几种架构

        可以发现,y(n)表达式不变

D.按照阅读习惯,将输出放在右侧。

解析使用FPGA逻辑实现FIR滤波器的几种架构

解析使用FPGA逻辑实现FIR滤波器的几种架构


        可以发现,y(n)表达式不变
        上图即为转置后的滤波器结构。

由此引申出转置示波器结构如下:

解析使用FPGA逻辑实现FIR滤波器的几种架构

        转置FIR滤波器相比较于并行FIR滤波器,不需要给输入信号x(n)提供额外的节拍寄存器,在执行乘法器累加时,一般考虑到时序路径问题,会对乘法结果打一个节拍,作流水线处理(因转置结构中刚好在乘法器后包含一个延时寄存器,这样就无需额外增加流水线寄存器),对于时序的优化具有帮助。即转置FIR滤波器相比较并行FIR滤波器,具有更小的延迟,且能节省FPGA资源。
        并行结构和转置结构,实质是同一种结构,只是运算顺序发生了变化而已。其又称为横截型、卷积型或者直接型结构。

2.4 基于FFT的结构


        已知输入与输出之间的关系是,其频域上的关系为Y(w)=X(w)H(w)。快速傅里叶变换FFT可以快速实现信号的时序频域转换,如下图:

解析使用FPGA逻辑实现FIR滤波器的几种架构


        在FFT的滤波结构中,通过频域的乘法得到输出信号的频域函数,再利用快速傅里叶反变换,还原时域信号,即目标信号y(n)。文章来源地址https://www.toymoban.com/news/detail-482462.html

到了这里,关于解析使用FPGA逻辑实现FIR滤波器的几种架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字信号处理-10-并行FIR滤波器MATLAB与FPGA实现

    本文介绍了设计滤波器的FPGA实现步骤,并结合杜勇老师的书籍中的并行FIR滤波器部分进行一步步实现硬件设计,对书中的架构做了复现以及解读,并进行了仿真验证。 FIR滤波器的结构形式时,介绍了直接型、级联型、频率取样型和快速卷积型4种。在FPGA实现时,最常用的是最

    2023年04月09日
    浏览(35)
  • FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器

    该项目介绍了如何使用 Verilog 实现具有预生成系数的简单 FIR 滤波器。 不起眼的 FIR 滤波器是 FPGA 数字信号处理中最基本的模块之一,因此了解如何将具有给定抽头数及其相应系数值的基本模块组合在一起非常重要。因此,在这个关于 FPGA 上 DSP 基础实用入门的教程中,将从一

    2024年02月09日
    浏览(36)
  • FPGA设计FIR滤波器低通滤波器,代码及视频

    名称:FIR滤波器低通滤波器 软件:Quartus 语言:Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。 代码功能: 设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。 参数设计方法: 使用matlab软件设计滤

    2024年02月08日
    浏览(36)
  • 基于FPGA的FIR低通滤波器实现(附工程源码),matlab+vivado19.2+simulation

    本文为FPGA实现FIR滤波器仿真过程,附源代码。 提示:以下是本篇文章正文内容,下面案例可供参考 打开MATLAB在命令行窗口输入: fadtool 回车后在滤波器设计界面设置滤波器参数如下 之后点击如图标志,设置定点,在菜单栏\\\"目标(R)\\\"出选择生成对应滤波器系数.COE文件 mat

    2024年02月11日
    浏览(30)
  • FIR滤波器简述及FPGA仿真验证

    数字滤波器的设计,本项目做的数字滤波器准确来说是FIR滤波器。 FIR滤波器(有限冲激响应滤波器),与另一种基本类型的数字滤波器——IIR滤波器(无限冲击响应滤波器)相对应,其实就是将所输入的信号都看成是离散的,用离散的冲击信号代替实际的信号。对于FIR滤波器

    2024年02月09日
    浏览(34)
  • FPGA 的 DSP:Verilog 中的简单 FIR 滤波器

    本项目介绍如何用 Verilog 实现一个带有预生成系数的简单 FIR 滤波器。 简陋的 FIR 滤波器是 FPGA 数字信号处理中最基本的构建模块之一,因此了解如何利用给定的抽头数和相应的系数值组装一个基本模块非常重要。因此,在这个关于在 FPGA 上入门 DSP 基础知识的实用方法迷你系

    2024年03月17日
    浏览(31)
  • 基于FPGA的FIR数字滤波器设计(quartus和vivado程序都有)。

    基于FPGA的FIR数字滤波器设计(quartus和vivado程序都有)。 附: 1.配套quartus从MATLAB系数生成直到仿真成功说明文档。 2.配套仿真出波形(图1)的视频。      

    2024年02月10日
    浏览(37)
  • FIR滤波器的Verilog实现

    FIR滤波器是非递归型滤波器的简称,又叫 有限长单位冲激响应滤波器 。带有常系数的FIR滤波器是一种LTI(线性时不变)数字滤波器。冲激响应是有限的意味着在滤波器中没有发反馈。长度为N的FIR输出对应于输入时间序列x(n)的关系由一种有限卷积和的形式给出,具体形式如下:

    2024年02月11日
    浏览(24)
  • STM32 FIR实时数字滤波器实现

    首先是生成不同周期的正弦波:         由于定时器设置为250us进入一次中断,每秒可进入中断4000次,为了生成25HZ的正弦信号,一个周期内生成160个数据;为了生成200HZ的正弦信号,一个周期内生成20个数据,故代码如下:     sin_1=arm_sin_f32(3.141592654*i/80)+1;//25HZ 信号   

    2024年02月14日
    浏览(27)
  • 滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码

    滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码 引言: 滤波器作为信号处理中非常重要的一部分,广泛应用于数字信号处理、音频处理、图像处理等领域。本文主要讨论FIR(有限长冲激响应)和IIR(无限长冲激响应)两种常见滤波器的设计及其实现。 FIR滤波器

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包