news 2026/4/23 0:58:25

FPGA应用开发和仿真【3.3】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FPGA应用开发和仿真【3.3】
7.1.4 离散量化信号的信噪比

不失一般性,考虑一个幅度为1、频率为1的正弦信号a(t)=sin(2πt),经过采样周期Ts的采样离散化之后,如果被DAC以零阶保持特性输出,将得到信号:

如果还经过分辨力δ的量化,取最接近的量化阶梯,将得到信号:

其中 符号表示取最接近自变量的整数。显然,信号x(t)与原信号a(t)存在偏差:

这个偏差也称为量化噪声。

图7-6所示是Ts=0.05、δ=0.05时a(t)、x(t)和e(t)的波形。

显然,Ts越小,δ越小,DAC输出信号的偏差越小,这些偏差在频域中主要是上节所述的频谱镜像。虽然可以通过模拟滤波器滤除大部分,但这就是系统设计者需要考虑的数字系统复杂度和模拟系统复杂度的平衡问题了。采样率越大,量化分辨率越大,DAC输出的量化噪声越小,对模拟重构滤波器的要求越低,但数字系统复杂度高;而如果降低数字系统复杂度,降低采样率和量化分辨率,对模拟重构滤波器的要求就会变高。

图7-6 信号的量化误差

a(t)的能量和e(t)的能量之比,称为这个单频信号的信噪比:

7.2 数值计算

7.2.1 乘法

在FPGA中做乘法,使用乘法运算符“*”即可,前面已有很多例子了。如果是变量和变量的乘法,FPGA编译工具会根据情况选择使用专用乘法单元(如果有)或者使用通用逻辑单元实现。

如果是变量和常量的乘法,常用移位求和的方法:

其中“>>>”和“<<<”分别为算术右移和算术左移运算符。

考虑常量b=0b0.0111,如果直接用上式计算:

共需要3次移位和3次加法。而b=0b0.0111=0b0.1-0b0.0001,所以:

仅使用两次移位和两次加法(减法同加法)。

再比如:0b1011100111=0b10100101001,“1”位表示减去该位的权,这种二进制数值表达法称为CSD表达。依据常量的CSD表达来进行移位加减,计算变量与常量之积的乘法器称为CSD乘法器,CSD乘法器比直接移位相加在数量上平均节省1/3的加法器。

遇到变量和常量乘法,FPGA工具一般会自行使用通用逻辑单元来实现CSD乘法器,仍然是一个乘法运算符“*”即可。

使用乘法运算符“*”实现的乘法器,无论是专用乘法单元实现的还是通用逻辑单元实现的,都主要是组

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 4:57:27

Java进阶文件输入输出实操(图片拷贝)

Java进阶文件输入输出实操&#xff08;图片拷贝&#xff09;把某个目录下的全部图片&#xff0c;全部拷贝到另外一个目录 package test; import domee.chapter6_7.B; import java.io.*; public class Ex10_10 { public static void main(String[] args) throws IOException { S…

作者头像 李华
网站建设 2026/4/23 12:32:03

Java进阶教程(一)关键字

Java进阶教程&#xff08;一&#xff09; 关键字 synchronized&#xff1a;当它用来修饰一个方法或者一个代码块的时候&#xff0c;能够保证在同一时刻最多只有一个线程执行该段代码。 instanceof&#xff1a;在运行时指出对象是否是特定类的一个实例。 result object instanc…

作者头像 李华
网站建设 2026/4/23 12:29:42

深度学习毕设选题推荐:基于python-cnn深度学习的猫的种类识别基于人工智能-cnn深度学习的猫的种类识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 17:24:27

Java进阶知识-反射

获取Class对象 有三种方式获取Class对象&#xff1a;根据类的完整包名获取Class Class clazz Class.forName(“com.example.xjp.demo.reflect.PersonInfo”);根据类名直接获取Class Class clazz PersonInfo.class;根据实例类的对象获取Class PersonInfo personInfo new Pers…

作者头像 李华
网站建设 2026/4/23 13:56:38

JAVA进阶之线程

为神马有线程&#xff1f;这玩意儿在干嘛&#xff1f;&#xff1f;&#xff1f; 回答这个问题&#xff0c;就先要知道一点点计算机的工作方式。 总所周知&#xff0c;计算机有五部分&#xff1a;输入输出、计算器、存储器、控制器。而在计算机内&#xff0c;CPU、内存、I/O之间…

作者头像 李华