数-模(D/A)转换器
将实现数字信号到模拟信号的转换电流称为数模(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)转换器的更多相关文章
- 当Python与数模相遇
数模有一个题目要处理杭州自行车在每个站点可用数量和已经借出数量,这数据在www.hzbus.cn上可以获取,它是10分钟更新一次的.这些数据手动获取,需要不停的刷页面,从6:00am到9:00pm,显 ...
- Python数模笔记-Sklearn(1) 介绍
1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...
- Python数模笔记-(1)NetworkX 图的操作
1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...
- Python数模笔记-NetworkX(3)条件最短路径
1.带有条件约束的最短路径问题 最短路径问题是图论中求两个顶点之间的最短路径问题,通常是求最短加权路径. 条件最短路径,指带有约束条件.限制条件的最短路径.例如,顶点约束,包括必经点或禁止点的限制:边 ...
- Python数模笔记-StatsModels 统计回归(4)可视化
1.如何认识可视化? 图形总是比数据更加醒目.直观.解决统计回归问题,无论在分析问题的过程中,还是在结果的呈现和发表时,都需要可视化工具的帮助和支持. 需要指出的是,虽然不同绘图工具包的功能.效果会有 ...
- Python数模笔记-StatsModels 统计回归(1)简介
1.关于 StatsModels statsmodels(http://www.statsmodels.org)是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化. 2.文档 ...
- Python数模笔记-Scipy库(1)线性规划问题
1.最优化问题建模 最优化问题的三要素是决策变量.目标函数和约束条件. (1)分析影响结果的因素是什么,确定决策变量 (2)决策变量与优化目标的关系是什么,确定目标函数 (3)决策变量所受的限制条件是 ...
- Python小白的数学建模课-A3.12 个新冠疫情数模竞赛赛题与点评
新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝. 本文收集了与新冠疫情相关的的数学建模竞赛赛题,供大家参考,欢迎收藏关注. 『Python小白的数学建模课 @ Youcans』带你 ...
- 【数学建模】数模day13-灰色系统理论I-灰色关联与GM(1,1)预测
接下来学习灰色系统理论. 0. 什么是灰色系统? 部分信息已知而部分信息未知的系统,我们称之为灰色系统.相应的,知道全部信息的叫白色系统,完全未知的叫黑色系统. 为什么采用灰色系统理论? 在给定信息不 ...
随机推荐
- android Can't bind to local 86XX for debugger
For some reason eclipse DDMS always gives the error 'Can't bind to local 86XX for debugger' every ti ...
- jQuery data
大家会如何设计一个缓存呢? 一个简单的Cache (function(){ var __cache = {}, Cache = { get: function(__name){ return __ca ...
- Ehcache 缓存使用
在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验. 笔者使用过多种基于Java的开源Cache组件,其中包 ...
- java 字符串操作和日期操作
一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...
- 【linux草鞋应用编程系列】_1_ 开篇_系统调用IO接口与标准IO接口
最近学习linux系统下的应用编程,参考书籍是那本称为神书的<Unix环境高级编程>,个人感觉神书不是写给草鞋看的,而是 写给大神看的,如果没有一定的基础那么看这本书可能会感到有些头重脚轻 ...
- No.025:Reverse Nodes in k-Group
问题: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...
- Linux tree命令
Linux tree命令用于以树状图列出目录的内容. 执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件. 语法 tree [-aACdDfFgilnNpqstux][-I <范 ...
- (转)SqlServer索引及优化详解(1)
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚 ...
- 让网站动起来!12款优秀的 jQuery 动画插件推荐
如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...
- HTML5中使用图片传递密文
上面的两张图片中,你能看出有什么不同吗? 右图使用 html5 canvas api 中的 getImageData 和 putImageData 函数嵌入了一段文字. 道理很简单,getImageD ...