Vivado_FIR滤波器输出位宽计算方法

news2025/7/17 20:45:49

计算方法

全精度输出宽度可以定义为输入数据宽度加上由滤波器系数导致的位增长数。
最坏情况下的位增长等于系数宽度加上所需非零乘法次数的以2为底的对数并四舍五入后的值。然而,这没有考虑实际系数值。计算公式如下。
B = C W + ceil ⁡ [ log ⁡ 2 N ] B=C_{W}+\operatorname{ceil}\left[\log _{2} N\right] B=CW+ceil[log2N]
其中, B B B是计算出的位增长, N N N是滤波器系数的数量, C W C_W CW是系数宽度。
考虑实际系数值后,固定系数滤波器的真正最大位增长,可由下式计算。
B = ceil ⁡ [ log ⁡ 2 ( ∑ n = 0 ( N − 1 ) ∣ a n ∣ ) ] B=\operatorname{ceil}\left[\log _{2}\left(\sum_{n=0}^{(N-1)}\left|a_{n}\right|\right)\right] B=ceil log2 n=0(N1)an
其中, N N N是滤波器系数的数量, a n a_n an是第 N N N个滤波器系数。
注意:FIR IP核可根据实际系数值自动计算位增长。对于可重载系数的滤波器,则使用最坏情况下的位增长计算方法。
如上所述,全精度输出宽度,根据下式计算。
A W = D W + B A_W = D_W+B AW=DW+B
其中, B B B为计算出的位增长, D W D_W DW为数据宽度, A W A_W AW为全精度输出宽度。

滤波器系数(和输入数据)的小数宽度不影响输出宽度计算。核心决定输出宽度而不考虑小数位。
核心如前所述确定全精度输出,然后通过将数据和系数小数位宽相加来确定输出小数位宽,然后通过任何输出舍入来减少该值。则可由下式计算。
O f W = D f W + C f W − max ⁡ ( 0 , A W − O W ) O_{fW}=D_{fW}+C_{fW}-\operatorname{max}\left( 0,A_W - O_W\right) OfW=DfW+CfWmax(0,AWOW)
其中, O W O_W OW为输出宽度, O f W O_{fW} OfW为输出小数宽度, D f W D_{fW} DfW为数据小数宽度, C f W C_{fW} CfW为系数小数宽度, A W A_W AW全精度输出宽度。

Hilbert Transform

以希尔伯特变换的输出位宽计算为例。
理想的希尔伯特变换为正频率提供90度的相移,为负频率提供-90度的相移。该频域特性对应的脉冲响应是奇对称的,并且具有交错的零值。如下图所示。
在这里插入图片描述
希尔伯特变换器接受一个实值输入信号,并产生一个复数(I,Q)输出信号。输出信号的正交(Q)分量由FIR滤波器产生,其脉冲响应如上图所示。同相(I)分量是输入信号延迟适当周期后的信号,以补偿用于产生Q分量输出的滤波过程中的相位延迟。在下图中, x ( n ) x(n) x(n)为实值输入信号, y I ( n ) \text{y}_I(n) yI(n) y Q ( n ) \text{y}_Q(n) yQ(n)分别为同相输出和正交输出。
在这里插入图片描述
利用交错零值和负对称特性,可将实现结构转换如下图所示结构。
在这里插入图片描述
注意到,输入输出的tdata总线中的数据都被符号拓展为8位边界,(在Config channel中的tdata总线中,则是填充零以到8位边界)。
在这里插入图片描述
coe系数文件如下:

radix=10;
coefdata=-1167,0,-342,0,-395,0,-451,0,-519,0,-595,0,-682,0,-784,0,-906,0,-1054,0,-1237,0,-1470,0,-1781,0,-2223,0,-2906,0,-4119,0,-6922,0,-20849,0,20849,0,6922,0,4119,0,2906,0,2223,0,1781,0,1470,0,1237,0,1054,0,906,0,784,0,682,0,595,0,519,0,451,0,395,0,342,0,1167;

FIR IP核Summary如下:
在这里插入图片描述
上图中的输入数据宽度 D W D_W DW为16,系数个数 N N N为71,系数宽度 C W C_W CW为16,根据前述计算公式计算出的位增长数 B B B为17,则全精度输出宽度 A W A_W AW为16+17=33,符合IP核的计算结果。
m_axis_data_tdata的宽度等于:16(I路,只是延迟故位数不变) + 33(Q路,16+17=33) + 7(符合拓展至8位边界) = 56 。符合IP核计算结果。

参考资料:官方文档PG149-FIR-Compiler v7.2

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滑台模组的应用有哪些?

在自动化生产中,我们常常会看到滑台模组的身影,那么,滑台模组究竟在自动化生产设备中起着怎样的作用呢? 简单点说,滑台模组由滑块、滚珠丝杆、导轨、主体等其它传动零件组成的自动化晋级单元,经过各单元的组…

储物流行业解决方案

行业分析 第三方物流仓储物流的日常管理控制活动主要包括进,出,存三个方面。在没有实现计算机化管理的商业企业中,大量的业务操作和管理活动由人工来完成。在管理层中,由于大量必要的信息不能及时被采集﹑加工和整理使用,造成了极…

想成为一名专业黑客,但不知道从哪里学起?我来教你。

成为一名黑客需要学什么? 想成为一名专业黑客,但不知道从哪里学起”很多人在后台问过这个问题,今天就为你介绍成为专业黑客必须学习的十个方面的知识,希望能为迷惘中的你指明方向。 想要成为网络hacker黑客?先来学习…

未来土地利用模拟FLUS模型

未来土地利用模拟(FutureLand-Use Simulation, FLUS)模型1 模型简介1.1 基于ANN 的适宜性概率计算1.2 基于自适应惯性机制的元胞自动机1.3 模拟精度评价参考流域 径流变化是 自然因素和 人为因素共同作用的结果,其中人为因素最为直接的方式就…

SpringMVC框架知识详解(入门版)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【mysql 5.7】基础入门(一)

文章目录1.常用命令2.SQL语句3导入数据4.DQL4.1 查询一个字段4.2 查询多个字段4.3 查询所有字段4.4 列起别名4.5 列参与数学运算4.6 条件查询4.7 排序4.8 多个字段排序5.函数5.1 单行处理函数5.2 分组函数6.分组查询1.常用命令 退出mysql exit;查看有哪…

Redis 集群搭建

前缀参考文章1:Centos7 安装并启动 Redis-6.2.6 前缀参考文章2:Redis 主从复制-服务器搭建【薪火相传/哨兵模式】 管道符查看所有redis进程:ps -ef|grep redis 杀死所有redis进程:killall redis-server 1. 首先修改 redis.conf 配…

Jmeter(GUI模式)详细教程

Jmeter(GUI模式)详细教程 目录:导读 一、安装Jmeter 二、Jmeter工作原理 三、Jmeter操作步骤 Jmeter界面 1、测试计划 2、线程组 3、HTTP请求 4、监听器 四、压力测试 写在最后 前些天,领导让我做接口的压力测试。What…

cocos2dx+lua学习笔记:UIScrollView的使用

前言 本篇在讲什么 本篇简单介绍Lua篇cocos2dx中UIScrollView的相关内容 仅介绍简单的应用,仅供参考 本篇适合什么 适合初学Cocos2dX的小白 适合想要在Cocos2dx-lua中使用UIScrollView的人 本篇需要什么 对Lua语法有简单认知 对Cocos2dx-Lua有简单认知 Co…

【JavaSE】复习(基础)

文章目录基础1.1. public class 和 class1.2. 字面量1.3. 变量的引出1.4. javadoc的使用1.5. 转义字符1.6. 逻辑运算1.7. 用户键盘输入1.8. switch1.9. for循环1.10.方法的调用1.11.break return1.12.方法重载(overload)1.13.成员变量中的实例变量1.14.方…

计算机网络你都懂了吗

文章目录一、计算机网络的定义简单定义通用定义二、计算机网络通信过程三、什么是网络协议(Protocol)四、网络协议组成及功能一、计算机网络的定义 简单定义 计算机网络是一些相互连接的、自治的计算机系统的集合。 通用定义 将处于不同位置并具有独…

ChatGPT?听说Biying把它下架了

ChatGPT被玩疯了,开始放飞自我 ChatGPT版微软必应上线不到10天…就被网友玩坏了 先说这个词,放飞自我,什么东西才会放飞自我? 人放飞自我,人?你确定是人? 所以让我们来把上面的句子改写一下。…

怎样激发读者好奇心?短视频营销之场景化

目录 激发读者好奇心?四个小技巧帮你搞定 1.省略法 2.欲言又止法: 3.问句法:就是用疑问的形式引起别人的好奇。 4.反差法 选择合适的主题。 利用场景化效果 使用滤镜。 如何提高用户的留存率。 1、设置一个有趣的话题。 2、用好道具。 3、多用竖屏。 什…

适合python游戏开发的库你知道几个?

python游戏开发的库 01 PyGame 官网: https://www.pygame.org/docs/ 概述: Pygame 是一组专为编写视频游戏而设计的 Python 模块。 它在优秀的 SDL 库之上添加了功能。这允许您使用 python 语言创建功能齐全的游戏和多媒体程序。Pygame具有高度的可…

即将报名,如何选择软考考试科目?

软考全称为计算机技术与软件专业技术资格(水平)考试 是职业资格、专业技术资格考试,也是职称考试。 计算机软件资格考试设置了27个专业资格,涵盖5个专业领域, 3个级别层次(初级、中级、高级) …

ubuntu20.04安装conda

1)conda与miniconda 任何语言的包、依赖和环境管理---Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C, FORTRAN。Conda 是一个运行在 Windows、macOS 和 Linux 上的开源包管理系统和环境管理系统。Conda 可以快速安装、运行和更新包及其依赖项。Conda 可以轻松地在本地计…

关于高并发场景和进程线程协程的一些总结

1、IO复用和线程池哪个好?应用场景? IO复用就是一个线程处理多个客户端连接。如果自己实现的话,就是要不断轮询每个客户端连接,看看有没有事件发生(数据到达),即使可以用非阻塞的read函数&…

基于java+sql+servlet的金融借贷管理系统mysql数据源

基于javasqlservlet的金融借贷管理系统 一套基于基于JavaWeb实现的金融借贷系统 或 P2P金融管理系统 或 小额贷款系统,详细介绍了金融借贷系统的实现,包括:1.项目介绍2.环境搭建3.系统功能4.技术实现5.项目运行6.功能演示以通俗易懂的方式&a…

浏览器自动化框架沦为攻击者的工具

5月27日消息,安全公司Team Cymru的研究人员表示,越来越多的威胁参与者正在使用免费的浏览器自动化框架作为其攻击活动的一部分。 研究人员表示,该框架的技术准入门槛故意保持在较低水平,以创建一个由内容开发者和贡献者组成的活跃…

算法训练营 day55 动态规划 买卖股票问题系列3

算法训练营 day55 动态规划 买卖股票问题系列3 最佳买卖股票时机含冷冻期 309. 最佳买卖股票时机含冷冻期 - 力扣(LeetCode) 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下…