将实现数字信号到模拟信号的转换电流称为数模(D/A)转换器,简称为DAC(Digital - Analog Convert)。

目前常见的D/A转化器中,有:权电阻网络D/A转换器、倒T型电阻网络D/A转换器、权电流型D/A转换器、权电容网络D/A转换器、开关树形D/A转换器

一、数字信号的表达

  在数字信号中,我们使用二进制对数字信号大小进行表达,比如一个n位二进制用Dn=dn-1*dn-2*……d1d0表示,其中一个多位二进制数中每一位的1所代表的数值大小称为这一位的权,从最高位(MSB)到最低位(LSB)的权依次为2^n-1、2^n-2、……、2^1、2^0

二、权电阻网络D/A转换器

  

如上图,S3、S2、S1和S0的状态分别受代码d3、d2、d1和d0的取值控制,代码为1时,开关接到参考电压Vref上,代码为0时开关接地。

该求和放大器是一个负反馈的运算放大器,理想放大器的开环放大倍数为无穷大,其输入电流为零(输入电阻为无穷大),输出电阻为零

当参考电压经电阻网络加到V-时,只要V-稍高于V+,便在Vo产生很负的输出电压,V0经Rf反馈到V-端使V-降低,其结果必然使V-≈V+=0

在运算放大器输入电流为零的条件下可得:V0=-Rf*I=-Rf*(I3+I2+I1+I0)------------------①

由于V-≈0,因而各支路电流分别为

将各直流电流代入公式①中,并取Rf=R/2,可得:

对于n位的权电阻网络D/A转换器,当反馈电阻取为R/2时,输出电压的计算公式为

自此,我们可以提取出数字信号的表达形式:

,当Dn=0时,Vo=0,当Dn=11...11时,

这个电路的优点是结构比较简单,所用的电阻元件比较少,但它的各个电阻阻值相差比较大,尤其在输入信号的位数较多时,这个问题更加突出。如输入信号增加到8位时,如果取权电阻网络中最小的电阻为R=10K,那么最大的电阻阻值将达到2^7R=1.28M,其两者相差128倍之多。要想在极为宽广的阻值范围内保证每个电阻阻值都有很高的精度十分困难,尤其对于集成电路更为不便。

为解决该问题,可采用倒T形电阻D/A转换器.

三、倒T形D/A转换器

由图可知,电阻网络中只有R、2R两种阻值的电阻,这给集成电路的设计和制作带来了很大的方便

如下图,从AA、BB、CC、DD每个端口向左看过去的等效电阻都是R,因此参考电源流入倒T形电阻网络的总电流为I=Vref/R,而每个支路的电流依次为:I/2,I/4,I/8,I/16

若di=0时开关Si接地(即放大器的V+),而di=1时开关Si接放大器的V-,在求和放大器反馈电阻阻值等于R的条件下,

总电流:

在求和放大器反馈电阻为R的条件下,输出电压(Vo=-R*i∑):

同理,对于n位输入的倒T形电阻网络D/A转换器,在在求和放大器反馈电阻为R的条件下,输出电压

四、权电流型D/A转换器

在分析电阻网络D/A转换器和倒T型电阻网络D/A转换器的过程中,都把模拟开关作为理想开关处理,但实际中每个开关都有一定的导通电阻和导通压降,而且每个开关的情况也不完全相同,这些问题的存在会引起转换误差,影响转换精度。

如下图,权电流型D/A转换器,采用了恒流源,每个支路电流的大小不再受开关内阻和压降的影响。从而降低了对开关电路的要求。

对于恒流源电路,如下图:

只要电路保证Vb和和Vee稳定不变,则三极管的集电极电流即可保持恒定,不受开关内阻的影响,电流大小近似为:

当输入数字量的某位代码为1时,对应开关将恒流源接至运算放大器的输入端,当代码为0时,对应的开关接地,故输出电压为:

可见,Vo正比于输入的数字量

在相同的Vb和Vee取值下,为了得到一组依次为1/2递减的电流源就需要用到一组不同阻值的电阻,为减少电阻阻值的种类,在实际中经常利用倒T型电阻网络的分流作用产生所需的一组恒流源。如下图(为保证所有三级管的发射结压降相等,在发射极电流较大的三极管中按比例地加大了发射结的面积,在图中用增加发射极的数目来表示):

数-模(D/A)转换器的更多相关文章

  1. 当Python与数模相遇

    数模有一个题目要处理杭州自行车在每个站点可用数量和已经借出数量,这数据在www.hzbus.cn上可以获取,它是10分钟更新一次的.这些数据手动获取,需要不停的刷页面,从6:00am到9:00pm,显 ...

  2. Python数模笔记-Sklearn(1) 介绍

    1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...

  3. Python数模笔记-(1)NetworkX 图的操作

    1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...

  4. Python数模笔记-NetworkX(3)条件最短路径

    1.带有条件约束的最短路径问题 最短路径问题是图论中求两个顶点之间的最短路径问题,通常是求最短加权路径. 条件最短路径,指带有约束条件.限制条件的最短路径.例如,顶点约束,包括必经点或禁止点的限制:边 ...

  5. Python数模笔记-StatsModels 统计回归(4)可视化

    1.如何认识可视化? 图形总是比数据更加醒目.直观.解决统计回归问题,无论在分析问题的过程中,还是在结果的呈现和发表时,都需要可视化工具的帮助和支持. 需要指出的是,虽然不同绘图工具包的功能.效果会有 ...

  6. Python数模笔记-StatsModels 统计回归(1)简介

    1.关于 StatsModels statsmodels(http://www.statsmodels.org)是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化. 2.文档 ...

  7. Python数模笔记-Scipy库(1)线性规划问题

    1.最优化问题建模 最优化问题的三要素是决策变量.目标函数和约束条件. (1)分析影响结果的因素是什么,确定决策变量 (2)决策变量与优化目标的关系是什么,确定目标函数 (3)决策变量所受的限制条件是 ...

  8. Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评

    新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...

  9. 【数学建模】数模day13-灰色系统理论I-灰色关联与GM(1,1)预测

    接下来学习灰色系统理论. 0. 什么是灰色系统? 部分信息已知而部分信息未知的系统,我们称之为灰色系统.相应的,知道全部信息的叫白色系统,完全未知的叫黑色系统. 为什么采用灰色系统理论? 在给定信息不 ...

随机推荐

  1. Unity实现滑页嵌套(解决ScrollRect嵌套冲突问题)

    简介 由于项目需要+有网友咨询,所以做了个横向滑页+某一横向滑页中有竖向滑页的demo,实现有点绕弯子,但基本功能还是比较完善,发上来共享一下. 效果 思路 第一步的思路是自己判断触屏拖动位置,然后控 ...

  2. EF架构~EF异步改造之路~仓储接口的改造~续

    回到目录 返回异步与并行目录 在写完仓储接口的改造改造后,总觉得有个代码的坏味道,这种味道源于它的DRP,即重复的代码太多了,即异步操作和同步操作其实只是在insert,update和delete上有 ...

  3. Web.config配置数据库连接

    web.config配置数据库连接   第一种:取连接字符串 string connString = System.Web.Configuration.WebConfigurationManager. ...

  4. FASTSOCKET

    FASTSOCKET It looks like there are like 3 separate optimizations, but I think the most important one ...

  5. Mybats中字符串判断

      <if test=" name=='你好' "> <if> 这样会有问题,换成 <if test=' name=="你好" ' ...

  6. [翻译] Autoac 最佳实践和建议

    使用嵌套的 ILifetimeScope 解析服务 Autofac 被设计为跟踪(track)和清理(dispose)资源.为确保资源被正确处理,务必将长时间运行的应用程序分成小的工作单元 (请求或事 ...

  7. Hibernate(十)__缓存机制

    为什么需要缓存? 缓存的作用主要用来提高性能,可以简单的理解成一个Map: 使 用缓存涉及到三个操作:把数据放入缓存.从缓存中获取数据. 删除缓存中的无效数据. 从上图看出: 当我们去查询对象的时候, ...

  8. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  9. 用原生javascript实现在页面动态显示时间

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>js ...

  10. 翻译:常见问题——ABAP Development Tools for Eclipse

    ABAP Development Tools for Eclipse(简称ADT)是一个基于Eclipse的全新ABAP IDE,这篇文档试图回答有关ADT的最重要的常见问题.这只是一个开始,如果你对 ...