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

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


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


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

y(n)=x(n)*h(n)=\sum_{i=0}^{N-1}h(i)x(n-i)

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

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


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

2.1串行结构


        由FIR滤波表达公式y(n)=x(n)*h(n)=\sum_{i=0}^{N-1}h(i)x(n-i)可以看到,其实质是乘法和累加运算,其滤波器的阶数N决定了乘法和累加运算的次数。
        串行结构使用1个乘法器和1个加法器,每个时钟计算1次乘法和加法,需要计算N次(N为阶数)。结构图如下:

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

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


2.2 并行结构


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


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

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


2.3转置型结构


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


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

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

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


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

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


 

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

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


B.改变y(n)位置

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


C.改变延时单元位置

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

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

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


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

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

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


2.4 基于FFT的结构


        已知输入与输出之间的关系是y(n)=x(n)*h(n)=\sum_{i=0}^{N-1}h(i)x(n-i),其频域上的关系为Y(w)=X(w)H(w)。快速傅里叶变换FFT可以快速实现信号的时序频域转换,如下图:


        在FFT的滤波结构中,通过频域的乘法得到输出信号的频域函数,再利用快速傅里叶反变换,还原时域信号,即目标信号y(n)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/22556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI人工智能标记数据的技术:类型、方法、质量控制、应用

AI人工智能 标记数据 在人工智能(Artificial Intelligence,简称AI)领域中,标记数据是非常重要的一环。它是指对原始数据进行标记和注释,以便机器学习算法可以理解和利用这些数据。标记数据可以提高机器学习模型的准确…

研发项目工时统计工具哪个好?9大工时管理系统盘点

工时管理是项目型企业的重要需求,特别是在人力成本占比较高的行业,如软件开发、设计咨询、会计律师等。工时管理可以帮助企业核算项目人工成本,控制成本投入,提高项目利润,客观考核员工绩效,优化资源分配等…

HackTheBox-关卡Fawn

1. 连接靶场,打开FAWN实例场景,检查是否互通 TASK1 3 个字母的首字母缩写词 FTP 代表什么? 答案是:File Transfer Protocol TASK2 问题是:FTP服务通常监听哪个端口? FTP监听的TCP端口号为21,监听的数据端…

计算机操作系统(慕课版)第二章课后题答案

一、简答题 (1)什么是前趋图?试画出下面四条语句的前趋图. S1:axy; S2:bz1; S3:ca-b; S4:wc1; 答:前趋图(Precedence Graph)是一个有向无循环图,…

进程控制--进程的等待

回顾 之前我们已经学习了进程的状态和进程的退出如果你没有这些基础知识,应先去了解进程的相关基础知识。 这次我们主要来学习如何让进程等待子进程的退出。 为什么要等待子进程? 之前我们在学习进程的状态的时候,我们知道了进程有一种状态…

spring boot +Sa-Token优雅的实现项目鉴权!

1. 技术选型 最近在做登录、授权的功能,一开始考虑到的是spring boot spring security,但spring security太重,而我们是轻量级的项目,所以,spring security不适合我们。 而后考虑spring boot shiro,但s…

ChatGPT ✖️ 前端 = 有点er意思

HOT! HOT! HOT! 🔥 🔥 🔥 ChatGPT登上了国内各大平台的热搜榜,应该在去年11月末的时候就有不少同学了解并使用过,那个时候它刚刚问世,在互联网圈子里有了很大的热度,但是对于大众来说&#xff…

fastapi基础篇

文章目录 简介环境搭建安装基础文件自动文档 基础使用POST请求传递参数返回定制信息jinja2返回html 简介 FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6 并基于标准的 Python 类型提示。 关键特性 快速&#…

「 计算机网络 」TCP的粘包拆包问题

「 计算机网络 」TCP的粘包/拆包问题 参考&鸣谢 大病初愈,一分钟看懂TCP粘包拆包 雷小帅 TCP 的粘包拆包以及解决方案 一乐说 文章目录 「 计算机网络 」TCP的粘包/拆包问题一、前言二、为什么UDP没有粘包三、粘包拆包发生场景四、常见的解决方案五、Netty对粘包…

内卷把同事逼成了“扫地僧”,把Git上所有面试题整理成足足24W字测试八股文

互联网大厂更多的是看重学历还是技术? 毫无疑问,是技术,技术水平相近的情况下,肯定学历高/好的会优先一点,这点大家肯定都理解。 说实话,学弟学妹们找工作难,作为面试官招人也难呀&#xff01…

【PCIE732】基于 Kintex UltraScale 系列FPGA 的2 路40G 光纤通道适配器(5GByte/s 带宽)/XCKU060

板卡概述 PCIE732 是一款基于PCIE 总线架构的高性能数据传输卡,板卡具有1 个PCIex8 主机接口、2 个QSFP40G 光纤接口,可以实现2路QSFP 40G 光纤的数据实时采集、传输。板卡采用Xilinx 的高性能Kintex UltraScale 系列FPGA 作为实时处理器,板…

9. Linux下实现简单的socket通讯

本文简单介绍了UDP传输层协议,并在Linux下实现简单的socket通讯 一、UDP UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它不保证数据包的可靠性和顺序。UDP在IP协议的基础上增加了简单的差错…

TCP是面向字节流的协议

TCP字节流 之所以会说 TCP 是面向字节流的协议,UDP 是面向报文的协议,是因为操作系统对 TCP 和 UDP 协议的发送方的机制不同,也就是问题原因在发送方。 为什么 UDP 是面向报文的协议? 当用户消息通过 UDP 协议传输时,…

《Java 核心技术面试》课程笔记(十)

如何保证集合是线程安全的? 典型回答 Java 提供了不同层⾯的线程安全支持。 在传统集合框架内部,除了 Hashtable 等同步容器,还提供了所谓的同步包装器(Synchronized Wrapper),我们可以调用 Collections 工具类提供…

Android java层hook------xposed框架的使用

xposed曾经是android平台上最好的java层hook和调试工具,由于已经不再更新,当前支持的android系统版本比较老旧,目前只能支持到android6.0,故已经逐渐落伍,目前android上最广泛使用的hook工具是frida,这是另…

C语言函数大全-- _w 开头的函数(5)

C语言函数大全 本篇介绍C语言函数大全-- _w 开头的函数 1. _wspawnl 1.1 函数说明 函数声明函数功能int _wspawnl(int mode, const wchar_t* cmdname, const wchar_t* arglist, ...);启动一个新的进程并运行指定的可执行文件 参数: mode : 启动命令的…

用爬虫分析沪深300指数超长走势

我们知道,一个股市里面有非常多的股票,我们如何能够量化整个股市整体的行情呢,答案是通过一些综合性的指数。本文所选用的沪深300就是这类指数中的一个。我们先来看一下百度百科对于沪深300的解释。 由于股票价格起伏无常, 投资者…

蓝桥杯拿到一等奖,并分享经验

昨天和群里的小伙伴在群里聊,有的小伙伴竟然说蓝桥杯一等奖没有含量,我也是醉了! 就像去年看了一个号主写的:研究生遍地都是! 放眼全国14亿人口,别说研究生了,本科生占比有多少? “蓝桥杯是我人生中得到…

数慧时空20年磨一剑:推出智能遥感云平台DIEY,自然资源多模态大模型“长城”,为地理信息产业提速

作者 | 伍杏玲 出品 | CSDN 据中国地理信息产业发展报告公布的数据,截至2020年末,行业从业单位13.8万家,从业人数336.6万,到2021年末,从业单位增加到16.4万家,从业人数增加到398万,产业规模越…

Go colly爬虫框架精简高效【杠杠的】入门到精通

1 前言 1.1 Go Colly 爬虫介绍 爬虫框架中,各中流行的编程语言都有自己热门框架,python中的selenium、Scrapy、PySpider等,Java中的Nutch、Crawler4j、WebMagic、WebCollector等。golang中colly使用Go语言编写的功能强大的爬虫框架&#xf…