模拟计算机模拟什么意思,什么是数字信号?什么是模拟信号?它们区别是什么?...

2024-02-29 19:30

本文主要是介绍模拟计算机模拟什么意思,什么是数字信号?什么是模拟信号?它们区别是什么?...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数字信号只有“0”和“1”两种状态,摸拟信号则可以是任意数值状态

数字信号是数字化的,在计算机系统中,CPU只认识“0”和“1”两个数字,所以数字信号需要由“0”和“1”构成的二制数来表示。而摸拟信号则是连续变化的物理量,它的频率、幅度、相位都可以随着时间连续的变化。

206736296_1_20201107125704665

数字信号

数字信号只有“0”和“1”,我们把“0”对应为低电平,把“1”对应为高电平。大家都听过集成电路是由大规模的晶体管组成的吧?这种晶体管组成的逻辑就是TTL(Transistor-Transistor Logic)了。在这种处理数字信号的电路中,需要定好一个规则:>2.4V为高电平(H);<0.4V为低电平(L)。规则定好后,通讯和数据的的处理,我们只认高电平(H)=1和低电平(L)=0了。

一个高电平(H)代表“1”,一个低电平(L)代表“0”,两个高电平(H)代表“11”,两个低电平(L)代表“00”,如此类推。因为这个高电平或者低电平的宽度不是固定的,可以长,也可以短,一个连续的高电平,是区分不出是一个“1”,还是多个“1”的。所以还需要引入时钟同步信号。时钟信号由固定宽度的高低电平形成,在时钟信号的电平由高变为低时,如果数字信号是高,那就是“1”了,反之则为“0”。由此可见数据传速和处理的速度由时钟信号的频率决定的,这就是我们平常所说的CPU主频了,频率越高,处理速度就越快了。

206736296_2_20201107125704759

所以数字信号是:在取值上是离散的、不连续的信号。

摸拟信号

摸拟信号它是一个连续变化的物理量,比如温度、电流、电压、压力等这些信号,它可以很小,也可以很大,它的数值是无限的。

在现实现生活中的各种物理量,就像我们说话的声音,其实它就是一个摸拟的信号。摸拟信号有着精确的分辨率,信号处理也简单,可以直接通过三极管或者运放来进行放大处理。但摸拟信号很容易受到干扰,受干扰后的摸拟信号就难以还原了,所以我们一般都会将输入的摸拟量信号进行数字化,再进行计算机处理和传输。

206736296_3_20201107125704806

摸拟信号与数字信号的转换

摸拟信号转化为数字信号需要进行采样和量化两个过程。把采样到的摸拟信号值根据一定的规则是把它量化为一个固定的数值。

206736296_4_20201107125704899

再举一个简单的例子:把0~5V的电压传化为数字信号

首先我们要定好规则:数值0代表0V电压,数值1023代表5V电压,为什么是1023代表5V呢?这就是量化的精度了,我们也可以定2047=5V,这样精度就更高。

这样就得到:0.0049V=1;0.0098V=2;0.0147V=3;如此类推。

206736296_5_202011071257059

同理,数字信号也是可以转换为摸拟信号的,只是过程相反,比如,数字MP3的歌曲经过数字解码后,最后也得转换为摸拟信号才可以通过扬声器发美妙的声音。例如LED的调光,也是一个数字信号转换为摸拟信号经典实例,通过不同占空比的PWM数字信号去控制RGB LED的颜色比例,就可以得到“无限”等级的亮度和颜色了。当然这里所说的“无限”也是有一定的精度限制的。

206736296_6_20201107125705134

如有错漏,欢迎大家前来批评、吐槽哦!

这篇关于模拟计算机模拟什么意思,什么是数字信号?什么是模拟信号?它们区别是什么?...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759826

相关文章

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor